このページではMXDRVのMDXデータをGIMIC向けに作成する方法を筆者のメモ代わりに公開しています。
また紹介するソフトウェアの作者名は敬称略させて頂きます。
MDXとはSHARP X68000シリーズ用のFM音源ドライバMXDRVの曲データ形式です。
MXDRV 作者:milk, K.MAEKAWA, Yatsube, Missy.M
GIMICのスタンドアロンモードにはMXDRV再生エンジン*1が組み込まれている為、MDXデータを直接再生することが可能です。
また2014/07/25以降のファームウェアからはADPCMパートの演奏にも対応しました(2代目マザーボードPro版もしくはStd版が必要です)
MXDRVでの楽曲作成はMMLという言語を用いてテキストファイルに演奏情報を記載します。
ただしMXDRVはそのテキストファイルをそのまま演奏情報として解釈することはできませんので、コンパイラを使ってバイナリデータに変換し、
そのバイナリデータをMXDRVに渡すことによって演奏を行います。
MXDRVは様々な人が開発に携わってきた為か他の音源ドライバとは情勢が異なり、音源ドライバ作者以外が提供するコンパイラも存在します。
主なコンパイラは以下の通りです。
コンパイラ名 | アーカイブ名 | EX-PCM対応状況 | 作者名 |
mxc.x | MXC101.LZH | 非対応 | MFS soft, milk. |
note.x | NOTE085.LZH | 対応 | DIS |
tmc.x | TMC105.LZH | 対応 | NORIKUN |
tmc2.r | TMC2.LZH | 対応 | NORIKUN |
mac.x | MADRV201.LZH | 対応 | Konoa |
mxc.exe | MXD2063.LZH | 対応 | こうのたけし |
EX-PCMとはMXDRVにおいてADPCM(PCM)を8パート利用できる拡張機能に対応しているか否かを示しています。
GIMICでは2014/07/29以降のファームウェアからEX-PCM対応の曲データの演奏にも対応しています。
何を使えば良いか分からない場合はnote.xを使うと良いでしょう。
上記またこれから紹介するツールの拡張子が.Xまたは.RのファイルはX68000のOSであるHuman68k用の実行ファイルです。
そのままではWindows上で動作しないので、run68というHuman68kのコマンドラインをエミュレーションするツールを併用します。
同様に拡張子が.EXEまたは.COMのファイルはPC-98,PC/ATのMS-DOS用の実行ファイルです。
32bit Windowsであればそのまま動作しますが、64bit Windowsで動作させる場合はMS-DOS Player for Win32-x64が必要になります。
PDXとはADPCM(PCM)データを格納する為のデータ形式です。
初期のPDXは96個までのADPCM(PCM)データを格納することができます。後期のPDXでは96個を超えるデータを格納できるように拡張されています。
格納できるデータ形式はMSM6258仕様のADPCM、8bit PCM、16bit PCM(ビッグエンディアン)の3種類です。
現在ADPCM(PCM)データを作るとした場合、WAVデータをADPCMデータに変換するのが最も効率が良いと思いますので変換ツールを紹介しておきます。
ツール名 | アーカイブ名 | 作者名 |
PCM3PCM.X | PCM3V215.LZH | NOZ |
WAV2ADP.X | W2ADP101.LZH | Yokko |
PCMCONV.X | PCV10110.LZH | 恥絵袋 |
PCMCONV.COM | PCONV18.LZH | こうのたけし |
※注意事項※
WAVからADPCMに変換した場合、MXDRVの音量はv7~v8を指定することで元のWAVの音量に近くなります。
WAVから8bit PCMに変換した場合、MXDRVの音量を最大のv15まで上げても上述のADPCMへ変換した物と比べて音量が異様に小さくなります。
WAVから16bit PCMに変換した場合、そのままでは確実に音が割れます。元のWAVの音量を6~7%まで下げないとADPCMと同等の音量になりません。
16bit PCMを使いたい場合は上記変換ツールのオプションや、元WAV自体を加工して音量が6~7%になるように調整を行って下さい。
作成したADPCM(PCM)データをMXDRVから直接読み取ることはできませんので、各々のデータを連結してPDXファイルを作る必要があります。
PDXを作るツールもいくつか種類があります。
ツール名 | アーカイブ名 | EX-PDX対応状況 | 作者名 |
PDXM.X | PDXM.LZH | 非対応 | milk. |
TPDXM.X | TPDXM07.LZH | 対応 | Satoyan, AKEMI.A |
SPDXM.X | SPDXM110.LZH | 対応 | Satoyan |
PDMK.X | PDMK05.LZH | 対応 | DIS |
PDXM.COM | MXD2063.LZH | 非対応 | こうのたけし |
EX-PDXとは前述した96個を超えるADPCM(PCM)データを格納できるように拡張されたPDXファイルのことです。*2
何を使えば良いか分からない場合はPDMK.XやSPDXM.Xを使うと良いでしょう。後者はADPCM(PCM)データを加工する機能も搭載しているようです。
PC側からGIMICへMDXデータを直に転送して再生することができないので制作中の曲データの再生に使うことになります。
⇒現在はUSB制御モードを使ってhootやmxv、X68000エミュレータなどからも演奏することが可能です。
foobar2000をインストールしたら「C:\Program Files\foobar2000\components」に「foo_input_mdx.dll」をコピーすればOKです。*3
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」*4は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