Sustain Pedal and changing midi channels

Hello!
I use Rolland a88mk2 controller which has 3 midi zones. I created rackspace with two sound, one for 1 midi channel and another for 2 midi channel. I switch those sounds by changing zones in Roland - upper 1 and upper 2. (Midi 1 and midi 2). Problem is that when I keep my sustain while changing channels it stuck and I have to go ack to midi 1 to turn it off… Probably it’s normal but is it the way to fix it?

That is normal behaviour.
When you send sustain on on Channel 1 you have to send sustain off on Channel 1
When you send sustain off on Channel 2 the previous sent sustain on on Channel 1 will Stay.

I think it would be much easier to use your Roland controller without multiple hardware split and to control the split you need within GP using one MIDI in with different range per split. Doesn’t necessary solve your problem, but we could have a chance to deal with by scripting if there is no other solution.

1 Like

I understand… I tried to use midi filter, doesn’t help. Idea is to create a situations when gig performer sent sustain off to Roland midi channel 1 while changing channels from 1 -2. Is it possible?

For us to see exactly how you organize your rackspaces/variation in your gig file, could you please post the smallest possible gig file which illustrates the way you organize things? There are always solutions…

1 Like

Most MIDI keyboards send CC64 value 127 when sustain is pressed and value 0 when sustain is released. If you have a split keyboard, there is no telling which MIDI channel it will send it but I suspect it would be only one MIDI channel.

Some plugins do not react to CC64 and some plugins will react differently for sustaining. If you are lucky it will react to CC64. If not, then we monitor notes being held when we switch channels. I think GP has a notetracker feature that does this and could send an “all-notes-off” message on the given MIDI channel when the sustain pedal is released. If you are still playing on MID CH2 then we would need to only send all-notes-off on MIDI CH1 so it doesn’t interrupt what you are playing on CH2. On top of that some plugins will not react to an all-notes-off CC so the solution would be to iterate over the notes currently being held on channel 1 to turn them off.

As @David-san said, looking at your gig file would probably help and perhaps it would be better to use the keyboard splitter in GP rather than different MIDI channels for upper 1 and upper 2 on your Roland Keyboard.

I’m new to GP but I’ve run into this many times with Bome MIDI Translator Pro where we have to solve it all with MIDI depending on the synth/plugin behavior. Looking forward to the GP solution for this! As I browse through the community, I see all kinds of posts on how people want to handle sustain. I see several solutions out there but haven’t researched yet what would be the best for your use case.

Steve

Just stop trying to send CCs and such directly to your plugins but use widgets and the underlying host automation instead.
Build your splits in GP.
Switch rackspces to change a sound.
That’s the way GP is designed to work!
Every effort to work around this concept will only, well… mostly, cause some troubles.

1 Like

Basically, don’t do that! No device or synth in the world can determine what to do in that situation since changing channel by itself doesn’t actually do anything. So the receiving device, whether it’s another synth or gig performer will simply still be waiting for an “Off” event for the previous channel while responding to new events coming on the second channel.

Sure, you could do some heuristics with GPScript where it could keep track of Sustain On events in channel one and then notice that an event came in on channel two and then send out a Sustain Off on Channel one but now you have to watch every singe MIDI event for ever for the very rare time when this will happen. But then you will also have a problem when you DO want the notes on channel 1 to stay on when you switch channels.