Skip to content
Mitsutaka Okazaki edited this page Jul 30, 2024 · 12 revisions

MSXplay FAQ

Q) MML先頭の ;[gain=1.0 name=blank ...] のようなコメントは何ですか?

MSXplay専用の制御パラメータを記述する領域です。 MMLの先頭に、;[key1=value1 key2=value2 ...] のような書式で書く必要があります。

具体例はblank.mmlをご覧ください。 MMLの先頭に書かなかった場合は無視されます。

パラメータは以下の内容を使用できます。

パラメータ 値の型 既定値 意味
name 文字列 なし エクスポート時のMGSやMMLのベースファイル名を指定します。
gain 数値 1.0 再生時の音量を倍率で指定します。
duration 時間 300s 最大の演奏時間を指定します。300000msのように書くとms単位で指定できます。
fade 時間 5s 無限ループの後、フェードアウトする時間を指定します。5000msのように書くとms単位で指定できます。
loop 数値 2 無限ループが何回ループしたらフェードアウトするかを指定します。
cpu 数値 0 CPUのクロックを指定します。0は自動設定、1がZ80(3.58MHz)です。
lpf 数値 0 ローパスフィルタを有効にするかどうかを指定します。0で無効、1で有効です。
  • gain,fade,lpfはMSXplay上で演奏またはMP3/WAVエクスポートする際にのみ有効です。
  • duration はMSXplay上で演奏またはMP3/WAV/VGMエクスポートする際にのみ有効です。

Q)エディタ内で文字列の検索や置換をしたいです。

以下のショートカットを押すとエディタの右上に検索ボックスが出ます。

  • Windowsの場合 Ctrl+F
  • Macの場合 Cmd+F

さらに、検索ボックスの左下の「+」を押すことで置換ボックスを表示できます。

Q)MMLをシェアすると、エラーになります。

MMLのサイズ上限を超えている可能性があります。64KBを超えるMMLはシェアできません。

Q)5分以上ある曲データを演奏したいです。

前述のパラメータを使って、 durationに楽曲の演奏時間より長い時間を設定してください。

Q)好きな位置から演奏を開始したいです。

MMLに $ コマンドを置いてください。コンパイル後にその位置から演奏が始まります。

Q)l96l192がコンパイルエラーになります。

MGSCの仕様です。テンポによってコンパイルエラーになることがあるようです。 代替としてl%2l%1をお使いください。

Q)MMLにエラーがないのに、突然音が出なくなりました

コンパイラ(MGSC)の不具合と思われます。MMLの1行が長すぎると、エラーにならずに壊れたデータが生成されてしまうようです。

Q)@eコマンドを使って発音中にFM音色を切り替えると、MSXplayと実機で音色が違うことがあります。

仕様です。処理速度の差によって音色切り替えのタイミングが変わることによるものです。

実機でもTurboRとZ80の差で音色の違いが発生します。 Z80機でも常駐ソフトの存在などで割り込み負荷が異なる環境では、演奏結果に差が出る場合があります。

Q)演奏がループしないチャンネルがあります

コンパイラ(MGSC)の不具合のようです。ループコマンドを5重以上の入れ子にすると、正しくループできないことがあります。 以下は正しくループできない例です。

9A [
9  [ [ [ [ c32 ] ] ] c8 ] ; c32が鳴りっぱなしになる
A  c8 
9A ]0 ;

以下のように、MMLをトラック毎に別々にまとめるように書くと直ります。

9 [
9  [ [ [ [ c32 ] ] ] c8 ] 
9 ]0

A [ 
A c8 
A ]0

Q)MMLを開くと文字化けします

文字コードの自動解析に失敗している可能性があります。 文字コードの判別に十分な量の日本語が含まれていないことが原因なので、 メモ帳など他のエディタでMMLに日本語のコメントを何行か追加した後、開き直してください。