About •
Features •
Download •
Credits •
Related •
License
[ 日本語版はこちら ]
UltraX is a compiler that creates MDX performance files for the Sharp X680x0 music driver 'MXDRV2' made with Python3.
UltraX is developed with object-oriented programming (OOP) and modularity in mind. UltraX also includes its own small library for MDX creation so that future use and creation of other compilers are made easier.
UltraX is split up into the following scripts:
UltraX.py
: the main compiler to generate .MDX performance files.UltraX_Tool.py
: a toolbox featuring
Globally, the following features are supported:
- Native Python compiling to .MDX performance files
- Native Python converting PCM to OKI/DIALOGIC ADPCM
- Supports all commands of the MXDRV v2.06+16/02EX specification
- Sample support for:
- Single channel ADPCM mode
- EX-PCM mode (PCM-4, PCM-8, Rydeen, Mercury-Unit, etc.)
- MML text file compiling
- Macros and pattern macros
- PPMCK styled envelope macros
- Extended compile time macros and commands
- DefleMask .dmf file (YM2151+SPCM mode) compiling
- YM2151 + ADPCM support
- Support for almost every tracker command
- Automatic SPCM --> OKI ADPCM --> PDX conversion
UltraX's core compiling system and toolset ("pymdx") is written in a modular manner so that everybody could write their own compiler specialised in whatever way is desired.
pymdx can create and export the following:
- MDX object
- Header object
- Tone definition object
- Track data (MDX commands), individually per channel
- OKI ADPCM sample (4 bit)
- PDX object
See the documentation for an indepth explanation of all functions included in pymdx.
UltraX relies on Python's standard library (3.x), libPyFMT.
-
Python standard library:
ntpath, os, struct, sys, wave
-
libPyFMT※:
opmn
※ "libPyFMT" is a library for FM patch creation/manipulation, it will be added later.
The following list presents the current ambitions of the project and if they are reached yet:
- Provide a MXDRV2 compiler on a modern operating system
- Provide additional toolset for MXDRV2
- Provide a way to convert DefleMask .dmf files to .MDX (+ .PDX)
See CHANGELOG.md.
Contributing to this project to improve it is always welcome. I highly recommend to submit pull requests instead of maintaining your own fork.
See CONTRIBUTING.md for details on the process for submitting pull requests.
I would like to thank the following people for making UltraX possible:
- YURAYSAN, for the MXDRV2 file format documentation.
- Tetsuya Isaki, for the fast OKI/DIALOGIC ADPCM encoding implementation.
- ValleyBell, the MAME team and David Lindecrantz (Optiroc), for the fast OKI/DIALOGIC ADPCM decoding implementation.
- Vampirefrog, for additional documentation.
- milk., K.MAEKAWA, Missy.M and Yatsube, for making MXDRV. :)
All included scripts, modules, etc. are licensed under the LGPL v3 license, unless stated otherwise in sourcecode files.
See LICENSE.md or Opensource.org – LGPL3.