[Solved] Multi-timbral program change message

Wanted to revisit this (from part of other thread). I am thinking people coming from Forte, and possibly other “live hosts”, might love this feature.

djogon wrote:

While I do agree that I do not want to send “Multi-timbrel Program Change messages” from my controllers… I do think that:
When the “global rackspaces feature” is added in the future, it is possible many of us would love to see the feature (similar to what Forte had) being:
When you load a rackspace, every “midi in dialog box” would now have an extra button to open a dialog box to add multi-timbrel commands (e.g. send commands to a multi-timbrel sampler like Kontakt).
Here is screenshot in Forte:

Just for my understanding: When you activate a rackspace automatically send PC messages you set in the slots?

This now can be done by scripting very easy:

var m : MidiMessage
    MIN : MidiInBlock
on Activate
 SendNow(MIN, MakeProgramChangeMessageEx(1,1))
 SendNow(MIN, MakeProgramChangeMessageEx(2,2))
 SendNow(MIN, MakeProgramChangeMessageEx(3,3))
 SendNow(MIN, MakeProgramChangeMessageEx(4,4))
 SendNow(MIN, MakeProgramChangeMessageEx(5,5))
 SendNow(MIN, MakeProgramChangeMessageEx(6,6))
 SendNow(MIN, MakeProgramChangeMessageEx(7,7))
 SendNow(MIN, MakeProgramChangeMessageEx(8,8))
 SendNow(MIN, MakeProgramChangeMessageEx(9,9))
 SendNow(MIN, MakeProgramChangeMessageEx(10,10))
 SendNow(MIN, MakeProgramChangeMessageEx(11,11))
 SendNow(MIN, MakeProgramChangeMessageEx(12,12))
 SendNow(MIN, MakeProgramChangeMessageEx(13,13))
 SendNow(MIN, MakeProgramChangeMessageEx(14,14))
 SendNow(MIN, MakeProgramChangeMessageEx(15,15))
 SendNow(MIN, MakeProgramChangeMessageEx(16,16))

This can already be done using the Song Parts. Granted, there’s no actual UI so you have to enter the names of the MIDI blocks and the program change commands but this is a generalized feature that can be used to send arbitrary MIDI messages out to arbitrary plugins and external hardware


Yes, so many possibilities

@pianopaul and @dhj

Thanks for reminding me to consider the power of using scripting solutions. I will definitely be learning about the scripting capabilities at some point.
And, just to make clear, to me (whether done in scripting or is added to interface), “the ability to set the multi-timbrel programs upon loading a rackspace” only becomes useful AFTER “global rackspaces feature” is added in the future.

For my understanding: What will you do with the global rackspace?

Good to know. However, my gut feeling is I would be wanting this to be done at the “rackspace” level, as opposed to “song part” level.

One example: My “goto” Kontakt piano can be loaded once, and be available to add to any existing rackspace.
Right now, I load it 10 times. I also like avoiding predictive loading so never have to worry if some huge library will glitch when loaded.
Imagine you need to step forward several songs quickly causing predictive loading/unloading in rapid succession.

Ok this reminds me to the Alias Channels in MainStage.
Was working - but not really fine.
You could not adjust for example the eq separately for a patch (in Gig Performer called rackspace).

In Kontakt with the possibility of purging samples you will not have to load huge libraries.
And I am not sure if patch persist - like it is working now - will be possible with your approach.

Purging samples might not be good solution when there is improvisation involved (?)
My own “super patch persist” concept is a stand alone sampler that is used to trigger “whatever ending I need that overlaps into next song”.:grinning: (I have a mini keyboard that is dedicated to that stand alone sampler)

Ok, but in huge library many articulations can be found you maybe not need when you play live.
So purging Samples could be reduce the number of samples even when you play every note on your keyboard before purging :wink:

This should actually be exactly what you are looking for.
You have your rackspace with loaded plugins and you want to now change the sounds within those plugins by sending PC messages.
Song parts is the perfect solution for you actually. Not only can each song part be connected to a different rackspace/variation, but you can also change things by sending these messages.

Again - we do not like this nor support it, but if you want to…

That’s why you can change the number of rackspaces that get loaded into the future.

Agreed… “purging” will generally be included in my “best practices” approach. And I am glad you raised that and helped me to remember to keep that in mind.

But quickly stepping forward (“increment”) several songs (as opposed to clicking mouse to jump/skip forward) would cause a rapid succession of load/unload… right?

Have you actually tried this with your gig file or are you speculating? Just curious?

Background info is: Because I have 64 gb memory, I thought I would not need to risk having any loading/unloading activity (i.e. Predictive loading) during a live show, so…
no, I have not tried it. (but at some point, sure I will try it and see if “stepping quickly forward and backward continuously” causes any issue)

The point of predictive loading is to allow you to have access to more “sounds” than would be possible if everything you need must fit in memory and still have seamless switching . The trade off is the (reasonable IMO) assumption that you will be playing a setlist in sequence and that you won’t be switching so fast that there’s insufficient time to load a song “n” locations away from where you are.

If you’re just going to switch rapidly, then you will certainly hit a point where things aren’t ready

Yes I should just turn on Predictive Loading, and once I have witnessed how stable it is, I will probably soon forget the fear of crashes I have built up over the years while using Brainspawn Forte.

Forte ≠ Gig Performer