I was hoping that all the non-GM devices would have retired by now, but it seems there is still work to be done regarding this.

If there where a lot of IDF files available for all kinds of synths, we could use that. But I couldn't find any so we might as well start from scratch. Then we can not only redirect from patch to patch but also from bank/patch to bank/patch. If we connect some tool at the MIDI-out port that stores all C0 and C32 messages that are sent. Then when a patch comes along it first looks up the what C0 and C32 have been sent on this channel then looks up the translation in the instrument definition table. And then it sends the complete translated bank select C0, C32 and Patch.

It would be like a MIDI Mapper with bank select capabilties. You can define generic patch changes that will translate a patch number in any bank to a new bank/patch or translate detailed bank/patches to bank/patches.

Maybe such a tool already exists?

It would be a lot of work though to define all the patches in all the banks. But you could of course start with the ones you actually need in the styles you are using.

JM