読者です 読者をやめる 読者になる 読者になる

MML記法の各初期値を調べてみた

すでに誰かがやってるかもしれないけどMML記法の演奏エンジンであるFlMMLのソースを読んでMML記法の各初期値を調べてみた。
なお小数になっている値は厳密にMMLで指定することを仮定した場合のものであり、実際には小数での指定は意味がありません。

テンポ t120
オクターブ o4
デフォルト音長 l4
ボリューム v11.625
ゲートタイム q15
エンベロープ @e1,0,50.8,25.4,0*1
音色 @3 (パルス波)
ノイズ周波数 @n0
パルス波のデューティ比 @w50

備考

  • リリースに0を指定すると127を指定したのと同じになる
  • デフォルト音長をl0と指定するとl4と指定したのと同じになる
  • 分解能は384
  • ボリュームをv0と指定すると実際には最大音量(v15)の7/127を指定したことになる
  • コマンドの後ろの数字を省略すると基本的には現在の設定値と同じになるが
    • vコマンドの場合現在の設定値*8+7を指定したことになってしまう
    • @e1はアタックが0、ディケイが64、サスティンレベルが32、リリースが0となる(値を入れたところはその通りになる)
    • @n, @wは初期値

10/23追記

FlMMLがアップデートされたので現在では違うところがあるかもしれません。そのうち確認します。

*1:実際にこのようにするとリリースは127になるが、初期値は本当に0である