okay - I have an issue that I can’t figure out. While it’s entirely possible it’s the midihub pipeline I’ve programmed, I think it could also be a midihub bug. And the repro case is hard to describe as I believe it might be activated by multiple messages coming into the midi hub at once.
Anyways, I have this intermittent behavior where the midihub will spew program change messages when it’s not supposed to. It will always look like three PC messages being sent at a time and they will either have the value of 1 or 124 and they will go to the channels assigned to the given pipeline (I set my pipelines up to only operate on a single channel). The behavior of the issue is not consistent so, sometimes I’ll get values of 1, and the next three times the bug happens i’ll get values of 1, and then suddenly i’ll get values of 124. But I never get PC values other than 1 or 124 in these erroneous PC messages.
The pipeline itself (file attached) converts CC values to to Play and Start messages on specific channels so I can use CC’s to start/stop other sequencers from my main sequencer. PC values are supposed to just ‘passthrough’ and when I send a PC on it’s own, it most certainly does - I send a PC into my midi hub pipeline I get a single PC out. Any time I send just a PC through these pipelines, the PC seems to arrive just fine.
However, when my sequencer loads a song it sends a few PCs and CC messages and sometimes this causes the error to occur - sometimes it doesn’t (I’m saying that sometimes it works totally fine). Because the behavior has this “random” characteristic to it, that’s why I’m not entirely sure its my midi pipelines I’ve programmed and potentially a bug in the midihub.
midhub_repro.mhp (598 Bytes)
I basically repro this by loading songs in my sequencer. When a song loads in the sequencer, it sends All Note Off messages to each channel (so one all note off to all 16 channels), it also sends PCs against channels I have activated. I use the midi hub for two channels specifically (these are synths that have sequencers in them)
In the above picture, this is how things are supposed to look. I have a mirror of Virt A to output C and a mirror of Virt B to output D for monitoring purposes. X-touch is “virt a” and USB Midi is “virt b” in the monitoring software. I load one of my songs and you see it sends the respective PC through virt A and those All ntoes off as I mentioned, I press another button to send PC value 9 to channel 10 - so the PC pass through is working just fine. Then I load a second song, this song actually doesn’t send any PCs when it loads so you just see the All Notes off stuff that my sequencer is sending - though my sequencer is only sending the Note Off with value 0, I believe the Note off 123 messages are erroneous created by the midi hub.
Now I’d say 1 in every three times I do this exact same procedure without changing anything else, I get output that looks like this. I color coded this so you could connect the two images. The Blue line is the same as the blue line in the first image I posted - There’s pretty much the same all notes off messages and PC messages sent. But the pink line, this is the error i’m talking about, in this case both of the pipelines sent erroneous PC messages - you can see that three PCs are sent to channel six with a value of 1 - then the all notes off, then you see three PCs sent to channel 10. And I guess in this case, one more PC sent to channel 6 with a value of 1 for good measure.
Again, sometimes the value of these PCs will be 1, and sometimes it will be 124. The value is always the same for the cluster of PCs (it will be a cluster of 3+ pcs value 1, or it will be a cluster of 3+ pcs value 124)
oi, i hope you folks don’t think i’m crazy. I went through a long and arduous process with my sequencer manufacturer and have been studying the PC outputs from my sequencer for a few weeks now - these aren’t PCs that my sequencer is sending, I’ve verified this like 50 times at this point - I’m certain that these are being created in the midihub either by my poor programming or due to a bug. And I speculate that this behavior might have something to do with the “All Notes Off” messages that are being sent to all 16 channels at once.
There’s a second symptom which may or may not be related in that, it looks like it’s duplicating the notes off messages to each channel with values of 123 or 0, but this is intermittent too. When I monitor my sequencer directly (no midihub), I get Note off values 0 every time, no matter how many times I do it - so there’s something going on in the midihub generating this too I believe.
I realize this is a really hard behavior to communicate and that there are many variables, but I really think it could very well be a bug. Intermittent bugs (heisenbugs as I like to call them) are the worst. That said, if it’s my midi pipelines I’m down to take full responsibility. I swear i’m not crazy, but this is really weird - any help I could get would be appreciated.
I have the 1.11.10 firmware installed and I originally found this behavior on 1.11.7