Last Modified at 2025/06/08 18:48:19 JST
Now, it is 2025/07/02 22:57:48 JST
xpdex for MXDRV
Announcement / 告知
xpdex ver.0.9.0 を公開します。
Overview / 概要
X680x0 の音源ドライバとして知られている MXDRV 用の PCM データファイル形式である PDX ファイルの中から、構成要素である PCM ファイルを抽出するための Python スクリプトです。 X680x0 以外での環境下でも、エミュレータに頼らずに曲データの開発ができることを目指していましたが、Emscripten とかで X680x0 オリジナルの MDX / PDX の作成環境が Web ブラウザ上で動くようになるなら、もうそれで構わないような気もしてきました。
名称は当初は pdxex (PDX EXtractor) でしたが、元祖 pdex、tpdex、bpdex 等があることを踏まえ、pdex の前に x を付けることにしました。
Specifications / 仕様
以下の仕様を目指して作られていますが、その通りになっていないところもあるかも知れません。予めご了承ください。
- EX-PDX フォーマットに対応しています(が、判定が常に正確とは限りません)
- 以下のような、ヘッダが通常と異なる PDX ファイルでも、可能な範囲で抽出を試みます
- ヘッダサイズが 768 バイトの倍数でない(208 バイトとか 1024 バイトとか)
- ノート番号の大きい PCM データが、ノート番号の小さい PCM データよりも前方に置かれている
- 中身の無いヘッダが数バンク分付加している 等
- エラーチェックは場所にも依りますが、甘かったり、していなかったりします
- あなたの大事なファイルやシステムが破壊されないとも限らないので、プログラムの実行に当たってはバックアップを取るなどして、事故のないようにご注意下さい
- 特に PDX ファイルでないファイルを指定するのは危険が伴うのでご遠慮ください(PDX ファイルかどうかの判定を厳密に行っていないため)
- バグやその他の理由で、期待通りの動作をしなかったり、他の `pdex` 系ソフトウェアと動作(結果)等が異なる場合があるかも知れません
- 上記以外の仕様はソースを読むとある程度分かるかも知れませんが、ソースがひどくて読みにくいのも仕様(の一部)です
- Python プログラミングの学習中に試行錯誤で作ったものなので、コードの品質はお察しください
- コードやドキュメントにはルールやお作法に則っていないところが少なからずあります
- 本プログラムは無保証です
Environment / 環境
- Python3 が動く環境が必要です(Python2 系は動作確認していません)
- 標準でインストールされるパッケージだけで動作すると思いますが、Python のバージョンによってはそうでないかも知れません
- 作者は python 3.9.16 on cygwin64 (Windows11) 上で動作確認をしています
- 必要に応じて、環境に合った shebang を追加するのも良いかも知れません
Download / ダウンロード
ChangeLog / 改変履歴
- Ver.0.9.0 (2025-06-08)
-
- GitHub に公開する最初のバージョン
- それ以前の履歴は GitHub 参照(汗;)
Acknowledgements / 謝辞
機能要件や仕様を考える際に tpdex や bpdex のドキュメントを参考にしました。作者の皆様に感謝いたします。
Contact me / 連絡先
バグ報告その他要望等は下記までどうぞ。ただし、必ず対応できるかどうかは分かりません(苦笑)。もちろん、ご自身でスクリプトを修正していただくのも宜しいかと思います。
Copyright (c) 2025 Hideaki `ArctanX' TANABE
<arctanx@hauN.org>