Note - representation of a single musical note, and various manipulation routines
use Music::Note; my $note = Music::Note->new("C#4","ISO"); # 'simple' style - notename/type $note->transpose->(-16); # to A2 $note->alter(1); # to A#2 $note->en_eq('flat'); # to Bb2 print $note->format("kern"); # BB- $note = Music::Note->new({step=>'C',octave=>'4',alter=>1}); print $note->octave(); # 4 print $note->step(); # C
An OO encapsulation of a single musical note. Includes methods for transposition, enharmonic equivalence, and creation/output in a range of formats.
Creates a new Note object. See below for a list of types. $type defaults to "ISO" if omitted. $notename defaults to "C4".
Creates a new Note object. Parameters are MusicXML compliant - viz. "step" (A-G), 'octave' (+/- integer) and 'alter' (+/- integer). The 'octave' parameter is based upon standard usage, where C4=Middle C and the number changes between B and C. The 'alter' parameter indicates accidentals, where '1' is sharp, '-1' is flat, '2' is double-sharp and so on.
Returns the note object formatted in one of the styles named below.
Transposes the note by $amount semitones (+/-), keeping accidental types where possible (eg. - Ab + 2 = Bb, not A#). Returns the note object.
Changes the Note into an enharmonic equivalent (C#->Db, for instance). $type can be either 'sharp' (or 's'/'#') or 'flat'('f'/'b'). Double accidentals are naturalised - so 'Bbb' will become 'A' if sharpened, and 'Fx' becomes 'G' if flattened. Returns the note object.
ISO (C3, D#4, Ab5) isobase (C, Ds, Af (as ISO, but no octave number) ) midi (C3, Ds4, Af5) midinum (0-127) kern (CC, d+, aa-) MusicXML (<pitch><step>D</step><octave>4</octave><alter>1</alter></pitch>) pdl (c3, ds4, af5) 'xml' can be used as a synonym for 'MusicXML'.
Ben Daglish (bdaglish@cpan.org)
None known All feedback most welcome.
Copyright (c) 2003, Ben Daglish. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module.
perl(1).
To install Music::Note, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Music::Note
CPAN shell
perl -MCPAN -e shell install Music::Note
For more information on module installation, please visit the detailed CPAN module installation guide.