VOGONS


First post, by count23

User metadata
Rank Newbie
Rank
Newbie

Hi folks,

I'm poking around some old dos games like Star Trek 25th anniversary where the MIDIs can't be extracted properly from the archives for various reasons and i was hoping someone might point me to the right workflow for extracting the MT-32 output and saving it either as an XMI or midi track (to go into something else to update the instruments with a newer soundfont) or at least just extracting them with the sysex intact.

Right now my workflow has been to basically use the dosbox midi capture function ctrlaltf8 and save those as midi's, i can't seem to get any consistent information if those save the sysex if i start the capture fast enough or if it's purely just GM and no mt-32 elements in the capture. Playback on MUNt seems ot be hit and miss, if i pin the synth using a track i captured before MT32 loaded it seems to play all the audio fine, if i hit the individual captures of tracks it seems to be less relaible, so to me that says that the sysex is loaded once at the start of the gameplay and not when each individual track is loaded or something, but MIDI is not really my strong suit.

Any help would be appreciated in guidance on this or workflow. I want the MIDIs/XMIs rather than a raw wav export if possible.

Reply 1 of 9, by Spikey

User metadata
Rank Oldbie
Rank
Oldbie

Recording from DOSBox is your best bet, otherwise you'll need to extract the files. There is no other way to do what you're wanting. Using DOSBox to record the SysEx is a requirement, you will need to send the SysEx data before you edit things outside of the game, so you can send the SysEx to MUNT/hardware before you edit the MT-32 data. Once it is edited, you can then convert it to General MIDI. That is a whole other topic of complexity however and will not be covered here. If files use basic MT-32 instruments I may be able to convert them for you.

However, it appears this game is General MIDI compatible, so it would make more sense to use that driver and record directly as GM, and work from there, not worry about the MT-32 side of things.

Reply 2 of 9, by ott

User metadata
Rank Newbie
Rank
Newbie

I'm not a MIDI expert, but I suppose you can connect a virtual MIDI cable (loopMIDI) to the DOSBox and check the incoming MIDI/Sysex events in detail, for example in MIDI-OX utility. You will also need an external synthesizer (MT32 emulator?) to play incoming MIDI notes.
Re: How to get Virtualmidi Synth worked in Dosbox under Win10

Reply 3 of 9, by count23

User metadata
Rank Newbie
Rank
Newbie

@ott that's exactly what i've done, i have looptools sending to MUNT.

@spikey: my question about the sysex data is that generated per track or do i have to start a rip right at the time i load the game up? becuase I'm worreid if it's right at the start of the game, if i'm jumping to particular save files or whatnot to load the data, i'm getting the notes but not the sysex. But DosBOX also definitely captures the system using the midi capture, right?

Reply 4 of 9, by Spikey

User metadata
Rank Oldbie
Rank
Oldbie

SysEx data is *generally* mostly present at the start of the game, where the custom instruments and reverb mappings are sent. However, some per track reverb changes may be present as well - but this is not relevant if you are converting to non-MT-32 formats.

However, as mentioned, if your goal is anything but producing an MT-32 recording of the soundtrack, I would use the General MIDI driver instead to capture, which will eliminate all your issues relating to a lack of understanding of the MT-32, SysEx, recording it to MIDI, converting it to GM, and then making use of the resultant MIDI and so on, which is essentially years of information required that simply cannot be acquired in a weekend or even a month.

Reply 5 of 9, by count23

User metadata
Rank Newbie
Rank
Newbie

but general midi is generally lower quality, no? I've seen in the capture i threw into sekaiju that the MT-32 has more tracks than the General midi for the few games i've been experimenting with. I'm fine with the idea of recording hte "entire session" and just quickly skipping to save points where i know the music will play, the point was to trip dead air around it.

So in theory there is a risk though that the trakcs may change the sysex compared to the start of game and i really just never know?

and dosbox's midi capture doesnt' actually keep a record of the sysex if in mt32 output mode and apply it to any capture, i have to capture at the start of teh session?

I'll probably end up going to GM eventually, but mt32's one of those, "i have to know" type things, if htat makes sense.

Reply 6 of 9, by Spikey

User metadata
Rank Oldbie
Rank
Oldbie

General MIDI may or may not be lower quality, but it is not inherently so. The successor to the Roland MT-32 was the Roland SC-55, the first major GM device, and in this case, I'm not familiar whether the soundtrack was composed for one or the other (but it will have been one or the other).

However, as mentioned a few times, you will get WORSE results by trying to record MT-32 data, not really knowing what you're doing, and then also not knowing how to convert it to GM at all. The GM data itself will be much 'higher quality' and easy to rerecord, remix etc etc.

In case you're not familiar, the MT-32's data is NOT inherently General MIDI compatible. So even if you get all this lined up and recorded (which will be extremely tough to do correctly and to have any idea of whether you have a correct track by track recording or not), if your goal is to convert it to General MIDI or play the data back with more modern sources/soundfonts/whatever, the MT-32 data will be somewhere between unfriendly and completely unfriendly for your purposes. Panning data is opposite. Instrument data, velocities, controllers may all be tailored for the MT-32 and play back weirdly or wrongly on General MIDI sources, and to explain how to convert it correctly would literally take months. It took me years of practice and experimentation to learn this all sufficiently, some things I am still learning 20+ years on.

TL;DR - therefore, for your intended purpose from the OP of rerecording the music with new soundfonts - you should NOT be using MT-32 data, but the GM data instead.

Last edited by Spikey on 2025-09-11, 11:21. Edited 1 time in total.

Reply 7 of 9, by Spikey

User metadata
Rank Oldbie
Rank
Oldbie

Other bits:

I've seen in the capture i threw into sekaiju that the MT-32 has more tracks than the General midi for the few games i've been experimenting with.

Sometimes, MT-32 'instruments' can be sound effects or complex sounds that General MIDI cannot emulate, therefore the MIDI track gets deleted. I'm not familiar with this game. I would imagine it is not common but does happen. In such a case, the MT-32 track can be added back to the GM track, if you feel it can be converted to a GM instrument, but was not done for whatever reason by the original sound team.

I'm fine with the idea of recording hte "entire session" and just quickly skipping to save points where i know the music will play, the point was to trip dead air around it.

I would encourage you to start and stop recording for each individual music track, because it's much easier to edit MIDI data that way. That is to say, removing extra bits at the start and then ending the file the way you want, either with a finish or with a fade out. The complexity of working with MIDI exponentially increases with the length of the file. You will not want to have an hour's capture where you have to fiddle in and out of insanely detailed MIDI channels of note and controler events, split them up, and so on.

So in theory there is a risk though that the trakcs may change the sysex compared to the start of game and i really just never know?

With MT-32 output, yes, not with GM. Typically this does not happen for instruments themselves, and if that did happen, you would know because the track would sound weird. Reverb is much harder to tell after the fact.

and dosbox's midi capture doesnt' actually keep a record of the sysex if in mt32 output mode and apply it to any capture, i have to capture at the start of teh session?

SysEx is a MIDI event, so yes, DOSBox captures it.. but it will not 'apply' it, it will just have the raw data present at the start of your recording. What you should do is record the SysEx once and remove any song data from it, then play it back to the MT-32/MUNT before beginning doing any editing work in a session. This will ensure you have initialised the MT-32 with the SysEx correctly. The initial SysEx when a game opens is the most important dataset that the MT-32 is loaded with.

I'll probably end up going to GM eventually, but mt32's one of those, "i have to know" type things, if htat makes sense.

See my previous post. This is a many-years-long thing to understand, not a quick nerdy deep dive. There's nothing wrong with wanting to learn and I think it's cool you are trying, but you will need a much larger level of understanding before you are able to do even MT-32 MIDI the way you want, let alone converting that data to something else. If your true aim is rerecording old game music with new soundfonts, then the MT-32 data should be avoided at this time.

Reply 8 of 9, by count23

User metadata
Rank Newbie
Rank
Newbie

right, so my original approach was capture tracks individually, then i found out about the sysex and it was to try and figure out how to get that data out of each MT-32 midi.

My workflow idea was to simply record, trim the crap (and preserve hte sysex) then use roland's MT32 to General Midi tool to conver them across and ensuring the extra track data remained intact. When playing 25th side by side it seemed like there was certrainly more instument tracks in the Mt32 ersion i sampled than the GM one, which is why i went down this rabbithole. I certainly didnt want to record an hour long and cut it into pieces in sekaiju or anything, but it was the sysex bit that got me concerned i was missing data.

I just see there's a lot more sound in the MT32 versions i had simply presumed that it was just the same basic MSS style sequencing but with some proprietary instrument data in the MT32 hardware that GM didn't have, so GM would play them but just apply hte wrong instruments, sounds like there's a lot more to it than that.

Reply 9 of 9, by Spikey

User metadata
Rank Oldbie
Rank
Oldbie

Yes, there is a lot more to it than that.

then use roland's MT32 to General Midi tool to conver them across and ensuring the extra track data remained intact

This will likely not work the way you think it will. And even if it did, the results with the GM output will likely be better.

When playing 25th side by side it seemed like there was certrainly more instument tracks in the Mt32 ersion i sampled than the GM one, which is why i went down this rabbithole.

This is a binary situation - either the MT-32 has more channels/instruments for some pieces, or it doesn't. I would record both and find out this too, if I was you. It could be that some of the MT-32 instruments are stereo and in GM they are mono, which is an example of a reason why MT-32 and GM do not simply interchange (but there are many others).
Another good test would be recording the MT-32 and GM versions of a track to compare them. It is possible, but unlikely, that they will share characteristics and just have different instrumentation. Chances are they will have other differences.

Some examples of differences between MT-32 and GM:
- Panning - MT-32 natively pans opposite
- Velocity - the MT-32 generally runs on lower velocities (note intensities) than GM - meaning if played on GM, the sound will be weak in comparison without further tweaking
- Controllers - some controllers have different effects, or no effect, on the MT-32 than in GM
- Instruments - since the MT-32 can have custom instruments written for it, many will not have a satisfactory counterpart in GM, particularly sound effects and complex synth sounds, or anything with a filter
- Drumkits - the basic drumkits between the MT-32 and GM are largely compatible but not entirely
- Reverb - the MT-32 can have custom reverb amounts, levels or types for each track, as can GM. However for the MT-32 this is done via SysEx, in GM it is done via controller (level) and different SysEx to the MT-32 (type, amount)