I'm used to the following behavior
when using MIDI on a Creative card: when I select an instrument not
present, such as bank 8 program 20, the MIDI track will sound using
bank 0 program 20 instead. This seems like a simple and logical way to
deal with missing patches, and is what I've come to expect when working
Thinking some more about hardware and software designs, I believe the safest thing to do when encounter an invalid request is to ignore it, not blindly follow the request/instruction that will cause the system to misbehave. I think FS misbehaves in this case, although it is just my opinion. You and others may think differently, and I respect that.
For example, hardware keyboard or sound modules that has only one sound bank (#0) will ignore requests to use soundbank 15. The keypad selection of prog_number may let me type 834, but if there is no such prog_number, it won't allow that selection.
User login would not be allowed if an invalid password is entered. For database, a request for adding a tabble, or even just a row would not be allowed if that database user doesn't have sufficient permission.
My take for midi rendering is that I would rather keep whatever instrument already loaded in each channel than dropping the instrument from that channel.
For a more lively example, let's say a band of 4 players trying to play a classical symphony record on vinyl that was written for 50 players using 20 instruments but only 4-10 instruments at any given time, the band may not have all the instruments available, but they can play their specialized instruments well enough to replace the viola with bass guitar, the flute with violin, drum and bass with keyboard ballroom (modern) rhythm instead of the original symphony with varying pace and tempo at times... Rather than saying, I don't have a viola or a flute, just butcher that section and wait for the the part with my instrument, which is what FS does right now.
fluid-dev mailing list