![]() |
---|
Firefox 4(ベータ版)に搭載された「Audio Data API」を使うと、JavaScriptのプログラムで自在に音を生成できます。前回の記事では、Audio Data APIの基本的な使い方を紹介しました。今回はAudio Data APIを使って、MML(Music Macro Language)形式の楽譜データを演奏するプログラムを作ります。MMLは25年ほど前、コンピューターで音楽を演奏するために生まれた簡易言語で、アルファベットで音階を、数字で音符の長さを表します。
- ・MML (Music Macro Language)
- http://ja.wikipedia.org/wiki/Music_Macro_Language
MMLの仕様は機種や環境によってばらつきがありますが、今回は以下のようなパラメーターに対応します。
C | ドの音 |
D | レの音 |
E | ミの音 |
F | ファの音 |
G | ソの音 |
A | ラの音 |
B | シの音 |
R | 無音(休符) |
O | オクターブ指定(1,2,4,8) |
T | テンポ指定 |
C〜Bまでの音階の後ろに音符の長さを示す数値を指定します。たとえば、ドの音で4分音符であれば「C4」、16分音符であれば「C16」と表記します。半音上げる場合は先頭に#を付けて「#C4」のように記述します。
一般的なMMLでは「C4D2E1」のように音符と音符の長さの組み合わせを続けて記述しますが、今回は解析しやすいように1音ごとに半角空白で区切って記述します。たとえば、「ドレミファソラシ」と演奏するには以下のように書きます。
C4 D4 E4 F4 G4 A4
MMLはシンプルなルールで記述できるので、ちょっとした楽曲を演奏させるには非常に手軽に利用できます。
