Tiny MML
Posted feedbacks - Perl
1 2 3 4 5 6 7 8 9 | %FREQ_TABLE=( 'c'=>'262', 'd'=>'294', 'e'=>'330', 'f'=>'349', 'g'=>'392', 'a'=>'440', 'b'=>'494', 'r'=>'1');
sub play {
my($mml)=@_;
my $len=length($mml);
for(my $i=0;$i<$len;$i++) {
system(sprintf("beep -f %s", $FREQ_TABLE{substr($mml,$i,1)}));
}
}
play("cdefedcrefgagfercrcrcrcrcdefedcr");
|
Audio::Beep は CPAN で。
MML は引数にして下さい。
1 2 3 4 5 | use Audio::Beep;
my $music = $ARGV[0];
$music =~ s/(.)/\1 /g;
Audio::Beep->new()->play($music);
|


にしお
#3387()
Rating0/0=0.00
入力はcがド、dがレ、eがミ、fがファ、gがソ、aがラ、bがシ、rが休符とします。この8文字以外の文字は入力に含まれていないと仮定して構いません。おのおのの音符・休符は八分音符・八分休符とします。
オクターブや音の長さの変更、同時発音などの機能は不要です。
サンプル入力(カエルの歌)
[ reply ]