Where is the bug in bend transmission?

Hi,

I have created a script based on the Channel Select example, which does the same thing, plus it optionally duplicates all MIDI to 2 additional channels (unless set to 0). Nothing fancy (see attachment).

It works correctly for note on and off messages, but it doesn’t for bends. More specifically, when no duplication is active (the 2 additional channels are set to 0), it correctly sends bends to the new main channel (as does the Channel Select script), but as soon as I select one additional channel out of the 2 available, bends stop appearing completely, and I only get Pitch Wheel to zero messages on both channels, right before note on messages, exactly as if bends were disabled globally in the interface.

I don’t understand what / if I’m doing something wrong.
Thanks for your help !

Channel Duplicate.lua (1.9 KB)

Pitch bends are switched of automatically when more notes are sounding.
You can therefore not generate pitchbends on multiple channels.

Hi Paul, thank you for your answer.

I don’t really understand what you mean by “more notes” though.
What is the rationale behind this behavior ? It seems problematic for exactly what I’m trying to do (multiplex a single MIDI info source to several channels).

Thanks.

Bends are being cut off whenever 2 or more notes are “on”. When you make an extra note, even on another midi channel, bends are being switched off.
This is a feature/quirk of MG2.

Hmmm. I don’t see this behavior happening all the time. Just to be clear, I’m not talking about using an external pitch wheel. I’m talking about bends generated by bending a string.

I just ran some tests with MIDI Monitor, and I can see the following (using only one channel):

  • if for example I’m playing two strings, and bending one while the two notes are sounding, then pitch wheel messages continue to be transmitted.

  • also, I can play a chord, hold it (CC 64), and then again, future bend messages will be transmitted, and hence affect the pitch of the currently held chord.

pitchwheel is allways transmitted after the first time the app has used bends.
These are “bends=0” messages.
when you have 2 strings, the pitchbends will go back to 0. And MG sends ptichbend=0 then. This is centered value, so your monitor might display somehting like 8192

when cc64 is used, the MG logic does not react to this:
As far as MG is concerned, there are no hold notes, so the bending can proceed for single notes…
cc64 is pure a command for synths, it is not listened to on MG internal midi.

Got it. In fact, I hadn’t noticed (because of the guitar’s natural sound was still noticeable), but there was one note off event first (out of 2), and only then, MG2 started to flood my MIDI monitor with pitch wheel events :smiley:

Thanks.

1 Like

Got it. As far as MG2 is concerned, it has seen the note off events, even though they may be buffered in the synth. Thanks for the clarification.

1 Like