Music-Abc-DT
view release on metacpan or search on metacpan
lib/Music/Abc/DT.pm view on Meta::CPAN
ABC_T_NULL => 0,
ABC_T_INFO => 1, # (first character of text gives the info type)
ABC_T_PSCOM => 2,
ABC_T_CLEF => 3,
ABC_T_NOTE => 4,
ABC_T_REST => 5,
ABC_T_BAR => 6,
ABC_T_EOLN => 7,
ABC_T_MREST => 8, # multi-measure rest
ABC_T_MREP => 9, # measure repeat
ABC_T_V_OVER => 10, # voice overlay
ABC_T_TUPLET => 11,
};
use constant { # symbol state in file/tune
ABC_S_GLOBAL => 0, # global
ABC_S_HEAD => 1, # in header (after X:)
ABC_S_TUNE => 2, # in tune (after K:)
ABC_S_EMBED => 3 # embedded header (between [..])
};
lib/Music/Abc/DT.pm view on Meta::CPAN
BAGPIPE => 9 # bagpipe when >= 8
};
use constant { # clef type
TREBLE => 0,
ALTO => 1,
BASS => 2,
PERC => 3
};
use constant { # voice overlay
V_OVER_V => 0, # &
V_OVER_S => 1, # (&
V_OVER_E => 2 # &)
};
# key signatures
use constant KEY_NAMES => qw(ionian dorian phrygian lydian mixolydian aeolian locrian major minor HP Hp);
use constant { NONE => 'none' };
use constant { MAXVOICE => 32 }; # max number of voices
lib/Music/Abc/DT.pm view on Meta::CPAN
# print next symbol if it is a clef
if ( ref( $c_tune->{symbols}->[ $c_sym_ix + 1 ] )
&& $c_tune->{symbols}->[ $c_sym_ix + 1 ]->{type} == ABC_T_CLEF )
{
$abc = _clef_dump( $abc, $c_tune->{symbols}->[ $c_sym_ix + 1 ] );
}
return $abc;
}
# -- return abc of voice overlay
sub _vover_to_abc {
my ( $new_abc, $sym ) = @_;
given ( $sym->{info}->{type} ) {
when (V_OVER_V) { $new_abc .= q{&}; }
when (V_OVER_S) { $new_abc .= '(&'; }
when (V_OVER_E) { $new_abc .= '&)'; }
}
return $new_abc;
( run in 0.286 second using v1.01-cache-2.11-cpan-26ccb49234f )