このページではMXDRVのMDXデータの作成方法を記載します。
MDXとはSHARP X68000シリーズ用のFM音源ドライバMXDRV (C)milk, K.MAEKAWA, Yatsube, Missy.M の曲データ形式です。
GIMICのスタンドアロンモードにはMXDRV互換ドライバ*1が組み込まれている為、MDXデータを直接再生することが可能です。
また2014/07/29以降のファームウェアからはADPCMパートの演奏にも対応しました(2代目マザーボードPro版もしくはStd版が必要です)
MXDRVでの楽曲作成はMMLという言語を用いて行いますが、テキストファイルに演奏情報を記載しコンパイラでMDXデータ形式へと変換を行う必要があります。
主なコンパイラは以下の通りです。
コンパイラ名 | ダウンロードリンク*2 | EX-PCM対応状況 | 作者名 |
mxc.x | MXC101.LZH | 非対応 | (C)MFS soft, milk. |
note.x | NOTE085.LZH | 対応 | (C)DIS |
tmc2.r | TMC2.LZH | 対応 | (C)NORIKUN |
tmc.x | TMC105.LZH | 対応 | (C)NORIKUN |
mac.x | LINK | 対応 | (C)Konoa |
mxc.exe*3 | LINK | 対応 | (C)こうのたけし |
上記に挙げたPC-98用のmxc.exeを除く全てのコンパイラはX68000のOSであるHuman68k用の実行ファイルである為、そのままではWindows上で動作させることができません。
そこでrun68というHuman68kのコマンドラインをエミュレーションするツールを併用して実行して下さい。
PC側からGIMICへMDXデータを直に転送して再生することができないので制作中の曲データの再生に使うことになります。
⇒現在はUSB制御ファームを使ってhootやmxv、X68000エミュレータなどからも演奏することが可能です。
foobar2000をインストールしたら「C:\Program Files\foobar2000\components」に「foo_input_mdx.dll」をコピーすればOKです。*4
foobar2000を起動したらFile→Preferencesを開いてMDX inputの設定を行ってください。
#ref(): File not found: "foobar2000.jpg" at page "MDXデータ作成"
SampleRateに62500Hzを選択し、Use LPFのチェックを外して下さい。これでGIMICの音声出力に近い出音になります。
例としてnote.xを使った場合の環境構築の方法を記載します。上記サイトから「NOTE085.LZH」、「run68bin-009a-20090920.zip」をダウンロードして解凍してください。
#ref(): File not found: "notex.jpg" at page "MDXデータ作成"
「NOTE085.LZH」に含まれるデータで必要なのは「note.x」だけです。「note.doc」*5はMMLの仕様が記載されているマニュアルなので目を通しておきましょう。
#ref(): File not found: "run68.jpg" at page "MDXデータ作成"
「run68bin-009a-20090920.zip」に含まれるデータで必要なのは「run68.exe」と「run68.ini」だけです。
#ref(): File not found: "mxdrv.jpg" at page "MDXデータ作成"
「note.x」、「run68.exe」、「run68.ini」を一つのフォルダの中にコピーします。Cドライブ直下にmxdrvというフォルダを作ってそこに入れるのが良いと思います。
後はコマンドラインで
run68 note.x コンパイルするファイル.MML
と入力することでMDXデータを作成できます(以下のような表示が行われます)
#ref(): File not found: "compile.jpg" at page "MDXデータ作成"
コンパイル後、即座にfoobarで曲を再生したい場合は以下のようなバッチファイルを用意すると良いでしょう。
"C:\Program Files\foobar2000\foobar2000.exe" /stop
run68 note.x コンパイルするファイル.MML
call "C:\Program Files\foobar2000\foobar2000.exe" "%~dp0再生するファイル.MDX"
pause
※foobarで該当MDXが再生中の場合、ファイルがロックされていてコンパイルに失敗するので事前に演奏を停止しています。