Deprecated.
NAME
Music::Chord::Progression::NRO - Generate Neo-Riemann chord progressions - DEPRECATED
VERSION
version 0.0400_1
SYNOPSIS
use MIDI::Util qw(setup_score midi_format);
use Music::Chord::Progression::NRO ();
my $nro = Music::Chord::Progression::NRO->new;
my $chords = $nro->generate;
$chords = $nro->circular;
# render a midi file
my $score = setup_score();
$score->n('wn', midi_format(@$_)) for @$chords;
$score->write_score('nro.mid');
DESCRIPTION
*DEPRECATED*
The Music::Chord::Progression::NRO
module generates Neo-Riemann chord progressions.
ATTRIBUTES
base_note
$base_note = $nro->base_note;
The initial isobase
, capitalized note on which the progression starts.
Default: C
base_octave
$base_octave = $nro->base_octave;
The initial note octave on which the progression starts.
Default: 4
base_scale
$base_scale = $nro->base_scale;
The major or minor quality of the initial chord.
Default: major
base_chord
$base_chord = $nro->base_chord;
The chord given by the base_note, base_octave, and the base_scale.
format
$format = $nro->format;
The format of the returned results, as either named ISO
notes or midinum
integers.
Default: ISO
max
$max = $nro->max;
The maximum number of circular transformations to make.
Default: 4
transform
$transform = $nro->transform;
The array-reference of Neo-Riemann transformations that define the chord progression.
Please see the Music::NeoRiemannianTonnetz module for the allowed transformations.
This can also be given as an integer, which defines the number of random transformations to perform.
Additionally the "non-transformation", I
is allowed to return the the initial chord.
Default: 4
verbose
$verbose = $nro->verbose;
Show progress.
Default: 0
nrt
$nrt = $nro->nrt;
The Music::NeoRiemannianTonnetz object.
METHODS
new
$nro = Music::Chord::Progression::NRO->new; # use defaults
$nro = Music::Chord::Progression::NRO->new( # override defaults
base_note => 'Bb',
base_octave => 5,
base_scale => 'minor',
format => 'midinum',
max => 12,
transform => [qw(I PRL R L R L R)],
);
Create a new Music::Chord::Progression::NRO
object.
generate
$chords = $nro->generate;
Generate a linear series of transformed chords.
circular
$chords = $nro->circular;
Generate a series of transformed chords based on a circular list of transformations.
The eg/nro-chain program puts it this way:
"Use a circular list ("necklace") of Neo-Riemannian transformations, plus I
meaning "make no transformation." Starting at position zero, move forward or backward along the necklace, transforming the current chord..."
SEE ALSO
The t/01-methods.t and eg/* files
https://viva.pressbooks.pub/openmusictheory/chapter/neo-riemannian-triadic-progressions/
AUTHOR
Gene Boggs <gene@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2023 by Gene Boggs.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)