NAME

Music::Dataset::ChordProgressions - Provide access to hundreds of chord progressions

VERSION

version 0.0400

SYNOPSIS

use Music::Dataset::ChordProgressions qw(as_file as_list as_hash transpose);

my $filename = as_file();
my @data = as_list();
my %data = as_hash();

my $transposed = transpose('A', 'major', 'C-F-Am-F');

DESCRIPTION

Music::Dataset::ChordProgressions provides access to hundreds of musical chord progressions in five genres: blues, country, jazz, pop and rock. Each has progressions in keys of C major and C minor.

Each of these is divided into a named type of progression. Take these types with a grain of salt. They may or may not be meaningful...

The named chords are meant to match the known chords of Music::Chord::Note (listed in the source of that module).

There are a few odd chord "progressions" like "Eb7-Eb7-Eb7-Eb7","III-III-III-III". Strange...

I stumbled across this list, saved it on my hard-drive for a long time, and then forgot where it came from! Also the documentation in the original list said nothing about who made it or how. :\

FUNCTIONS

as_file

$filename = as_file();

Return the chord progression data filename location.

as_list

@data = as_list();

Return the chord progression data as an array.

as_hash

%data = as_hash();

Return the chord progression data as a hash.

transpose

$transposed = transpose($note, $scale, $progression);

Transpose a progression in the key of C to the given note and scale.

The progression must be a string of hyphen-separated chord names. For example: 'C-F-Am-F'

SEE ALSO

The t/01-functions.t and eg/* files

Exporter

File::ShareDir

Music::Scales

Text::CSV_XS

AUTHOR

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021-2023 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.