- See also
wrote a Python 3 script to convert Deflemask Sega Genesis module into PMD MML source.
Usage: python3 dmf2pmd.py <input file> <output file>
Also, you still need to edit the resulting MML source to add more OPNA exclusive features and some missing supports. Don't be too lazy please :P
- Please make sure that your module's speed is in something common such as 03/03, 04/04, 06/06 since PMD is also tick-based and I aimed for perfect tick conversion. Nonstandard speed or swings will just make the converted source harder to read.
- Any volume or effect commands that happen in the middle of the note will restart the note. (I actually tried adding tie command (&) to these. Seems like PMD just doesn't want anything in the middle of the tie.)
The converter doesn't support these:
- SN7 Noise Channel.
- FM Channel 6 DAC samples. Go make separate ADPCM and rhythm channels by yourself.
- SSG-EG. OPN2 and OPNA have different behaviors and PMD doesn't support this command.
- Every tables in STD instrument. PMD only have parametric volume envelope and nothing else.
- Almost every portamento, volume slide, vibrato and tremolo commands. PMD's only portamento command requires a solid target note and length and PMD could only hold at most 2 software LFOs.
- Arpeggio (0xx)
- Position Jump (Bxx)
- Retrig (Cxx)
- Most of extended commands.
But still supports these:
- Extended CH3 mode.
- SSG envelopes by naming the instrument as PMD's equivalent commands such as E0,-1,3,3 or @4
- Tone Portamento (3xx, 5xx) but the target note will be played immediately without restarting.
- Pattern Break (Dxx)
- Fine Tune (E5xx)
- LFO, FB, TL, MULT and AR control commands
Professional Music Driver (PMD)