ワンパクくん、ごもっともです。ただ、実際には、そんな解釈の振れ幅の他にも、ハードの仕様に合わせて追加された独自拡張や、純粋に「あると便利だから」と追加された機能もあようです。
だから、というわけではありませんが、プチコンのMMLにも独自の拡張があります。中でもオススメの機能は「ループ」と「(MML用)変数」です。
ループは“[CDE]”と書けば永遠に(止めない限り)ドレミドレミ……と続くループになります。終端に繰り返し数を書いて、“[CDE]5”(ドレミを5回ループ)のように構文の短縮に使うのもよいでしょう。さらに、最大3段までループの入れ子が作れる上、MMLのデータ自体直接記述せずに文字変数を読み込むことができるので、これだけでもかなり複雑なことができそうです。
MML用変数は、文字通りMML内で利用できる変数です。例えば通常“C16”は「16分音符の長さで『ド』を鳴らす」構文ですが、変数“$0”を先に“16”と定義して、“$0=16C$0”と書くこともできます。この変数はプログラム内で代入できるので、状況に応じて特定の音の長さを変えるようなプログラムができるわけです。
あるトラックだけ“V$1”、つまりボリュームの値を変数「$1」にしておいて、ゼロ=無音と128=最大音量を切り替えるなんて使い方は、ゲームに便利かもしれません。
ところで、プチコンのサウンド機能といえば、もう1つ忘れてはいけないものもありまして……。
ウウ……。一気に畳み掛けやがって……。
ちょっと駆け足だったじゃろうか。それだけ奥の深い世界と言えるかもしれんな。では一休みして、手軽でキャッチーなところを見てみようではないか。
TALK"コンニチワ"
!! プチコンから声が……。バ、バカな!?
プチコンmkIIで採用された音声合成機能だね。「TALK命令」でカナ入力すれば、そのまま発音されるんだ。
イヤそこじゃなくって、これ日本語で書いてあるんだろ? 最初の『音楽は世界の共通語』って話とムジュンしてねえか?
……コレは音楽ではないので、もともと共通語ではないのじゃ!(ドヤッ)
ウマいこと言ってやったみてえなツラしてんじゃねえ!
日本語に特化してあるのは事実じゃしな………。それに、海外版では発音されない仕様で、仮にTALK命令を記述してもエラーにならないようになっておる。まぁ、いろいろあるんじゃよ。
逆に“日本語に合わせた作り”だけあって、イントネーションの調整は日本語らしいんだね。コマンドを使えば通常モードの他に『ギャル風』『外人風』『関西弁風』が選べるよ。
このコマンド挿入のやり方はMMLっぽくもあるかのう。こう書けば『外人風』が選択され、インターナショナルな発音になるはずじゃぞ。
TALK"@H2ニホンノミナサン コンニチワ"
インターナショナルというか、単に日本語が苦手なヤツじゃねーか!
そうとも言うかのう。ちなみに、もっとそれっぽくしたければアクセント位置を調整することもできるし、1音ごとにピッチ制御も可能じゃぞ。
ピッチ制御って、音を高くしたり低くしたり?
さよう。平たんな発音にこのピッチ調整を併せて使えば、簡易的じゃが歌を歌わせることもできるのじゃぞ。
発音を正しい読み通りに書かずに、中途半端に英語っぽくしてるところが鼻につきますよね。
それを言うかのう。トホホ。
ねぇ、『音楽は世界の共通語』からどんどん話がズレてきたような……。
! そう言われればそうじゃ。では、ラストにワシの渾身のMML作品を見てもらおう!!
BGMPLAY"T60[R]33[R]160[R]80"
……。随分と短えが……。何だコレ?
ええと、最初に“T60”で1拍/秒にして……。後は、休符“R”をループで33回、160回、80回くり返す?
これは……。もしかして……。
さよう。これは有名な『4分33秒』の演奏じゃよ。楽章ごとにループを切り替えておるところがこだわりじゃな。
何かをやり遂げたつもりになってるんじゃねー! MML自体はタダの無音じゃねーか!
演奏の前に“SYSBEEP=FALSE”を入れてシステム音を切っておくべきかどうかも、演奏者の解釈の分かれるところじゃな。まこと奥の深い世界じゃ……。
チキショー、ドヤ顔でしゃべりやがって! テメーがまず無音になりやがれー!
Copyright © ITmedia, Inc. All Rights Reserved.