-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support to convert mt32 to GS and GM #107
Comments
The bad news is that there is nothing in the MIDI file to distinguish that it is intended for MT32, looks like its one for the options (I would suggest using the convert options) |
Sounds like a plan. Make this general, not just for XMI. :) |
Sounds like a good idea. :) |
um, trying to get my head in the game, what am I meant to be doing here? |
in the xmi2mid, there is code to that converts midi destined for MT32 to GS or GM. So if you knew that your incoming midi file was MT32, it would do a best effort to convert it to something that matches either GS or GM so that it doesn't sound like crap when played back. This was important with XMI because most XMI sounds amazing with MT32 and crap when when playing back the GM version (games usually shipped with 2 or 3 versions). https://github.com/Mindwerks/wildmidi/blob/master/src/xmi2mid.c#L654 <-- starting point |
Sierra made at least 3 games for native MT-32 which added GM support through a translation. They used a Key shift, a Volume adjust and one of four different Velocity maps for each instrument when translating. Translating the programmable memory timbres of the MT-32 is a more interesting project when it comes to finding a general solution. This is what Sierra used for their mapping: The lists were generated with the following program: |
If you want to detect an MT-32 midi file, scan it for its unique SYSEX. |
Thanks @r-lind this will be helpful. Any chance anyone have a free mt-32 file I can use for testing? |
Perhaps here? http://www.midimusicadventures.com/queststudios/mt32-resource/utilities/ @chrisisonwildcode please ask if there is anything, it's old code. Given time I would write a general OPL/MT-32/FB-01/"Amiga" instrument translation framework based on figuring out the intention of the composer when it comes to instruments and map this. OPL would probably prove to be the most exciting to do. A lot of composers probably used AdLib Visual Composer with its sound banks: http://www.vgmpf.com/Wiki/index.php?title=AdLib_Visual_Composer The use of a key shift, volume adjustment and some simple velocity maps to translate sequencer data MT-32<->GM, apart from simple instrument mapping has proven to be acceptable in a production environment during the 1990s. This link may also prove interesting: https://nerdlypleasures.blogspot.se/2014/03/working-with-mt-32-yamaha-fb-01-midi.html |
so the instrument remap would be possible ... using a straight out mt-32 -> gm map. Trying to track down an extensive list of the sysex command set as some of the mt-32 midi files I've got my hands on have alot of sysex commands+data that I have no info on. |
Page 8 and forward: http://www.polynominal.com/roland-mt-32/roland-mt32-manual.pdf |
I once found what the undocumented SysEx the old Sierra games do, but can't remember. I think it resets the reverb. It's like programming a flat memory. |
hello, it would be great to be able to convert from MT32 midi to GM midi. I've tried the option, but the input file requires to be in XMI, and I don't know how to convert my MT32 mid into xmi, so I could make it play nicely with GM instruments only :) |
I've just found out that midiplex (https://github.com/stascorp/MIDIPLEX) can convert midi into xmi, I've tried this and could made the conversion from MT32 to GM with wildmidi! ./wildmidi -g 1 /tmp/midiMT32.xmi -x /tmp/midiGM.mid The instruments are not the same of course, but it can be of a great help for starting to remap a tune! |
As readable in the xmidi.c code:
and next
Now the question is, do we keep this to XMI or do we extend this out in general? If someone has a mt32 midi file, we could accept this input and according to their wishes, either leave it as is (horrible sounding) or convert to GM or GS which would sound better!
I vote for extracting this out as additional functionality, so that people could convert mt32 files to gs or gm. I like this approach since we allow conversion of other midi like formats to midi.
Is there a header for mt32 files? so that we can disingenuous between them? Or is this something blind that we can only expose the options for?
The text was updated successfully, but these errors were encountered: