Music::Cadence - Provide musical cadence chords
version 0.0501
use Music::Cadence; my $mc = Music::Cadence->new; $mc = Music::Cadence->new( octave => 4 ); my $chords = $mc->cadence( type => 'perfect' ); # [['G4','B4','D4'], ['C4','E4','G4']] $chords = $mc->cadence( type => 'half', leading => 2, octave => 0, ); # [['D','F','A'], ['G','B','D']] $mc = Music::Cadence->new( key => 'C#', octave => 5, format => 'midi', ); $chords = $mc->cadence( type => 'perfect' ); # [['Gs5','C5','Ds5'], ['Cs5','F5','Gs5']]
Music::Cadence provides musical cadence chords.
Music::Cadence
* This module is a naive implementation of the actual theory. YMMV. Patches welcome.
The key or tonal center to use. Default: C
C
Examples: G#, Eb
G#
Eb
The scale to use. Default: major
major
Supported scales are:
ionian / major dorian phrygian lydian mixolydian aeolian / minor locrian
The octave to append to chord notes. Default: 0 meaning "do not append."
0
If midi, convert sharp # to s and flat b to f after chord generation. Default: '' (none)
midi
#
s
b
f
''
$mc = Music::Cadence->new; # Use defaults $mc = Music::Cadence->new( # Override defaults key => $key, scale => $scale, octave => $octave, format => $format, );
Create a new Music::Cadence object.
$chords = $mc->cadence; # Use defaults $chords = $mc->cadence( # Override defaults key => $key, # Default: C scale => $scale, # Default: major octave => $octave, # Default: 0 type => $type, # Default: perfect leading => $leading, # Default: 1 variation => $variation, # Default: 1 );
Return an array reference of the chords of the cadence type based on the given key and scale name.
The octave is optional and if given, should be a number greater than or equal to zero.
The variation applies to the deceptive cadence and determines the final chord. If given as 1, the vi chord is used. If given as 2, the IV chord is used.
deceptive
1
vi
2
IV
Supported cadences are:
perfect half plagal deceptive
The leading chord is a number (1-7) for each diatonic scale chord to use for the first half cadence chord. For the key of C major this is:
half
C major
CM: 1 Dm: 2 Em: 3 FM: 4 GM: 5 Am: 6 Bo: 7
The eg/cadence and t/01-methods.t files in this distribution.
Moo
Music::Chord::Note
Music::Scales
Music::ToRoman
https://en.wikipedia.org/wiki/Cadence
https://www.musictheoryacademy.com/how-to-read-sheet-music/cadences/
Evaded cadence
Imperfect cadences
Gene Boggs <gene@cpan.org>
This software is copyright (c) 2019 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.
To install Music::Cadence, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Music::Cadence
CPAN shell
perl -MCPAN -e shell install Music::Cadence
For more information on module installation, please visit the detailed CPAN module installation guide.