dmf2pmd.py
BotB Academy Project Dev
 
 
94501
Level 23 Chipist
post #94501 :: 2018.01.17 5:35am :: edit 2018.01.17 5:39am
  
  irrlicht project, garvalf, Producer-san, Pegmode, Apsarah, VinCMG, funute, Jangler, b00daw, pedipanol, NerdMcBoon and RazerBlue6 liēkd this
Now pc-x9801 category could have more entries!

Recently, I wrote a Python 3 script to convert Deflemask Sega Genesis module into PMD MML source. You can get it here.


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

Caution:
  • 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

I'm so sorry, MovieMovies1. I basically wrote this because I hate setting up OpenMPT with bunch of VOPM and manually transcribe the notes...
 
 
94503
Level 23 Mixist
post #94503 :: 2018.01.17 5:41am
Ohh wow! Thank you very much!
 
 
94504
Level 18 Chipist
post #94504 :: 2018.01.17 5:43am
  
  pedipanol liēkd this
Make pc-x9801 great again

Also yes I'm still learning MML too for that, but this is very much appreciated too!
 
 
94506
Level 23 Chipist
post #94506 :: 2018.01.17 8:26am
whoawhoawhoawhoa
 
 
94518
Level 15 Chipist
post #94518 :: 2018.01.17 12:05pm
  
  Pegmode and b00daw liēkd this
  
  m9m and RazerBlue6 hæitd this
now finish dmf2devsound
 
 
94522
Level 26 Renderist
post #94522 :: 2018.01.17 12:43pm
  
  VinCMG, RazerBlue6 and Sinc-X liēkd this
  
  DevEd hæitd this
i liked what you said, but i don't like that you scratched it out for some reason.
 
 
94532
Level 16 Mixist
post #94532 :: 2018.01.17 7:17pm
  
  Apsarah and raphaelgoulart liēkd this
If deflemask was open source, this could have been a well integrated mod :(
 
 
94533
Level 11 Chipist
post #94533 :: 2018.01.17 7:18pm :: edit 2018.01.17 7:19pm
Only for Python 3.

No Python 2 available but not running on Windows XP and lot of people worked well.

I recommend to use this tool. Except Python 3 for Win7 to win10 :(

MML is hard now :(

There is no Python 2 conversion
 
 
94534
Level 23 Chipist
post #94534 :: 2018.01.17 7:19pm
  
  Pegmode and DevEd liēkd this
dmf2devsound is basically finished. But still need some tweaks and I don't think I could instruct people to compile a Gameboy rom with correct settings.
 
 
94536
Level 11 Chipist
post #94536 :: 2018.01.17 7:56pm
DMF2PMD2S982VGM

Idk how it worked.

There is not way to convert YM2612 to YM2203 with VGMTools.
 
 
94920
Level 12 Chipist
post #94920 :: 2018.01.29 8:44pm :: edit 2018.01.29 8:58pm
Ah damn and I was working on my own dmf2devsound.
I guarantee yours is better.
 
 
95056
Level 26 Renderist
post #95056 :: 2018.02.02 11:02pm
i was thinking the other day while using the imaging application GIMP. GIMP has integrated python plugin support. If trackers were to support this, it would be very nice.
 
 
95636
Level 5 Playa
post #95636 :: 2018.02.08 4:32pm
If they did, what's something you might do with it?
 
 
95638
Level 26 Renderist
post #95638 :: 2018.02.08 5:45pm
  
  Apsarah, Pegmode and petet liēkd this
guess it would depend on the tracker and its main purpose. the python exportation potentials could open up to ideas not just of my own but community-wide.

in this particular, topic-appropriate circumstance, dmf2pmd.py could be integrated into the tracker if the python path was supplied and the python script was detected as a plugin at the startup of the tracker. could be some signature information and pseudo-API stuff involved.
 
 
95694
Level 16 Chipist
post #95694 :: 2018.02.10 9:01pm
Python plugins for trackers? Finally filesize padding for SMS ROM export in Deflemask eh? XD
 
 

LOGIN or REGISTER to add your own comments!