「サクラ」語はMMLの方言だということができます
日は、「サクラ」でPrint命令などを使ってプログラムを作ってみたのだが、肝心の音を出す命令はどうなっているのだろうか。「サクラ」というのは、言ってみればMIDIコンパイラーだ。テキストで書いたプログラムをコンパイルして、MIDI仕様の楽器が演奏できるMIDIデータを作成する。
「サクラ」は、このMIDIデータを、Windowsのコントロールパネルの「サウンドとオーディオデバイスのプロパティー」で指定する「MIDI音楽の再生の既定のデバイス 」へ出力する。
MIDIの再生を、Windowsに標準で入っている音源(Microsoft GS Wavetable SW Synth)でやってもいいのだが、せっかくソフトシンセを使えるようにしてあるので、ここはまずSoundFontを使うことにする。
ということで、これから「サクラ」の説明をする時は、基本的にsfz.exeを立ち上げておいて、2gmgsmt.sf2のようなGS互換のSoundFontを読み込んであるという前提で説明する。
「サクラ」のエディタ画面に、試しにこう書いて再生ボタンを押してみる。
//---------- ここから ----------
c
//---------- ここまで ----------
「ド」と音が出たと思う。つまり、c というのが「ド」の音を出す命令なのだ。cdefgab と書けば「ドレミファソラシ」という音が出る。
これらの一連の音を出す命令は、MML(Music Macro Language)と呼ばれているものだ。要するに言語なのだ。
Music Macro Language
http://www.weblio.jp/content/Music+Macro+Language
このMMLは、パソコンで音が出せるようになった当時からずっと使われていて、BASICのPLAYコマンドなどにもパラメータとして使われてきたものだ。
MMLは、パソコンの進化と共にどんどん拡張がなされ、MIDIの規格ができてからは、MIDI形式のデータを作るための言語としても使われている。
MMLの主なコマンド
- CDEFGAB - ドレミファソラシの音符。後に#や+をつけて半音上げを、-をつけて半音下げを指定できる。その後に数字をつけて音の長さ(2=2分音符、4.=付点4分音符 など)を指定できる。
- O - オクターブ指定
- L - A~Gの後に数字をつけないときの音の長さを指定
- V - 音量(ボリューム)を指定
MMLの書き方の基本は、上のような感じでどのMMLもほとんど同じなのだが、実際はMML言語を使うシステムと同じぐらいの数の方言がある。つまり、処理系を作る人によって微妙に拡張が行われているのだ。
「サクラ」語の音を出す命令の部分の仕様はこんな感じになっている。
「サクラ」命令一覧(音符属性&音名)
http://oto.chu.jp/doc/command/index2.htm#cmd1
というこことで、「サクラ」語(命令セット)は、MMLの一つの方言だと言うことができる。しかしこの方言、基本からはものすごい拡張が行われているのだ。
0 Comments:
コメントを投稿
<< Home