* MDXデータの作成方法 [#y5ab0245]
このページではMXDRVのMDXデータを作成する方法を筆者のメモ代わりに公開しています。~
筆者はリアルタイム世代のX68000ユーザーではありませんし、当時の事を紐解いてまで記事を作る気は毛頭ありませんのでその旨ご留意下さい。~

#contents

** MDXとは [#vde7e5bd]
MDXとはSHARP X68000シリーズ用のFM音源ドライバMXDRVの曲データ形式です。~

> MXDRV (C)milk, K.MAEKAWA, Yatsube, Missy.M

GIMICのスタンドアロンモードにはMXDRV再生エンジン((MXDRV v2.06+17相当))が組み込まれている為、MDXデータを直接再生することが可能です。~
また2014/07/29以降のファームウェアからはADPCMパートの演奏にも対応しました(2代目マザーボードPro版もしくはStd版が必要です)~

*** MDXを作るには [#u5a7cc9d]
MXDRVでの楽曲作成はMMLという言語を用いてテキストファイルに演奏情報を記載します。~
ただしMXDRVはそのテキストファイルをそのまま演奏情報として解釈することはできませんので、~
コンパイラを使ってバイナリデータに変換します。~

MXDRVは様々な人が開発に携わってきた為か、他の音源ドライバとは異なり、音源ドライバ作者自身が提供する物以外にもコンパイラがいくつかあるようです。~
主なコンパイラは以下の通りです。~

|コンパイラ名|ダウンロードリンク((リンクがかかっていない物はアーカイブ名で検索することで見つけることができると思いますが、各人の責任において行って下さい。))|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:http://retropc.net/x68000/software/sound/madrv/madrv/]]|対応|(C)Konoa|
|mxc.exe((PC-98x1用ですが32bit Windowsでも動作します。64bit Windowsで動作させる場合はMS-DOS Player for Win32-x64が必要と思われます))|[[MXD2063.LZH:http://www.vector.co.jp/soft/dos/art/se003454.html]]|対応|(C)こうのたけし|

上記に挙げたPC-98用のmxc.exeを除く全てのコンパイラはX68000のOSであるHuman68k用の実行ファイルである為、~
そのままではWindows上で動作させることができません。~
そこでrun68というHuman68kのコマンドラインをエミュレーションするツールを併用して動作させることになります。~

-[[run68(run68bin-009a-20090920.zip):http://sourceforge.jp/projects/sfnet_run68/]] (C)Yokko, masamic

** PDXとは [#t9ed1033]
PDXとはMXDRVのADPCM(PCM)を格納する為のデータ形式です。~
初期のPDXは96個までのADPCM(PCM)データを格納することができます。後期のPDX(EX-PDX)では96個を超えるデータを格納できるように拡張されています。~
格納できるデータ形式はMSM6258仕様のADPCM、8bit PCM、16bit PCM(ビッグエンディアン)の3種類です。~

*** ADPCM(PCM)データを作るには [#v905c758]
現在ADPCM(PCM)データを作るとした場合、WAVデータをADPCMデータに変換するのが最も効率が良いと思いますので変換ツールを紹介しておきます。~

|ツール名|ダウンロードリンク|作者名|
|PCM3PCM.X|[[PCM3V215.LZH:http://noz.ub32.org/68fsw.html]]|NOZ|
|WAV2ADP.X|W2ADP101.LZH|Yokko|
|PCMCONV.X|[[PCV10110.LZH:http://www.h6.dion.ne.jp/~chie/freesoft/]]|恥絵袋|
|PCMCONV.COM((PC-98x1用ですが32bit Windowsでも動作します。64bit Windowsで動作させる場合はMS-DOS Player for Win32-x64が必要です))|[[pconv18.lzh:http://www.vector.co.jp/soft/dos/art/se004506.html]]|こうのたけし|

※注意事項※~
WAVからADPCMに変換した場合、MXDRVの音量はv7~v8を指定することで元のWAVの音量に近くなります。~
WAVから8bit PCMに変換した場合、MXDRVの音量を最大のv15まで上げても上述のADPCMへ変換した物と比べて音量が異様に小さくなります。((恐らくPCM8が8bitPCMに対して適切なビットシフトを行っていない事が原因と思われます。元WAVをノーマライズしてピークギリギリまで上げてもこの問題は解決しませんので、実質8bit PCMは使い物にならないと考えて問題無いでしょう。))~
WAVから16bit PCMに変換した場合、そのままでは確実に音が割れます。元のWAVの音量を6~7%まで下げないとADPCMと同等の音量になりません。((これもPCM8が16bit PCMに対して適切なビットシフトを行っていない事が原因と思われます。要はADPCMを使った時と等価になるような調整は行われていない、と考えるべきでしょう))~

16bit PCMを使いたい場合は上記の変換ツールのオプションや、元WAV側で音量が6~7%になるように調整を行って下さい。

*** PDXを作るには [#hef74c37]
上記セクションで作成したADPCM(PCM)データをMXDRVから直接読み取ることはできませんので、各々のデータを連結してPDXファイルを作る必要があります。~
PDXを作るツールもいくつか種類があります。~

|ツール名|ダウンロードリンク|EX-PDX対応状況|作者名|
|PDXM.X|PDXM.LZH|非対応|milk.|
|PDMK.X|PDMK05.LZH|対応|DIS|
|TPDXM.X|TPDXM07.LZH|対応|Satoyan, AKEMI.A|
|SPDXM.X|SPDXM110.LZH|対応|Satoyan|
|PDXM.COM((PC-98x1用ですが32bit Windowsでも動作します。64bit Windowsで動作させる場合はMS-DOS Player for Win32-x64が必要と思われます))|[[MXD2063.LZH:http://www.vector.co.jp/soft/dos/art/se003454.html]]|非対応|(C)こうのたけし|


* プレイヤ [#e51805ad]
-[[foobar2000:http://www.foobar2000.org/]] (C)Peter Pawlowski
-[[MDX/MDC input:http://www.vesta.dti.ne.jp/~tsato/soft_fb2k.html]] (C)RuRuRu

PC側からGIMICへMDXデータを直に転送して再生することができないので制作中の曲データの再生に使うことになります。~
⇒現在は[[USB制御ファーム>USB制御]]を使ってhootやmxv、X68000エミュレータなどからも演奏することが可能です。~

foobar2000をインストールしたら「C:\Program Files\foobar2000\components」に「foo_input_mdx.dll」をコピーすればOKです。((必要に応じて「foo_input_s98.dll」も入れておくと良いでしょう))~
foobar2000を起動したらFile→Preferencesを開いてMDX inputの設定を行ってください。~

#ref(foobar2000.jpg)

SampleRateに62500Hzを選択し、Use LPFのチェックを外して下さい。これでGIMICの音声出力に近い出音になります。~

* コンパイル環境の構築 [#j02a1550]
例としてnote.xを使った場合の環境構築の方法を記載します。上記サイトから「NOTE085.LZH」、「run68bin-009a-20090920.zip」をダウンロードして解凍してください。~

#ref(notex.jpg)
「NOTE085.LZH」に含まれるデータで必要なのは「note.x」だけです。「note.doc」((.doc形式ですが実際にはただのテキストファイルなのでnote.txtとリネームしてメモ帳で開いてください。))はMMLの仕様が記載されているマニュアルなので目を通しておきましょう。~

#ref(run68.jpg)
「run68bin-009a-20090920.zip」に含まれるデータで必要なのは「run68.exe」と「run68.ini」だけです。~

#ref(mxdrv.jpg)
「note.x」、「run68.exe」、「run68.ini」を一つのフォルダの中にコピーします。Cドライブ直下にmxdrvというフォルダを作ってそこに入れるのが良いと思います。~

後はコマンドラインで~

>run68 note.x ''コンパイルするファイル.MML''

と入力することでMDXデータを作成できます(以下のような表示が行われます)~

#ref(compile.jpg)

コンパイル後、即座にfoobarで曲を再生したい場合は以下のようなバッチファイルを用意すると良いでしょう。~

>"C:\Program Files\foobar2000\foobar2000.exe" /stop ~
run68 note.x ''コンパイルするファイル.MML'' ~
call "C:\Program Files\foobar2000\foobar2000.exe" "%~dp0''再生するファイル.MDX''" ~
pause ~

※foobarで該当MDXが再生中の場合、ファイルがロックされていてコンパイルに失敗するので事前に演奏を停止しています。~

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS