「ド」「レ」「ミ」... | 音符の表現 |
「ッ」 | 休符 |
「ー」 | 音を伸ばす |
「#」「b」 | 前の音を半音上下 |
「^」「_」 | オクターブ上下 |
for
文などを使って繰り返しを表現したり、
&parbegin
...&parend
を使って
複数音の同時生成を表現したりすることができます。
% donguri | t2mf | timidity -id -
#!/usr/local/bin/perl # どんぐりころころ require 'midi.pl'; &prologue; &inst(1,'Acoustic_Grand_Piano'); &inst(2,'Acoustic_Bass'); &channel(2); &play("__"); # ベースを2オクターブ下げる &parbegin; &channel(1); # ピアノチャンネル &serbegin; &play("ソッミミファミレド"); &play("ソッミミレーーッ"); &serend; &channel(2); # ベースチャンネル &serbegin; &play("ミッドドレレソソミミドドソーーッ"); &serend; &parend; &parbegin; &channel(1); &play("ミミソソララッラ^ドド_ミミソーッッ"); &channel(2); &play("ドドミミファファドファレレララソーッッ"); &parend; &epilogue;
#!/usr/local/bin/perl # フラクタル音楽! require 'midi.pl'; sub expand { local($t) = @_; return if $t == 0; transpose($t); &play("ド"); &expand($t-1); transpose(-$t); &play("ド"); &expand($t-1); } &prologue; &unitlen(50); &inst(1,'Acoustic_Grand_Piano'); &channel(1); &expand(8); &epilogue;