同時発音数 制限なし(コンパイラの仕様上の制限で26)。 音色表現力 チェンネル毎に任意のモジュールを動的に選択可能。加えて、チャンネル間のFM変調機能搭載。ステレオ出力。 音程解像度 2種類から選択可能。 タイマー テンポ制御用とエンベロープ制御用の2本の擬似タイマー割り込みを内部に持つ。
PSG 矩形波音源。もっとも単純な音色しか出せないが、処理はもっとも軽い。 FC デューティ比を調節できる矩形波。ファミコンレベルの音色表現が可能。処理も軽い。 NOISE ノイズ音源。 SIN サイン波。FM変調をすることで、FM音源同様の表現が可能。 SCC ウェーブテーブル音源。コナミ往年のSCC音源を再現可能。テーブルサイズは32。
Hz Hz単位での表現が可能。通常のモード。 MSX MSXで使用されていたPSGと同等の解像度。高音域になると、音程が荒くなる。
#TITLE <[title]> 曲名を登録する。'\'を使えば、'>'等も含めることができる。
(例)#TITLE <RISING ZAN \<THE SAMURAI GUNMAN\>>#CHANNEL [n] 曲のなかで使う最大音色数を指定する。
(例)#CHANNEL 3#PRAGMA [key] GameBoy用の曲データを作る際に使用する。詳細はとりあえず未公開。 #WAV [n], <[table]> SCC用の波形テーブル n にデータを設定する。signed char×32。パラメータの詳細は後述。
(例)#WAV 0, <(0, 127),16, (-128, 127),16>#TABLE [n], <[table]> エンベロープ用の波形テーブル n にデータを設定する。siged char の任意長。パラメータの詳細は上に同じ。 #A〜#Z 各チャンネルのMMLデータを記述する。 #END MMLの終了を示す。これ以降はコメントとして扱われる。
要素の数だけ、「,」で区切ってパラメータを列挙する。
(l, m),n の書式で、lからmまでの値をn個のパラメータで線形補完する。例えば、(1,5),5 は、1,2,3,4,5 と同じ。
t[n] 1≦n(120)≦512 テンポ指定。テンポ制御用のタイマーの値を操作するので全チャンネルに影響が及ぶ。 $ 無限ループ開始位置指定。これが指定されると、チャンネルデータが最後まで演奏された時、この位置に戻る。 [[n] ... | ] 2≦n(2)≦255 ループ擬似命令。'['から']'の間をn回繰り返す。最終ループの時は、'|'まで来たらループを抜ける。'|'は省略可能。コンパイルの段階で展開される。そのため、バイナリサイズは大きくなってしまう。が、相対命令も有効。ネストは不可。
(例)[3c<] …(展開)→ c< c< c</:[n] ... / ... :/ 2≦n(2)≦255 ループ命令。'/:'から':/'の間をn回繰り返す。最終ループの時は、'/'まで来たらループを抜ける。'/'は省略可能。ドライバレベルのループ機能なので、コンパイル時に展開される相対命令の類は繰り返されない。ネストは16重まで可能。
(例)/:2cde/fgab<:/c:/ …(展開)→ cdefgab cde <c{ ... } コメント。'{'から'}'で囲まれた部分をコメントとして扱う。ネストも可能。
s[n] 0≦n(0)≦255 サスティン。キーオフ後にいきなり音を消さずに減衰させる。0の時はOFF。値が大きいほど減衰も急。 s[n],[m] 0≦n(0)≦255,
-128≦m(0)≦127拡張サスティン。キーオフ後に、音量だけではなく、音程も同時に連続的に変化させる。mに対する音程の変化分は、音程モードにより、異なる。 % 0≦n(0)≦255 モジュール変更。モジュール指定に使う数値は後述。 @ 0≦n(0)≦255 音色変更。変更の方法・有効範囲はモジュール毎に異なり、そのパラメータの有効性はコンパイル時にはチェックされないので注意。
o[n] 1≦n(4)≦8 オクターブの指定。大きいほど高い。 > オクターブ・ダウン。コンパイラ擬似命令。 < オクターブ・アップ。コンパイラ擬似命令。
(例)cdrfgab<ca[n]〜g[n] 1≦n(L)≦1024 ラ〜ソにそれぞれ対応した音を出す。Lはl[n]で指定された値。 +(#)/- a〜gの直後に記述することで、音程を半音単位で上げ/下げする。 r[n] 1≦n(L)≦1024 休符指定。 k[n] -128≦n(0)≦127 ディチューン。 mp[a], [b], [c], [d], [e] 0≦a≦65535,
0≦b≦255,
0≦c≦255,
-128≦d≦127,
0≦e≦255ピッチモジュレーション。a : Delay, b : Depth, c : Width, d : Height, e : Delta。発声後、a 単位時間後にモジュレーション開始。width 単位時間おきに height 単位音程ずつ変化する。変化量の絶対値が depth に達したら、変化の方向を逆転する。以上の処理を、delta 回繰りかえしたら、depth は 1 増える。任意のパラメータを省略可能。これを使用すると s コマンドの第 2 パラメータは無効になる。
q[n] 1≦n(MG)≦MG 実際に演奏する音調の割合。ある長さだけ音を伸ばそうとしたとき、実際にはその長さのn/MGが演奏され、残りの時間は休符になる。(現在はMG=16で固定) l[n] 1≦n(4)≦1024 省略時の音調指定 . 音長指定の直後に付加することで、長さを1.5倍にする。続けて複数付加できる。 ^ タイ。音長のあとにさらに音長を追加する。
(例)c4^16
v[n] 1≦n(10)≦15 音量を指定する。数値が大きいほど音も大きい。この方法で指定すると、音の位置は中央になる。 v[n], [n] 1≦n≦15 音量を指定する。始めの値が左、次の値が右のチャンネルの音量を示す。任意のパラメータを省略可能。
(例)v15,0 c v10, c v0,10 c v,15 cna[n],[m] 0≦n(0)≦255,
0≦m(0)≦255音量エンベロープ。テーブルn番のデータでエンベロープをかける。mは1回の変化が起こるまでの時間。mが大きいほど変化はゆっくりになる。いずれかの省略は不可。共に省略、またはmが0の時は機能をOFFにする。
ID 音源 音程モード 0 PSG Hzモード 1 FC Hzモード 2 NOISE Hzモード 3 SIN Hzモード 4 SCC Hzモード 128 PSG MSXモード 129 FC MSXモード 130 NOISE MSXモード 131 SIN MSXモード 132 SCC MSXモード
復活。ドキュメントは後日・・・
based on ver.0.85