As mentioned in the chatbox, the process I do is convert the hmp to mid with modded hmi2mid.bas. Then I use a batch file using programs mf2txp/t2mfxp to remove controllers 108/109 and modify controllers 110/111 to v=0.
The format from lemmings chronicles is strange and the only other game like it is Silverload so the instrument designators are not processed correctly currently.
Then to check the conversion, I use the official mid2hmp.exe that was released to the Descent community and in about 85% cases I get back a bit identical copy of the original hmp. The wildcard handling of mid2hmp is defective so a batch file should be used instead. And the other hmp that aren't identical to the original are usually a couple bytes different.
The newer HMP used in games like Slipstream 5000 have more controllers but without the corresponding mid2hmp I didn't investigate those controllers. The game Constructor included the last HMI format mid2hmi.exe so I plan to play with that in the future.
The instrument designators can't be used exclusively to determine which tracks are for which audio devices however. Because in many cases audio files that are meant for FM cards such as Descent HMQ, or SSF2T files ending in _F, often times have all their tracks labelled with all designators.
Tools/references used
MIDI2HMPSOS40.zip - HMI specs for newest format but also pertains to older formatMF2T and T2MFSED for WindowsHere is what I found on the instrument designators on the Descent HMP format
31 tracks (excluding timing track) * 20 bytes each = total of 620 bytes, starting at offset 0x90.
Each track is 20 bytes separated into 5 longs.
The first long of each track is always 00000000. The next 4 longs could be from the following:
0xA000 = General MIDI
0xA002 = FM OPL2/OPL3
0xA003 = Callback
0xA004 = Roland MT-32
0xA005 = Digital MIDI samples
0xA006 = Internal Speaker
0xA007 = Software Wavetable
0xA00A = Ultrasound
The abbreviations of the tracks are:
General MIDI = G
FM OPL2/OPL3 = F
Callback = C
Roland MT-32 = M
Digital MIDI = D
Internal Speaker = I
Software Wavetable = W
Ultrasound = U
I'm unable to attach the .bas I modified from HMI2MID.bas because the message board will not accept it.