何度も説明しますが、ドレミファソラシドの音がオクターブを加えて
O4CDEFGABO5Cとなります。高いドでオクターブが変わります。
このように記号化してプログラムを書くことをマクロ言語と呼びます。
MMLは単にミュージックマクロランゲージの略ですから、
すこし覚えればラクにメロディを流すことができます。
MSXはこのような内容で進めています。さて、
Cと高音部も5線の3本上までのE、
さらに半音も対応させました。
そして、待望のMML完全対応に向けて別のプログラムも作り始めました。
DATA "O4E8","O4D8","*"
終わりは*の記号にしています。これが今のプログラムです。
このようなデータを譜面化していますが、何度も作っていると
1つ1つの音の長さを設定したり面倒になってきました。
たとえばこの場合はPLAY"O4L8ED"でよいです。
全て4分音符ならばPLAY"ED"になります。このように略した
MMLにすると文字数もかなり減って見やすくなります。
たとえば
PLAY"O4CD8E"
O4C4,O4D8,O4Eを略したものです。1音1音カンマで区切ってみます。
PLAY"O4ABO5CO4AG#”
O4A4,O4B4,O5C4,O4A4,O4G#4を略したものです。
#は半音の記号です。
このように略されたMMLでは再生する時の音の要素がないので
オクターブを調べたり、長さを調べたり、半音を調べたりと
データにするには後の記号の解析処理が面倒になりますが、
そのままMMLを譜面に変えてしまうことも可能になります。
次回はこのプログラムを組み込み譜面化していきます。
データ形式を変えて、かなりラクにできるようになります。
DATA"O4CD8E"
こんな感じですね♪~
8月のMSXはこれで終わりです。
プログラムのダウンロードは9月15日を予定しています。