連載
» 2012年08月03日 09時50分 公開

「MML」を使ったミュージックはイナフにワールドワイドだ!プチコンで始めるBASIC新世代育成“虎の穴”(4)(2/3 ページ)

[スマイルブーム マイコン部,@IT MONOist]

もう1つ忘れてはならないプチコンのサウンド機能

 ワンパクくん、ごもっともです。ただ、実際には、そんな解釈の振れ幅の他にも、ハードの仕様に合わせて追加された独自拡張や、純粋に「あると便利だから」と追加された機能もあようです。

 だから、というわけではありませんが、プチコンの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音ごとにピッチ制御も可能じゃぞ。


神崎

ピッチ制御って、音を高くしたり低くしたり?


ハカセ

さよう。平たんな発音にこのピッチ調整を併せて使えば、簡易的じゃが歌を歌わせることもできるのじゃぞ。


「アメイジング・グレイス」イントロの作例 図2 「アメイジング・グレイス」のイントロの作例
インテリ

発音を正しい読み通りに書かずに、中途半端に英語っぽくしてるところが鼻につきますよね。


ハカセ(涙)

それを言うかのう。トホホ。


神崎

ねぇ、『音楽は世界の共通語』からどんどん話がズレてきたような……。


ハカセ

! そう言われればそうじゃ。では、ラストにワシの渾身の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.