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…
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.
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.
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.
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.
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?
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
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 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.
Any idea what might be going on? How to avoid this?
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
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.