The MIDI Forum

  Monday, 24 May 2021
  22 Replies
  648 Visits
I am writing a piece of software to easily change instrumentation in a midi file.

I've come to the point where I am nearing the end, and now an important question comes up: I'm adding in bank switching support, meaning that as long as the playback device supports it, I will allow changing to any available instrument banks or drum kits. This is "easy" if there is only one instrument in a track, it gets more complicated when a track contains multiple instruments.

It gets potentially chaotic when drum kits are involved. Are midi files allowed to rapidly switch drum kits?

For example, let's say I have a GM file using "Standard Set" with a drum, a cymbal, and a side stick. All percussion is in a single track.
Let's then say I change only the cymbal to "Room Set", and only the drum to "Power Set". This will require inserting a kit (program) change before each of the instruments whenever they appear after another instrument, potentially leading to hundreds of kit changes over the course of the song.

Will midi allow this? I imagine it is technically correct. Would it play back properly on hardware? Would it matter if this was done in a GM vs GS vs XG file?
3 weeks ago
From what i get about the kit changing what is really needed is an ins file "instrument description" that also hold the kit programs and bank.
I guess how frequently you can exchange banks/program is upto the hardware.

I have the most simple soundcanvas not a bank in sight just programs, however there is actually a few variations upon the statndard kit as programs.
I kind of doubt that i can use the snare on one program and bassdrum hihat on the other at least if it 16 part notes.

You probably can test your assumptions with my little script here, if you have different kits on same bank.

You just set the program for the virtualdrum kit you want to use, and record bassdrum and hihat.
Then change program "kit" and record snare.

Then you pretty much know how fast your device will be able to change kits, if it missing 16 part notes it simply to slow program changes.

Virtual drum toprow to the right, you will have to set notes for your kit.
3 weeks ago
Well it seem to me one would have to send a program change with each note on midichannel 10 to use two kits.
My script do not but i noticed i could record "listen" to two kits 16 parts notes, simultaneously on my Roland SC-7.

So it seem the mulitimbrality really do not care about banks and programs on the SC-7, and the switching message really just a message.
No weirder then the multitimbrality playing different programs.

Sure the message some byte longer but the Roland really do not care.
I think it so easy that the triggering really not aware about banks and stuff, programs and banks only "user interface".
When you send both program with notes it is just to find correct place in the lookup table in ROM.

So the adress spacing changes from 7 bit to 21-22?
  • Page :
  • 1
  • 2
There are no replies made for this post yet.
Be one of the first to reply to this post!