Jurek: Midi Programs And Banks

Original thread: http://forum.renoise.com/index.php?/topic/34199-buggy-plug-osx-renoise-does-not-remember-program-of-some-vstau

As taktik says 128 Programs is very much a limit of MIDI but there also very much is a workaround to it which has been incorporated into the MIDI standard for decades to give access to more than 128 Programs.

Bank Select is your friend! Bank Select uses two 7bit controller values giving you the possibility to access 16,384 banks of 128 Programs (or over 2 million Programs in total.)

Of course, whether your plugin Instrument has actually been written to confirm to the MIDI Standard is a completely separate point all together!

Well, thanks for the idea, but I cannot find any bank change possibility in the Instrument MIDI Control device.

Nice :) CC# 0 works as Bank change. Problem solved! Not for the plugin, but in general

CC#0 on its own will probably do nothing at all in many cases.

The standard way defined by MIDI is to first send a CC#0 with a value of 0, followed by CC#32 with a value of X, where X is your desired bank number.

You possibly already saw me mention this in another post I made recently, but I wanted to clear it up here for anyone else that might be reading.

Well thanks a lot for the detailed info. I lost this info totally out of my brain since I sold my Yamaha CS1X ten years ago :)

In my case, a cc#0-0 followed by cc#0-8 and then prg change works (sometie. on cc#32 there is no reaction.

Wrong. Most MIDI devices will respond to CC#0 alone, especially as they don’t have enough Banks (more than 128) to require both controllers.

http://www.gweep.net/~prefect/eng/reference/protocol/midispec.html#Bank

So I would say in many cases it will do what desired but don’t rely on it doing so 100%

Fair enough.

I should have said something like: “The standard way in many (but not all) modern MIDI implementations…”

Anyway, the few times I’ve looked it up, I’ve just seen conflicting information in different places. The trouble is that all devices/plugins/whatever tend to behave in slightly different ways. Some will expect CC#0 and CC#32 together even if they don’t have more than 128 banks, while others will be fine with just CC#0 on its own. I’ve even heard that certain synths want CC#32 first and then CC#0. I suppose you really just have to try it and see what the particular device/synth expects.

My only point was that it might not be just CC#0 on its own.

Fair enough and I admit my phrasing was overly harsh. See I missed posting the link to the specification in my first post and you did help with providing a lot of the useful information. I think we can agree that although there are specifications defined their implementation may vary, thus some experimenting with the details may be required to get it working (if it will at all with software as there are even less promises it will have been implemented at all.)