NAME

Music::ToRoman - Convert chords to Roman numeral notation

VERSION

version 0.0400

SYNOPSIS

use Music::ToRoman;

my $mtr = Music::ToRoman->new(
  scale_note => 'A',
  scale_name => 'minor',
);
my $roman = $mtr->parse('Am'); # i (minor)
$roman = $mtr->parse('Bo');    # iio (diminished)
$roman = $mtr->parse('CM');    # III (major)
$roman = $mtr->parse('Em7');   # v7 (minor seventh)
$roman = $mtr->parse('A+');    # I+ (augmented)
$roman = $mtr->parse('BbM');   # bII (flat-two major)

# Also:
$mtr = Music::ToRoman->new(
  scale_note => 'A',
  scale_name => 'dorian',
  chords     => 0,
);
$roman = $mtr->parse('A'); # i
$roman = $mtr->parse('B'); # ii
$roman = $mtr->parse('C'); # III

DESCRIPTION

Music::ToRoman converts chords to Roman numeral notation. Also individual "chordless" notes may be converted given a diatonic mode scale_name.

ATTRIBUTES

scale_note

Note on which the scale is based. This can be one of C, Cb, C#, D, Db, D# ...

Default: C

scale_name

Name of the scale. The diatonic mode names supported are:

ionian / major
dorian
phrygian
lydian
mixolydian
aeolian / minor
locrian

Default: major

chords

Are we given chords with major ("M") and minor ("m") designations?

Default: 1

If this is set to 0, then only diatonic mode scale_name output is rendered (other scales are ignored).

METHODS

new()

$mtr = Music::ToRoman->new(%arguments);

Create a new Music::ToRoman object.

parse()

$roman = $mtr->parse($chord);

Parse a given chord name into a Roman numeral representation.

SEE ALSO

Moo

List::MoreUtils

Music::Scales

https://en.wikipedia.org/wiki/Roman_numeral_analysis

AUTHOR

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 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.