VOGONS


First post, by thorr

User metadata
Rank Newbie
Rank
Newbie

Hello, I am anxiously waiting to receive my Roland SC-55 mkII delivery in the next day or so, and I was wondering...

Is there a way to create MIDI files that can send messages (Sysex or whatever) to the Sound Canvas and tell it what instrument to play instead of the default for that instrument number? My idea is to write custom mappings per game for Roland MT-32 games, and possibly change the instruments used for General Midi games as well choosing a better piano, guitar or whatever. This way, I could make a great sounding Space Quest III mapping for example. I know I can use Munt for MT-32 games, but I want to experiment with making even better sounding music with the instruments the Sound Canvas has to offer. This is sort of like Midi Mapper in the old Windows days. Also, mapping things like sound effects would be great for games like Wing Commander.

We could even work on this together and share our results here potentially.

Thanks,
Mike

Reply 1 of 26, by thorr

User metadata
Rank Newbie
Rank
Newbie

This is a very interesting and somewhat helpful article: https://www.sweetwater.com/sweetcare/articles … d-sound-canvas/

In the section "F. Splits and Layers" it looks like it is possible to reassign instruments to a part/channel, and it also has the sections "G. Drum Instrument Editing" and "II. System Exclusive" where it talks about combining two drum kits using two different channels, or using one drum kit and another channel for the SFX kit.

Here is another helpful article: http://www.2writers.com/eddie/tutsysex.htm

Now the question is, what (free) software can I use to try this and create MIDI files with it? Also, I am not sure if after something is reassigned to a channel, if subsequently playing the MIDI music from the game will reset it back to the normal instrument. With MT-32 games, at least it won't be doing a GS reset. If anyone knows how to do what I am asking for and can provide examples with step by step instructions on how to do it, that would be greatly appreciated.

Thanks,
Mike

Reply 2 of 26, by thorr

User metadata
Rank Newbie
Rank
Newbie

Talking to myself so far, but did more research and found that Reaper with ReaControlMIDI may be a good way to work with SysEx commands. I don't know how easy it is to create MIDI files with SysEx commands in them, but I will try after I get my Sound Canvas.

Reply 3 of 26, by jesolo

User metadata
Rank l33t
Rank
l33t

I'm not an expert with these but, the Sound Canvas has no programmable memory.
Any MT-32 based games that made use of custom sound patches (like Space Quest 3) will not work on the Roland Sound Canvas, since any of those sysex messages will be ignored by the Roland Sound Canvas.
Refer: https://en.m.wikipedia.org/wiki/Roland_SC-55 and https://en.m.wikipedia.org/wiki/Roland_MT-32 (under "Emulation").
Also take note that some of the MT-32 based games required a real mode MPU-401 MIDI interface (which can largely be emulated under DOS with SoftMPU).

Reply 4 of 26, by yawetaG

User metadata
Rank Oldbie
Rank
Oldbie
jesolo wrote:

I'm not an expert with these but, the Sound Canvas has no programmable memory.

Actually, if you leave the battery in place, it is possible to edit patches and save the changes. Likewise, it is possible to change the channel on which a particular patch plays (etc.; it's all also included in the SoundCanvas manual). However, it is impossible to create new patches from scratch (this applies to a lot of prosumer-level romplers).

As for creating and sending sysex to synths, most decent sequencer software can do that (Reaper is free). One small issue to keep in mind is that some older synths cannot deal with the faster sysex transmission rates (that is, the time between commands) of USB MIDI, so if you get a lot of MIDI receiving errors, try to insert some pauses between commands (can be done in the sequencer).

Any MT-32 based games that made use of custom sound patches (like Space Quest 3) will not work on the Roland Sound Canvas, since any of those sysex messages will be ignored by the Roland Sound Canvas.
Refer: https://en.m.wikipedia.org/wiki/Roland_SC-55 and https://en.m.wikipedia.org/wiki/Roland_MT-32 (under "Emulation").
Also take note that some of the MT-32 based games required a real mode MPU-401 MIDI interface (which can largely be emulated under DOS with SoftMPU).

This is basically correct and applies to most synths, unless they are part of a family of synths that are based on the same hardware (or were made to be compatible with older patches, e.g. some of Yamaha's later FM synths can load patches for the classic DX7 synth).

OTOH, it should be possible to create a program that receives sysex for one type of synth, and then remaps that to the sysex for another type of synth so the second synth plays similar patches to whatever the original sysex would have played on the corresponding original synth. Obviously you'd need to know which patches on the first synth match (in sound) which patches on the second one. I believe this is what thorr wants to do. I'm not sure you can do that with a sequencer...

Reply 5 of 26, by jesolo

User metadata
Rank l33t
Rank
l33t
yawetaG wrote:

OTOH, it should be possible to create a program that receives sysex for one type of synth, and then remaps that to the sysex for another type of synth so the second synth plays similar patches to whatever the original sysex would have played on the corresponding original synth. Obviously you'd need to know which patches on the first synth match (in sound) which patches on the second one. I believe this is what thorr wants to do. I'm not sure you can do that with a sequencer...

My understanding is that in order for such a program to work you'll have to look at all games that made use of custom sound patches on the MT-32 to ensure you map out each one correctly.
One also has to bear in mind the differences between the MT-32 and the Roland Sound Canvas, how they sound and how they operate.
Also, practically all MT-32 based games ran under DOS. If the intended program (software) is going to be Windows based, then you can just a well go the DosBox or ScummVM route which emulates your DOS environment and the relevant hardware (with the appropriate ROM images).

Please note that I'm not trying to discourage what the OP is intending but, merely just highlighting what I perceive to be potential obstacles.

I'm not an expert on this and what I've mentioned is purely based on what I've read and experienced myself over the years - I stand to be corrected.

Reply 6 of 26, by thorr

User metadata
Rank Newbie
Rank
Newbie

Thanks for the help. To be specific, I guess what I am trying to say/do is simply this... Program the Sound Canvas so that if it sees instrument X, play instrument Y. Rather than put it into MT-32 mode which is one specific mapping, put it into my own mode that I custom write to it with different specific instrument mappings. For example...

Instrument Received / Instrument Played
0 / 50
1 / 23
2 / 71
3 / 60

etc... and of course the Instrument Played can be from different variations, with other adjustments to them such as Modulation, etc.

Thanks again,
Mike

Reply 7 of 26, by CrossBow777

User metadata
Rank Member
Rank
Member

I am not expert either, but it should in theory be possible what the OP is wanting to do.. I state this because I do have a roland provided .mid file that will essentially remap an SC-55 or other sound canvas into an MT-32 like emulated mode. I've used it with my MT-200 a few times before I finally got an actual MT-32. Basically I created a batch file that would load the mt32emu.mid file to the MT-200 (I also used to use this file with my SCB-55 back in the day). Then load the game using the MT-32 as the sound option. It works and sounds really good for games that used the standard instrument bank on the MT-32. Naturally it couldn't do anything with games that required custom patches. But if Roland was able to create a .mid file that remapped the instruments on the SC series devices even if they didn't include a built in MT-32 emulation mode, then I'm sure something similar must be possible to change those instruments further.

Doing that, you could in theory create custom .MID files for each game you wanted to customize them for and have those /mid files be played before running the game changing the instrument mapping in the process.

g883j7-2.png
Midi Modules: MT-32 (OLD), MT-200, MT-300, MT-90S, MT-90U, SD-20

Reply 8 of 26, by yawetaG

User metadata
Rank Oldbie
Rank
Oldbie

^ & ^^:

Sending a MIDI file that sets the SC-55 to MT-32 mode won't make the SC-55 understand MT-32-specific MIDI data - see here.
On the SC-55 you also can't create your own patches from scratch (to create a custom mapping) because the component waves for each instrument aren't accessible and the SC-55 isn't fully programmable to the extend that more professional MIDI modules are.

jesolo wrote:
My understanding is that in order for such a program to work you'll have to look at all games that made use of custom sound patc […]
Show full quote
yawetaG wrote:

OTOH, it should be possible to create a program that receives sysex for one type of synth, and then remaps that to the sysex for another type of synth so the second synth plays similar patches to whatever the original sysex would have played on the corresponding original synth. Obviously you'd need to know which patches on the first synth match (in sound) which patches on the second one. I believe this is what thorr wants to do. I'm not sure you can do that with a sequencer...

My understanding is that in order for such a program to work you'll have to look at all games that made use of custom sound patches on the MT-32 to ensure you map out each one correctly.
One also has to bear in mind the differences between the MT-32 and the Roland Sound Canvas, how they sound and how they operate.
Also, practically all MT-32 based games ran under DOS. If the intended program (software) is going to be Windows based, then you can just a well go the DosBox or ScummVM route which emulates your DOS environment and the relevant hardware (with the appropriate ROM images).

I think the best would be to make it an external box that goes between the PC and the Sound Canvas, and that uses a Raspberry Pi as the CPU or something.

But yes, it would require a very good understanding of how both the MT-32 and the Sound Canvas work to be able to get an accurate translation of the MIDI data. The investment of time means it's probably cheaper to just buy a MT-32...

Reply 9 of 26, by jesolo

User metadata
Rank l33t
Rank
l33t
yawetaG wrote:

I think the best would be to make it an external box that goes between the PC and the Sound Canvas, and that uses a Raspberry Pi as the CPU or something.

But yes, it would require a very good understanding of how both the MT-32 and the Sound Canvas work to be able to get an accurate translation of the MIDI data. The investment of time means it's probably cheaper to just buy a MT-32...

Or, just use MUNT 😀

Reply 10 of 26, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
CrossBow777 wrote:

I am not expert either, but it should in theory be possible what the OP is wanting to do.. I state this because I do have a roland provided .mid file that will essentially remap an SC-55 or other sound canvas into an MT-32 like emulated mode... But if Roland was able to create a .mid file that remapped the instruments on the SC series devices even if they didn't include a built in MT-32 emulation mode, then I'm sure something similar must be possible to change those instruments further.

Doing that, you could in theory create custom .MID files for each game you wanted to customize them for and have those /mid files be played before running the game changing the instrument mapping in the process.

What the OP asked is not possible with SysEx messages/Midi commands in mid files. It's only possible with real time remapping.
The Roland provided mid file only switches melodic channels to MT-32/CM32-64 compatibility banks (Bank 127 is the MT-32/LA Bank and Bank 126 is the CM-64 PCM Bank) and also sets drum channel 10 to MT-32/CM32-64 compatible Drum set (Program 127). This requires the unit to already support MT-32 emulation banks/mode otherwise the mid file does not work.
Since MT-32 games/midi files do not send GM/GS reset SysEx messages that would reset this setting, and SC-55 does not react to MT-32 reset messages sent by some MT-32 games/midi files, the previously selected Banks will be active when the Program Change messages arrive and everything should just work (MT-32 standard knows only 1 Drum set so MT-32/CM32-64 games/files do not send Program Change messages to Drum channel so Program 127 on channel 10 is also preserved) .
But these compatibility banks are fixed and you cannot create your own mappings/banks even with SysEx messages.

Moreover it's not enough to remap the instruments to be the MT-32 compatible ones since there are other subtle differences between MT-32 and GM/GS standards. Namely the default Pitch bend ranges are also different. So the Roland mid file also sets Pitch bend range to MT-32 default 12 semitones (instead of GM/GS default 2).

I think the easiest way to do what OP wants under Windows is to use emulators such as DOSBox/SCUMM VM + a software midi cable such as LoopMidi/Midi Yoke + Midi-OX.
In Midi-OX ->Options -> Data Mapping -> Translation Map dialog you can remap incoming Program Change messages.
Remember to do separate logic for channel 10 Drum channel (always remap all PC messages to PC 127) than to the MT-32 relevant melodic channels 2-9.

To summarize it: In order to do manual MT-32 to SC-55 mappings you have to:
1. Set Pitch bend range to 12 on all MT-32 relevant channels. This can be done with the following SysEx messages either embedded in a midi file or in a separate syx file:

F0 41 10 42 12 40 20 10 4C 44 F7
F0 41 10 42 12 40 21 10 4C 43 F7
F0 41 10 42 12 40 22 10 4C 42 F7
F0 41 10 42 12 40 23 10 4C 41 F7
F0 41 10 42 12 40 24 10 4C 40 F7
F0 41 10 42 12 40 25 10 4C 3F F7
F0 41 10 42 12 40 26 10 4C 3E F7
F0 41 10 42 12 40 27 10 4C 3D F7
F0 41 10 42 12 40 28 10 4C 3C F7
F0 41 10 42 12 40 29 10 4C 3B F7

2. Install e.g. Loopmidi and create LoopMidi1 virtual port.
3. Set Loopmidi1 port as Midi out port e.g. in DOSBox.
4. Set LoopMidi1 as active Midi In port in MIDI-OX.
5. Set the Midi Out port where your SC-55 is attached to as active Midi Out port in MIDI-OX.
6. Set your desired Program Change remapping in Translation Map dialog of MIDI-OX (the same for channels 2-9 and a different one for channel 10) and save the particular mappings for your different games.

Ps: But of course as others said using Munt is a much more reasonable solution.
I'm pretty sure you cannot get a better sound on SC-55 with a custom mapping than the default MT-32 compatible one, not to mention Munt.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 11 of 26, by CrossBow777

User metadata
Rank Member
Rank
Member

As I said I'm not expert on the specifics of what the OP was asking. But then that does seem to mean that the MT-200 does apparently have an MT-32 mode hidden on it then if I'm reading this correctly? It isn't an option listed through any normal buttons or combination of buttons that I've ever seen listed in the manuals. I do know the MT-200 contains the CM32 drum bank that my SCB-55 lacked.

But yes as I understood it, the roland .mid file was basically just remapping the instruments to the MT-32 standard set. I know that Monkey Island 1 in Roland mode sounds close to the original MT-32 in this mode on my MT-200 and I also know that if I don't initial the GSreset.mid afterwards that the next game I play will sound all messed up when using GM/GS modes. So I was under the assumption that the instrument mapping was getting changed somehow?

I've also noticed that certain .mid files when played through the MT-200 will sound great and then another sound following it won't. But if I do a manual reset on the MT-200 then the next song sounds correct. That again leads me to believe that the MT-200 can retain some changes in the instruments or have them mapped to other instruments and keep those settings until you reset the module. The mid file for Big Earl Bump sequenced from the original Genesis game Toejam And Earl is an excellent example of this. If I play most other midi files, but especially GS specific files and then play Big Earl Bump, the song is off big time. Reset the module and play it again and all is good.

Just figured that most properly made mod files initiate some sort of reset command before making the changes they do on the module. So if it is possible for that to happen with standard midi files, then I would think it would be possible to remap the instruments in other ways as well?

g883j7-2.png
Midi Modules: MT-32 (OLD), MT-200, MT-300, MT-90S, MT-90U, SD-20

Reply 12 of 26, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
CrossBow777 wrote:

As I said I'm not expert on the specifics of what the OP was asking. But then that does seem to mean that the MT-200 does apparently have an MT-32 mode hidden on it then if I'm reading this correctly? It isn't an option listed through any normal buttons or combination of buttons that I've ever seen listed in the manuals. I do know the MT-200 contains the CM32 drum bank that my SCB-55 lacked.

Missing buttons for a map does not mean the map does not exist. E.g. Roland SC-D70 has complete SC-55/88/88pro/8820 maps but you have no buttons/controls to select them. The only way to set these modes is by sending midi messages.
Need help on SYSEX software..... or whatever for Roland SC-D70

CrossBow777 wrote:

But yes as I understood it, the roland .mid file was basically just remapping the instruments to the MT-32 standard set. I know that Monkey Island 1 in Roland mode sounds close to the original MT-32 in this mode on my MT-200 and I also know that if I don't initial the GSreset.mid afterwards that the next game I play will sound all messed up when using GM/GS modes. So I was under the assumption that the instrument mapping was getting changed somehow?

Yes, the instrument mapping is changed exactly the way I described above. So after you have played the MT-32 compatible Roland mid file the MT-32 instrument map is active. It's true until you reset the synth by either sending a GM/GS reset to it manually or such a midi file is played that contains a GM/GS reset.
So to make things clear: you can set special instrument mapping on your Roland gear that is already included in your synth (such as MT-32 mapping). But you cannot define your own mapping!

CrossBow777 wrote:

I've also noticed that certain .mid files when played through the MT-200 will sound great and then another sound following it won't. But if I do a manual reset on the MT-200 then the next song sounds correct. That again leads me to believe that the MT-200 can retain some changes in the instruments or have them mapped to other instruments and keep those settings until you reset the module. The mid file for Big Earl Bump sequenced from the original Genesis game Toejam And Earl is an excellent example of this. If I play most other midi files, but especially GS specific files and then play Big Earl Bump, the song is off big time. Reset the module and play it again and all is good.

Yes, that is exactly the situation. The synth does not know when a midi file ends and when another one starts. It has only one state defined by the midi messages sent to it. If midi file/game sends e.g. Program Change 30 to Channel 1 after a GM/GS reset then a Guitar is set as active instrument, and Channel 1 remains a Guitar channel even when the midi file/game ends. If you start a new midi file that does not send a reset and does not send an explicit Program Change to Channel 1 but simply starts by sending notes, the channel will play as a Guitar. It will be different when you start this midi file after a reset since then Channel 1 will play as a Piano ( the default after a reset). Notice that this phenomenon has nothing to do with the ability of creating custom instrument mapping!
Also realize that not only instruments are preserved between 2 played midi files. If a midi file does not contain a reset or your midi player does not send a reset between midi files there is a high chance that the midi file will play differently depending on what file have been played before it. E.g. cut notes, wrong pitch, wrong reverb, etc. can occur just to name a few problems (because all of these can be changed by common controller, NRPN, SysEx etc. messages sent by a previous midi file).

CrossBow777 wrote:

Just figured that most properly made mod files initiate some sort of reset command before making the changes they do on the module

It's because sending a reset is the only way for a known state. Otherwise you depend on previously played midi files/previously sent midi messages.

CrossBow777 wrote:

So if it is possible for that to happen with standard midi files, then I would think it would be possible to remap the instruments in other ways as well.

I hope now you already understand that this conclusion absolutely does not follow from the above...
Once again: You can set instrument maps that are included in your Sound Canvas( GM/GS/MT-32). Yes, that mapping/state is preserved between midi files. That's why the Roland supplied MT-32 to SC-55 mid can work at all. But all of these do not mean that you can define your own instrument mapping scheme and that's what OP wants (meaning when e.g. Program Change 30 is received, treat it like Program Change 60).
For this custom mapping to work you have to use some real time Program Change redirection/remapping.

The Midi mapper of Windows 3.1 could do this but as we know later versions became more and more dumb.
On modern Windows you need a 3rd party utility such as MIDI-OX to do this .

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 13 of 26, by thorr

User metadata
Rank Newbie
Rank
Newbie

Thank you very much everyone, and especially Falcosoft for having the exact answer that I was looking for. I miss the Midi mapper of Windows 3.1 and it sounds like MIDI-OX can do the same thing. I am planning to use DOSBox anyway, so it sounds like this is a perfectly fine solution to achieve the same thing as I was hoping to do with Sys-ex commands. I just checked and it looks like MIDI-OX is free, so even better!

I had another idea based on CrossBow777's thinking. Is it possible to select the MT-32 sound bank and then apply GS modifications to those sounds? The idea is that the Roland MT-32 normally gets modified with MT-32 sys-ex commands, but maybe something similar can be achieved with GS sys-ex commands. In this case, a MIDI file could be created to put it in MT-32 mode and apply custom GS changes to it to make it sound better than the default MT-32 map. Using Munt would most certainly be better than doing this, but it would be a fun experiment nevertheless.

Anyway, once I get my sound canvas and I get a chance to try MIDI-OX remapping, I will share my results. I feel like this has the potential to blow away the MT-32 and Munt in many cases for these old games, and I am excited about trying it out. The first thing I would do is make a remapping for the default MT-32 sounds and there should be an immediate improvement in games like Monkey Island.

Thanks again!
Mike

Reply 14 of 26, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
thorr wrote:

I had another idea based on CrossBow777's thinking. Is it possible to select the MT-32 sound bank and then apply GS modifications to those sounds? The idea is that the Roland MT-32 normally gets modified with MT-32 sys-ex commands, but maybe something similar can be achieved with GS sys-ex commands.

MT-32 and SC-55 are completely different beasts regarding synthesis. MT-32 is a fully programmable real synthesizer using LA synthesis but SC-55 is basically just a ROM based PCM 'sampler'. From this point of view MT-32 is much more versatile. MT-32 SysEx messages can define/create completely new instruments or modify existing ones radically. You cannot do this on SC-55. There are no magical GS SysEx messages that can define/modify the ROM based samples. You can only change some parameters/characteristics such as pan/reverb/chorus/delay
cutoff freq etc. but the instruments always stay essentially the same.

thorr wrote:

I feel like this has the potential to blow away the MT-32 and Munt in many cases for these old games, and I am excited about trying it out.

Unfortunately I feel this is a completely unrealistic expectation (because of the above said reasons).

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 15 of 26, by Spikey

User metadata
Rank Oldbie
Rank
Oldbie

Some instruments will work, like default MT-32 instruments, which SQ3 mostly uses. What won't work is:
- Sound effects- SQ3's MT-32 custom patches are mostly really unique LA synth based SFX. Try and find a GM substitute for "VaporizerMS"!
- Patches with low velocity- it has been a long while since I went through SQ3's soundtrack, but the biggest difference between Sierra's MT-32 and GM scores is note velocity. Put simply, the average MT-32 soundtrack plays on *much* lower note velocities than sounds good on a Sound Canvas, with some synth patches playing at velocities that would be inaudible on a SC. [EDIT: Looking through the resource files briefly, some are easily remappable to GM, others need their velocity almost doubled.]
For example, on the planet Phleebhut, you hear desert winds in the background. Some velocities are 001, and some are 127, with others in the middle. While GS contains a 'Wind' sound, some notes will play audibly, and some will not be heard at all.
Raising the volume won't help, as volume caps out at 127, and quite often as the velocities are low the volume will already be set high on these instruments. That's a commonality of most MT-32 scores; high volume controllers, low-medium velocities.

TL;DR- to accomplish what you actually want to do, you would need to manually convert each file to GM/GS and put it back in the game, and write a new driver (pretty much beyond the scope of what you're talking about). To go the route people have suggested in this thread, you will work incredibly hard to get inferior output than the original MT-32 version. My advice is to play with MT-32, and listen to the QuestStudios GS soundtrack after you finish.

One last thing- this is probably the hardest Sierra soundtrack, if you include SFX, to try and attempt this. SQ3 is *very* MT-32 optimized, and you would need a synth with much better synth/PCM capabilities to improve on it than the SC-55 (IMO).

Reply 16 of 26, by thorr

User metadata
Rank Newbie
Rank
Newbie

Thanks for keeping me grounded. I want to try anyway. I don't have expectations of perfection, and I expect downsides like what was mentioned about the sound effects. I am mostly thinking about the music. I don't know if MIDI-OX can specify the volume or not, but if it can then I could basically play the game music and adjust the settings until it sounds right. I also thought about writing new sound drivers for the games, but that is way beyond my capabilities at the moment and the remapping method seems much easier.

Reply 18 of 26, by CrossBow777

User metadata
Rank Member
Rank
Member

Thank you Falconsoft for the detailed explanations! Again, I had no idea that the MT-200 and it would seem my SCB-55 add-on card for my SB-16 had an MT-32 emulation mode hidden in them. I just assumed some trickery was being done to essentially completely replace out GM instruments with mt-32 equivalents..etc.

And yes in regards to midi files changing things that hose up other midi files. If I use a midi player, most of the time I can have the player software initial GS resets before each song is played. But with the MT-200 having the ability to play songs from disk (or GoTek in my case) in a jukebox style, this isn't possible and is where it is most noticed and quite annoying.

I would imagine it is considered good form to initial midi device resets at the beginning of your mid files? Shame that many of the converted ones I have from other devices haven't been modified further for this in mind.

g883j7-2.png
Midi Modules: MT-32 (OLD), MT-200, MT-300, MT-90S, MT-90U, SD-20

Reply 19 of 26, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
CrossBow777 wrote:

I would imagine it is considered good form to initial midi device resets at the beginning of your mid files? Shame that many of the converted ones I have from other devices haven't been modified further for this in mind.

Not necessarily. It can be also annoying that your fine tuned reverb preset/insertion effect etc. is ruined by a midi file sending its own reset. Sometimes you just want to preserve your fine tuned settings for several midi files. Also a midi file cannot be sure on what synth it will be played and the given synth even can react to a special reset type.
E.g. Sound Blaster and generally all FM/OPL synths and also early AWE/SB Live! SF2 synths do not react to GM/GS/XG reset messages at all. For these synths a reset can be emulated somewhat by sending Reset All Controllers + All Sounds/Notes Off controller messages + sending some known default values.
Some synths support more than 1 reset type and depending on the reset type different instrument sets are used. It can be fun to try e.g. GS vs XG mode of the same synth.
How to Midi Reset NEC XR385 (clone of Yamaha DB60XG)
If you can freely set the reset type in your Midi player then embedded reset messages are only obstacles. So I think the best way to fight this problem is by using a good midi player.
E.g. in my Midi Player you can freely choose between known reset types or you can select your custom one. You can also disable embedded SysEx reset messages in midi files to prevent unwanted overrides.
file.php?id=32666

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper