NAME

Music::Chord::Progression - Create network transition chord progressions

VERSION

version 0.0001

SYNOPSIS

use Music::Chord::Progression;

my $prog = Music::Chord::Progression->new;

my $notes = $prog->generate;

DESCRIPTION

Music::Chord::Progression creates network transition chord progressions.

ATTRIBUTES

max

The maximum number of chords to generate.

Default: 8

net

The network transitions between chords of the progression.

Default:

{ 1 => [qw( 1 2 3 4 5 6 )],
  2 => [qw( 3 5 )],
  3 => [qw( 2 4 6 )],
  4 => [qw( 1 2 3 5 )],
  5 => [qw( 1 )],
  6 => [qw( 2 4 )] }

valence

The chord name parts of each scale position.

The number of items in this list must be equal and correspond to the number of keys in the net.

Default: [ '', 'm', 'm', '', '', 'm' ]

scale_name

The name of the scale.

Default: major

scale_note

The name of the scale starting note.

Default: C

octave

The octave number of the scale.

Default: 4

tonic

Whether to start the progression with the tonic chord or not.

Default: 1

flat

Whether to use flats instead of sharps in the chords or not.

Default: 0

graph

The network transition graph.

Default: Graph::Directed

verbose

Show the progress of the generate method.

METHODS

new

$prog = Music::Chord::Progression->new;
$prog = Music::Chord::Progression->new(
  net        => { 1 => [...], ... },
  valence    => ['m','','m','m','',''],
  scale_name => 'minor',
  scale_note => 'A',
  octave     => 5,
);

Create a new Music::Chord::Progression object.

generate

Generate a new chord progression.

SEE ALSO

Data::Dumper::Compact

Graph::Directed

Moo

Music::Chord::Note

Music::Scales

AUTHOR

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by Gene Boggs.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.