Z-MUSIC MML チュートリアル 中級篇 その3
Lesson 19: 繰り返しを使う・応用篇
Lesson 19: 繰り返しを使う・応用篇
簡単な繰り返しのやり方についてはLesson7でやっていますが、 ここではもう少し複雑な繰り返し表現についてみていきます。
t160 z127 @v127 @1 [k.sign #f] o3 |:2 a<df |1 g2^8f8 f2.^2. :| |2 gf.e8 a2d :|
|:2 ~ :|
は、 Lesson7でやった通り 「2回繰り返す」ですが、 |1 ~ :|
や |2 ~ :|
といった見慣れぬMMLが今回出ています。
先に種明かしをしてしまうと、これは「繰り返しの1回目の時のみ演奏する」 「繰り返しの2回目の時のみ演奏する」というものです。
^
についてはLesson8でやってます。(音の長さの足し算)t
についてはLesson10でやってます。(テンポの変更)[k.sign]
は今回初めて出てきました。特定の音階MMLに、 #やら♭やらをデフォルトでつけてしまう機能で、 ここではf
に#
(つまりシャープ)をつけています。 以下、普通にf
と書けば、演奏時にはf#
と解釈されます。
# ここまで見て、「この仕様じゃ多重ループしたときにループエンドの識別で問題になるんじゃない?」と感じたパーサ屋さん、あなたは正しい。 でも、元がこういう仕様なんだから仕方がない。
次に・・・| ~ :|
のように、 数字を書かずに |
を使うと、「繰り返しの最後の時だけは、演奏しない」という意味になります。例えば
(t10) t160 z127 @v127 o1 l8 |:4 'b<f#8' | <f#16f#16 :| o1 'b<<c#' 'b<<a'
とすると、3回「デッチキ」と鳴った後で、4回目は「デッ」のみが鳴り (つまり | ~ :|
部の「チキ」は演奏されない)、 「チャンチャーン」と、繰り返しの後に普通に書かれているクラッシュシンバルが鳴ります。
他にも、[do]
~[loop]
など、 繰り返し関係のMMLコマンドは色々ありますが、 これらについては自由研究ということでお願いします。