Latest build:
mid2smps 0.3 binary, source (Visual Basic 6), MIDI driver
SMPSPlay with configuration files for SMPS preview
Original post
Today I present you the opposite tool of smps2mid: mid2smps.
You can download the tool with some example files here.
Demo songs are: FF4 Boss Theme, The Final Countdown, Tales Of Phantasia: Boss Theme
Features:
- full support for Pan, PitchBend and Tempo changes
- support for volume changes via note velocity and Main Volume controller (no Expression-Controller)
- support for ymx instrument files
- per-channel looping (with Controller 111, value 0 is loop start, 1-127 is loop end)
- force E7 flag between notes (Portatemento Controller 65, Off <=63, On >=64)
- export to binary smps-file or directly into a ROM
How to use:
1. [optional] load a ROM (recommended for quick testing) and select the song you want to overwrite from the list
2. load YMX Instrument file (must only be done once)
3. set Tick/Qrtr and TempoDiv values, if wanted
4. click MID2SMPS
Notes:
- The tool will NOT ask you if you want to save the ROM. It will just silently overwrite the data.
- Instruments are assinged in order they are used.
- You <I>can</I> convert files without loading any instruments. It just won't attach any instrument data to the smps file.
- Currently the channel mapping is hardcoded. See table below:
-Drum mapping:
DAC Drums: 2x Bass Drum, 2x Snare Drum, Clap, 2x Cymbal, all Toms
Noise Drums: all Hi-Hats, 2xRide Cymbal, Ride Bell
- PSG instrument selection is done with Bank Select LSB. An (ignored) patch change message must follow the Bank Select message to confirm it.
- Modulation isn't yet implemented
- only Sonic 1 support (will care about the others later)
- The conversions are quite unoptimized. I'll write an optimized sometime in the future.
Thanks to:
- all the people who contributed to the Music Hacking Guide
- nineko for the tempo calcuation algorithm
- Oerg866 for the SMPS Player and info about the PSG envelopes (that helped me to make the example files)
- Rob Jinnai for notes on SMPS flags
- Tamkis for making a terrible FF4 Boss conversion that convinced me that I had to make a better one (that's why I wrote mid2smps)
The Music Hacking Guide has quite some misinformation that caused me trouble.
I took some notes and will correct these things.
Now listen to the demo files, try the tool and comment! (tool and demo files)
EDIT: Added notes about demo songs, volume change support and thanks to Tamkis
EDIT2: Updated the tool with instrument editor.
EDIT3: added link to mid2smps 0.3 bin+src+driver
EDIT4: Added SMPS preview package.
mid2smps 0.3 binary, source (Visual Basic 6), MIDI driver
SMPSPlay with configuration files for SMPS preview
Original post
Today I present you the opposite tool of smps2mid: mid2smps.
You can download the tool with some example files here.
Demo songs are: FF4 Boss Theme, The Final Countdown, Tales Of Phantasia: Boss Theme
Features:
- full support for Pan, PitchBend and Tempo changes
- support for volume changes via note velocity and Main Volume controller (no Expression-Controller)
- support for ymx instrument files
- per-channel looping (with Controller 111, value 0 is loop start, 1-127 is loop end)
- force E7 flag between notes (Portatemento Controller 65, Off <=63, On >=64)
- export to binary smps-file or directly into a ROM
How to use:
1. [optional] load a ROM (recommended for quick testing) and select the song you want to overwrite from the list
2. load YMX Instrument file (must only be done once)
3. set Tick/Qrtr and TempoDiv values, if wanted
4. click MID2SMPS
Notes:
- The tool will NOT ask you if you want to save the ROM. It will just silently overwrite the data.
- Instruments are assinged in order they are used.
- You <I>can</I> convert files without loading any instruments. It just won't attach any instrument data to the smps file.
- Currently the channel mapping is hardcoded. See table below:
MIDI SMPS Â 1-5 FM 1-5 (no 6th FM channel) 10 DAC and PSG Noise 11-13 PSG 1-3 (3rd channel used for noise) 14 PSG Noise (for additional controllers)
-Drum mapping:
DAC Drums: 2x Bass Drum, 2x Snare Drum, Clap, 2x Cymbal, all Toms
Noise Drums: all Hi-Hats, 2xRide Cymbal, Ride Bell
- PSG instrument selection is done with Bank Select LSB. An (ignored) patch change message must follow the Bank Select message to confirm it.
- Modulation isn't yet implemented
- only Sonic 1 support (will care about the others later)
- The conversions are quite unoptimized. I'll write an optimized sometime in the future.
Thanks to:
- all the people who contributed to the Music Hacking Guide
- nineko for the tempo calcuation algorithm
- Oerg866 for the SMPS Player and info about the PSG envelopes (that helped me to make the example files)
- Rob Jinnai for notes on SMPS flags
- Tamkis for making a terrible FF4 Boss conversion that convinced me that I had to make a better one (that's why I wrote mid2smps)
The Music Hacking Guide has quite some misinformation that caused me trouble.
I took some notes and will correct these things.
Now listen to the demo files, try the tool and comment! (tool and demo files)
EDIT: Added notes about demo songs, volume change support and thanks to Tamkis
EDIT2: Updated the tool with instrument editor.
EDIT3: added link to mid2smps 0.3 bin+src+driver
EDIT4: Added SMPS preview package.
This post has been edited by ValleyBell: 06 April 2015 - 06:19 AM


00
