Music::Intervals - Mathematical breakdown of musical intervals
version 0.0502
use Music::Intervals; $m = Music::Intervals->new( notes => [qw( C E G B )], size => 3, chords => 1, justin => 1, equalt => 1, freqs => 1, interval => 1, cents => 1, prime => 1, integer => 1, ); $m->process; # Then print Dumper # any of: $m->chord_names, $m->natural_frequencies, $m->natural_intervals, $m->natural_cents, $m->natural_prime_factors, $m->eq_tempered_frequencies, $m->eq_tempered_intervals, $m->eq_tempered_cents, $m->integer_notation, ; # Find known intervals $name = $m->by_ratio($ratio); $ratio = $m->by_name($interval_name); # Show all the known intervals (the "notes" attribute above): perl -MData::Dumper -MMusic::Intervals::Ratios -e'print Dumper $Music::Intervals::Ratios::ratio'
A Music::Intervals object shows the mathematical break-down of musical intervals and chords.
Music::Intervals
This module reveals the "guts" of chords within a given tonality. By guts I mean, the measurements of the notes and the intervals between them.
* This module only handles equal temperament for the 12-tone scale only. *
$x = Music::Intervals->new(%arguments);
* Currently (and for the foreseeable future) this will remain the only value that produces sane results.
The list of notes may be any of the keys in the Music::Intervals::Ratios ratio hashref. This is very very long and contains useful intervals such as those of the common scale and even the Pythagorean intervals, too.
ratio
A few examples:
* [qw( C E G )] * [qw( C D D# )] * [qw( C D Eb )] * [qw( C D D# Eb E E# Fb F )] * [qw( C 11h 7h )] * [qw( C pM3 pM7 )]
For natural_intervals() this example produces the following:
'C pM3 pM7' => { 'C pM3' => { '81/64' => 'Pythagorean major third' }, 'C pM7' => { '243/128' => 'Pythagorean major seventh' }, 'pM3 pM7' => { '3/2' => 'perfect fifth' } }
Note that case matters for interval names. For example, "M" means major and "m" means minor.
$ratio = $m->by_name('C'); # { ratio => '1/1', name => 'unison, perfect prime, tonic' }
Return a known ratio or undef.
$name = $m->by_ratio($ratio);
Return a known ratio name or undef.
For the time being, you will need to look at the source of Music::Intervals::Ratios for the note and interval names.
Music::Intervals::Ratios
Music::Intervals::Numeric for numeric-only note-intervals
https://github.com/ology/Music/blob/master/intervals
http://en.wikipedia.org/wiki/List_of_musical_intervals
http://en.wikipedia.org/wiki/Equal_temperament
http://en.wikipedia.org/wiki/Just_intonation
Gene Boggs <gene@cpan.org>
This software is copyright (c) 2014 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::Intervals, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Music::Intervals
CPAN shell
perl -MCPAN -e shell install Music::Intervals
For more information on module installation, please visit the detailed CPAN module installation guide.