MML記法の勉強中


cdefgabでドレミファソラシドで音程を表す。rが休符です。デフォルトの長さ4分音符以外の場合は音符や休符のあとに数字で2とか8とかつけると2分音符、8分音符になる。数字のあとにドット(ピリオド)をつけると1.5倍の長さになる。オクターブ上げるときには数字を<>で囲む。これは<が音程を上げる記号で>が音程を下げる記号だから。したがって、オクターブ下げるときには><で囲むことになる。

cdefgabではわかりにくいのでドレミファソラシドで書いて変換するプログラムというかスクリプトを考え中。

まだ半音を試していないので、以下テスト

大きな古時計

rrrc fe8f8gf8g8 a8a8b-8a8d g8g8ff8f8e d8e8f2c
fe8f8gf8g8 a8a8b-8a8d g8g8ff8f8e d8e8f2f8a8
<c>a8g8fe8f8 g8f8e8d8cf8a8
<c>a8g8fe8f8 g2.r8c8 f8f8rgr a8a8b-8a8d
g8g8ff8f8e d8e8f2r

おー、楽しいですねー。半音は音程のあとにプラスマイナスで長さの数字はそのあとでいい。

MMLですごい作品もあるようですが、わたしとしてはこの程度の簡単な音楽に適していると思います。いろんな楽器の初歩の初歩、入門の入門での音符はメロディーとせいぜい和音の指定くらいしかないですよね? そんな感じ。

四季の歌

t120l4o5q7
aa8g8f8g8f8e8 dddr
b-b-8a8g8f8g8b-8 a2.r
b-b-8a8gg8b-8 aa8f8dd
eag8f8e8f8 d2.r

解説:1行目のt120というのは一拍の速さを決めるもので指定しなければたしかt120で早くしたければt100とかにする。l4は4部音符標準ということで音程だけ書いたときのデフォルトを決定。o5は標準のオクターブの高さを決定。低い曲だとo4とかにする。q7は指定しないと一拍一拍フルフルの長さで鳴ってしまい不自然なので、なんらかの数字で早めに切り上げる(よくわかりません。実験中)