Use MIDI Filter To Allow Only Certain MIDI Channel(s)?

Why can’t you just change them directly from a MidiIn Block? Am I missing something?

Yes and it is possible to assign a widget knob to the output channel, which makes things very easy.

Makes sense and yes mapping these to widgets works for changing the midi channel behavior between variations. That I get and it works well… except that it causes hanging notes if I use this to change sounds on the fly via variations while holding a chord.

The other thing about variations as far as I can tell… there is no patch persist between them. I can only get that to work (overlapping sound) when switching between rack-spaces. Same with sticking notes… using rackspaces switches without hanging the midi note.

Am I correct that this is the expected behavior and a difference between rackspaces and variations?

In General, variations do not store the plugin State.
A plugin state is stored within a rackspaces.
In variations the value of widgets is stored and you can map widgets to plugin parameters.

Thanks Paul, I understand. And I have set a widget to change the value of a plugin parameter, in this case the midi channel routing of a Midi In block.

What I am finding is changing the widget’s state by using variations causes hanging notes and I don’t get any patch persist.

But if I use rackspaces to change the plugin’s parameters (also via the widget)… there are no hanging notes and I do get overlapping sound (patch persist).

So I am confused… is this behaving as it should?

Ideally, I’d like to only have one rackspace with several variations because once I start duplicating rackspaces, if I want to make a global change to the rackspace as I evolve my GP setup (like adding a VST or routing) I have to make that change manually in multiple rackspaces.

Trying to do this the most efficient and future proofed way but I am concerned as to why switching between variations is causing the issues I am seeing whereas switching between rackspaces doesn’t have this issue.

Changing Parameters in general do not face having notes.
For exmpla changing cutoff frequency will never cause hanging notes.
And patch persist only works between rackspaces.
I think there is some misunderstanding.

Can you upload a small gig where the issue exists?

Yes!

A variation is just that, the ability to remember slight changes in some plugin parameters, typically to do things like change the current cutoff frequency of a synth, adjust the vibrato depth of an instrument oscillator, turn a phaser effect on. Widgets are used to control parameters and each variation remembers all widget values. Parameters such as those described above can be changed continuously for real time tweaking.

However, not all parameters are intended to be used in real time. Some are intended solely for control purposes, configuration, etc., not intended to be changed while playing. MIDI channel numbers are in that category.

As for Patch Persist, that is absolutely a Rackspace feature, not a variation feature and it depends on the fact that each rackspace has a completely independent collection of plugins.

1 Like

Very helpful @dhj as ususual.

So I could use some guidance then on how to do what I want the most efficient way so that hopefully I can do this all in one rackspace, with no hanging midi notes, and switch between splits of different vsts, etc… without scripting.

Here’s my simple setup and my goals.

I have a numa organ2. It always transmits on midi channels 1, 2 & 3. This can’t be changed on the keyboard at all. It’s a good setup because ch 1 is all the CC changes that the built in knobs, buttons and sliders send in addition to all the keyboards notes, ch 2 is the lower manual channel and ch 3 is the pedal channel.

There is a split button on the numa organ2 which switches the lower half of the keyboard to output notes on ch 2 (muting these notes from ch 1) and a “Pedal to Lower” button which adds ch 3 to the lower half of the keyboard (2+3 with split turned on and pedal to lower turned on).

While the numa is great on it’s own, I am using it to mostly as a midi controller to drive the VST B3-X. Incidentally, the B3-X is set to receive by default ch 1 notes for the upper manual, ch 2 for the lower and ch 3 for the pedal. So it’s a perfect match and I can jump between the B3-X and the Numa’s onboard sounds and the controller behaves identically for both.

If this is all I wanted to do with this controller, I would have no more concerns.

What I want to do though is use the built in split button on the numa organ2, in conjunction with Gig Performer, to split the keyboard for different sound combinations and drive different VSTs, not just the 1:1 mappings between the Numa and the B3-X.

For example, using the split button on the numa2 and a variation in GP to have piano in the lower split and the B3-X in the upper, or vice versa, or other variations of different VSTs, etc…

[note: I set this up easily by making a widget that receives ch 2 from the numa on ch 4 by editing the midi in block and then had my piano VST receive on 4. However, if I jump variations as we already discussed… I get hanging notes.]

Ideally, I’d like to do this within a single rackspace and change the routing by variation.
Conceptually it’s as if my rackspace is a single virtual hardware setup that I can keep adding to and tweaking but then make variations of and assign those variations on a per-song basis. This way if I buy a great Wurli VST in a month and add that to my rackspace, I don’t have to add that to every rackspace I have just to access that in different songs. Similar if I add a widget to a rackspace that I love already, I don’t have to add that widget to ever copy of that rackspace to get that same functionality in all the songs I have setup. My sound use per song needs to be flexible and performance based.

Since variations don’t play nice with midi block channel assignments and you can’t have different midi routings in different variations I am not sure the best way to do this.

I first approached this by just using a mixer where all the VSTs were always triggered and I just ‘filtered’ them out by assigning different volumes or MUTE/SOLO selections to different variations but that gets very complex when trying to negotiate the split feature I am trying to do, even with multiple instances of the same keyboard controller (midi-in blocks) mapped to a lot of different combinations. I have to create an elaborate matrix to effectively control these splits by volume control. Not a real solution.

I know there is probably an argument for not using the split button on the numa and doing all my splits with the midi-in blocks… however, that button is right in front of me, it’s going to get used when I use the native numa organ sound engine and its something I want to integrate into the GP rig. Also, doing splits on blocks will not work between variations (even if I assigned a widget to adjust the top/bottom note) because it will hang notes between variations.

So… I think there must be an elegant way of doing what I want… I just am not sure I know what that is since variations doesn’t seem to have the same special sauce that rackspaces do to allow overlapping midi routing to persist between rackspaces.

Thanks in advance for some guidance!

Brandon

@brandon
You will always have issue when you change MIDI Channels while playing - hanging notes etc.

For me your approach sounds too complicated, I would go with separate rackspaces.
This way you best use the features of Gig Performer, for example patch persist.

Thanks @pianopaul. Hanging notes are not an issue between rackspaces so it seems… but updating a lot of rackspaces if I want to freely change the sounds I am using between them, interchangable song to song is a lot of work. Maybe I am not understanding how GP best works for my situation?

OK, take a look at SetList Mode.
Here you can build Songs and Songparts.
SongParts use Rackspace Variations,
So when you need a Piano Sound in 4 different songs you just reference your rackspace with that sound.

1 Like

@pianopaul

I am using setlist and the very useful Song Lyrics/Chords feature extensively… albeit with just a single Rackspace/variation at the moment.

Often in a song I want to move between organ and piano and between combinations of these via a split, so I could be shading organ but then hit split while holding an organ chord in my left hand and now be playing right hand piano solo… just a for instance. However I don’t want to be totally prescribed with this. I’d like to be able to on the fly go to different sounds and splits as the mood strikes me and based on what the musicians around me are doing because a lot of what I am playing is improv.

I could set up every song to have the same split & non-split combinations of rackspaces, like the 4-5 main rackspaces I might want to use (full organ, full piano, piano/organ split, organ/piano split, Rhodes/clavi, etc…) and then assign them to song ‘parts’ which are set to each rackspace.

But if I later want to make a overall improvement to my GP setup… like adding or replacing a vst, etc… I’d have to make that update to multiple rackspaces so that it’s available to all my ‘split presets’. That multiplies the work it takes to do this, especially if I keep revisiting how something is tweaked or a widget is mapped. It’s suddenly a lot to keep straight.

I just wonder if I am missing something that would simplify things and somehow keep things in a single rackspace.

thanks,
Brandon

OK, mostly I play concerts with fixed setlist and my sounds are “predefined”.
So I am not a “Standup Musician” - hope that is the right word :wink:

SetLists and rackspaces/variations are working perfect for me.

For your use case I do not have the 100% solution.

1 Like

Why can’t you use multiple midi in blocks configured for the other channels and just turn on or off the other plugins as you need them?

Do variations support bypass states?

You can map a widget to a plugin Block fo bypass it

@dhj @pianopaul

I do have three midi blocks for the Numa o2, one for each channel and a split range for each that matches the keyboards output.

I’ve tried using a widget to control bypass on the midi in block, on a intermediary midi filter plugin (midiChs from “Insert Piz Here”) that was remapping channels and the VST plugins themselves but in all of these scenarios, the sound cuts off or the note hangs. Nothing behaves the way switching rackspaces does with patch persist and no hanging notes.

so I think what I am trying to do perhaps falls into the feature request realm?

And I am suggesting that you have more than three, and you use the others to route to different channels when you need them.

Except that rackspaces are the solution already.