The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Music::Intervals::Numeric - Mathematical breakdown of musical intervals

VERSION

version 0.0502

SYNOPSIS

  use Music::Intervals::Numeric;
  $m = Music::Intervals::Numeric->new(
    notes => [qw( 1/1 5/4 3/2 15/8 )],
    size => 3,
    freq => 1,
    interval => 1,
    cent => 1,
    prime => 1,
  );
  $m->process;
  # Then print Dumper any of:
  $m->frequencies;
  $m->intervals;
  $m->cent_vals;
  $m->prime_factor;

  # Show all the known intervals (the "notes" attribute above):
  perl -MData::Dumper -MMusic::Intervals::Ratio -e'print Dumper $Music::Intervals::Ratio::ratio'

DESCRIPTION

A Music::Intervals object shows the mathematical break-down of musical intervals and chords.

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, in just intonation.

METHODS

new()

  $x = Music::Intervals->new(%arguments);

Attributes and defaults

cent: 0 - divisions of the octave
freq: 0 - frequencies
interval: 0 - note intervals
prime: 0 - prime factorization
size: 3 - chord size
semitones: 12 - number of notes in the scale
temper: semitones * 100 / log(2) - physical distance between notes
notes: [ 1/1 5/4 3/2 ] - C E G - actual notes to use in the computation

The list of notes may be any of the keys in the Music::Intervals::Ratio ratio hashref. This is very very long and contains useful intervals such as those of the common scale and even the Pythagorean intervals, too.

SEE ALSO

For the time being, you will need to look at the source of Music::Intervals::Ratio for the note and interval names.

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

AUTHOR

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE

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.