SOLVED juce::MidiBuffer detects everything as Channel 1

This problem is specific to Cubase. It occurs on both Mac and Windows. It happens with JUCE v5 for sure, and possibly with JUCE v6 and v7 (still working on confirmation for this version) as well.

The raw midi buffer passed into processBlock() method of the VST Plugin always reports all incoming MIDI events as Channel 1, even when they are sent on other MIDI Channels (2 through 16) from the host to the plugin.

I’ve confirmed my routing is correct in Cubase by sending the same MIDI Track output to a commercial product (Kontakt) which correctly routes Channel 2 to Channel 2, for example.

I’ve confirmed my code works with Reaper (VST) and Digital Performer (AU) and is able to detect and route the channels correctly.

So… what’s up with Cubase/JUCE combo? Why is everything coming in as MIDI Channel 1 when I’m using a VST built by JUCE with Cubase as host?

Does anybody know the workaround for this problem?

This seems to work correctly in JUCE 7 + Cubase 12 on macOS.

Please update JUCE and test again. If you’re still seeing problems, please provide detailed steps to reproduce the problem (including steps for setting up routing in Cubase) so that we can debug the issue here.

@reuk: We rebuilt the plug with JUCE 7 and this is no longer a problem. Appears specific to JUCE 5. Thanks for your help!