Music::Intervals - Breakdown of musical intervals
version 0.0704
use Music::Intervals; my $m = Music::Intervals->new( notes => [qw/C E G B/], size => 3, # Must be <= notes ); # Then any of: print Dumper( $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 my $name = $m->by_ratio('6/5'); my $ratio = $m->by_name('Eb'); perl -Ilib -MMusic::Intervals::Ratios -E'say $Music::Intervals::Ratios::ratio->{C}{name}' # unison, perfect prime, tonic # Show all the 400+ known intervals: perl -MData::Dumper -MMusic::Intervals::Ratios -e'print Dumper $Music::Intervals::Ratios::ratio'
A Music::Intervals object shows the breakdown of musical notes, intervals and chords.
Music::Intervals
This module reveals the "guts" within a given tonality. And by guts I mean, the measurements of the notes and the intervals between them.
For Western notes and intervals, this tonality begins with the C note. That is, all intervals are calculated from C. So, if you want to analyze a minor chord, either make it start on C (like [C Eb G]) or somewhere between C and B (like [D F A]).
C
[C Eb G]
B
[D F A]
The actual notes to use in the computation.
Default: [ C D E F G A B ]
[ C D E F G A B ]
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 last 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.
Chord size
Default: 3
3
Show chord names with no root.
Default: 0
0
$x = Music::Intervals->new(%arguments);
Create a new Music::Intervals object.
Chord names of the size note combinations.
Math! See source...
The Equal tempered cents.
The Equal tempered frequencies.
The Equal tempered intervals.
Just intonation cents.
Just intonation frequencies.
Just intonation intervals.
Just intonation prime factors.
Return pairs of the given notes with fractional and pitch ratio parts.
Return the dyadic fraction as a prime factored expression.
$ratio = $m->by_name('C'); # { ratio => '1/1', name => 'unison, perfect prime, tonic' }
Return a known ratio or undef.
$name = $m->by_ratio('1/1'); # { 'symbol' => 'C', 'name' => 'unison, perfect prime, tonic' }
Return a known ratio name or undef.
The t/ tests and eg/ example in this distribution
For the time being, you will need to look at the source of Music::Intervals::Ratios for the note and interval names.
Music::Intervals::Numeric for numeric-only note-intervals
http://en.wikipedia.org/wiki/List_of_musical_intervals
http://en.wikipedia.org/wiki/Equal_temperament
http://en.wikipedia.org/wiki/Just_intonation
Music::Scala - A powerful module encompassing thousands of scales and the ratios therein
Gene Boggs <gene@cpan.org>
This software is copyright (c) 2022 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.