Switching instruments within Rackspace linked to different key splits

Dear Community,

very simple task for you to solve but it took me already some time to think about it…:

I have a Rackspace for a Song and want to Switch Instruments within the Rackspace.

I have an Organ, a Piano - I managed to select them singly by widgets (muting the unused one with the Audio Mixer)…

widgets

Now I need as well a splitted Keyboard for these two instruments for a song part.
My question: is it possible to assign more than one plugin to one widget -
so I would like to mute Midi in L.H. and mute Midi in R.H. for Full Range Keys.

I’m sure my solution is pretty complicated for the simple task -
please tell me your ideas if you know better ways…

Thanks in adcance!

You don’t assign a plugin to a widget….you assign a parameter of some plugin to a widget.

If you want to control multiple parameters (of the same or different plugins) simultaneously, then look for widget groups in the documentation.

Thanks for quick response - sorry, I meant parameter.
Ok perfect :slight_smile:

No worries….we just like to correct such things so that it will make sense to the next person reading the topic.

1 Like

Here are some resources from the manual:

Hm, I just remembered one post.

Since the Audio Mixer is a router, as well, please take a look at this post/thread: One button routing - #4 by brandon

~

You can also set the desired splits with variations: Gig Performer | How to create keyboard and velocity splits

(Just throwing various ideas)

Cheers! :beers:

1 Like

I don’t know how you planned to achieve this, but I would suggest you to block the Note On messages rather than the disabling the whole MIDI in block. So, you won’t have stuck notes because a Note Off message cannot be sent after you disabled the MIDI in block just after a Note On message.
Having said that, of course you could use a GPScript, but I think for a start, it is probably better to use widgets. Use several widgets, one per parameter you want to control and from the widget properties put them all in the same widget group. Then simply hide all the widgets but one and you are done.

2 Likes

I made a rackspace according to the information you gave us…
There are several variations which cover the diffrent combinations of the two sounds.
The variations then can be activated to switch to the desired settings… as @David-san already stated one does benefit from not getting stuck notes if one uses the “Block Note On” parameter instead of bypassing the whole MIDI-In block.

Piano and Organ Variations.gig (236.7 KB)

5 Likes

I just had the idea to also add widgets for the MIN/MAX note of the keysplits…
This way you not only can easily define where the split happens, but you can also create overlapping zones.
And you can switch the Left-Hand/Right-Hand sound assignment by just reversing the corresponding key ranges… might be useful. :slight_smile:

EDIT:
Unfortunately i noticed that changing the splitpoint (or changing te respecting variations) while holding a key, would actually produce hanging notes - so i had to include a short script which will send an AllNotesOff on any variation change.
The nice side of the new “version”: We only need two MIDI-Blocks for everything. :slight_smile:

Piano and Organ Variations_V2a.gig (277.0 KB)

2 Likes

Should we change that behavior in a future version? Or at least optionally force all notes off when you change splits? And perhaps only in the case where the new split excludes notes that are still playing?

2 Likes

I guess, that could be helpful in most cases… maybe this could become an option in midi blocks which could be unticked if not needed?

I would prefer if we could memorize where the note off has to be sent rather than sending all notes off. :thinking:

2 Likes

Thanks a lot for the gig file - works great!!!

1 Like

Yes, that’s clearly the way to go

1 Like

Hi guys,

Getting back to this old thread…
I was wondering if this is now already available or if this is still on the wishlist for a future version…

I ask, because I struggle with the same problem a lot. I often change ranges between different variations and have to be very careful that I switch after releasing the keys… Unfortunately, this is easily forgotten in the heat of the moment, leading to evil looks from fellow musicians :smiley:

This ‘send note off to released keys outside range’ feature would be a lifesaver and a great enhancement to an already fantastic piece of software.

Thanks!

In the meantime you could use a Scriptlet I use in this Rackspace:

Thanks, David-san,

I’ll have a closer look to those scriptlets…

1 Like

Hi @David-san ,

Thanks again for referring me to your gig file. The Scriptlets indeed prove to be very useful.

However, it seems that a scriptlet also introduce a small delay on the MIDI event.
I notice this in my playing, but also hear it when playing another sound simultaneously that does not pass these scriptlets. This is especially noticeable when putiting multiple scriptlets in series, like her in my screen shot.

In the screenshot, you can see the MKS20 sound is triggered by a second MIDI In block, while the other sounds are triggered by a first MIDI In block, going through several scriptlets.
When I disable all scriptlets, the sounds are in perfect sync, but when enabling each scriptlet in a chain (say, piano), you can clearly hear the Piano sound lagging more and more.
I made a quick recording and noticed the delay with the setup shown is about 55ms.

image

Any idea what might be going on? How to avoid this?

Thanks!

1 Like

Scriptlet processing is currently asynchronous - because there’s no way to know how long a particular scriptlet will take to process and if it’s delayed too much, you would get audio glitching.

So if you chain a bunch of them, you could absolutely introduce delay.

What’s your sample rate and buffer size?

Secondly - why are you using scriptlets for such things as blocking and routing and even transpose? You can just bypass plugins, there is a constrainer plugin for routing and MIDI in blocks can do transpose.

Plugins like Ripchord can also handle both transpose and doubling, etc

HI @dhj ,

Thanks for the response.

I actually initially used the blocking, transpose, etc from the MIDI in blocks, but the way I use variations lead to a lot of stuck notes, hanging sustain pedal, etc… In many cases, it also lead to notes being cutoff abruptly, instead of only sending the note off message when actually releasing the key (or pedal). Bypassing the plugin entirely is even less seamless.

In short, the blocker scriptlet basically simulates switching the ‘Block Note On’ parameter in the MIDI plugin, but additionally also blocks the sustain pedal. Some plugins still generate sound when pressing the pedal (e.g. Keyscape), which is wanted to avoid.
The Split&Transpose Scriptlet is the one from @David-san, allowing me to change ranges and transpose without hanging notes (my main request in an earlier post).
The Router is actually the SeamlessConstrainer from @David-san, again allowing me to change routing dynamically without hanging notes. I actually also modified it to again check if the sustain pedal was pressed, to make sure this also avoids hanging notes.

Using the scriptlets from @David-san gives me a much improved experience and allows me to exactly setup my variations the way I would like to use them. But the delay is quite annoying (although with your explanation I understand why).

Sample rate is 48 kHz, buffer size is 512 samples.
I could decrease to a lower buffer setting, but then I start to experience some glitches here and there (hence my wish to also use the PluginPersist Scriptlets to reduce some load here and there).
Another option would be to combine a few of these scriptlets so I have less of them in the chain…
Perhaps Ripchord is then what I need. I’ll check it out.

Thanks!