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?