Vst3 Plugin MIDI input issue: "channel pressure" instead of aftertouch message (only within DAW)

For my piano vst I need to detect “Polyphonic Key Pressure” or “Aftertouch” MIDI messages.
(Don’t know why, but my Yamaha AvantGrand sends these for silent key strokes.)

This works fine when I test my plugin with the JUCE standalone host. Using MidiMessage.getDescription() and MidiMessage.getRawData() I get e.g.
“Aftertouch B2: 127 Channel 1”, Raw message: “a0 3b 7f”

In Reaper, however, the MIDI input message is
“Channel pressure 127 Channel 1”, Raw message: “d0 7f”
-> no note number information, I can’t use this message.

The weird thing is that Reaper’s MIDI control plugin tells me that Reaper is receiving the correct MIDI message starting with an “A” and containing the note number.

I haven’t tried in other DAWs yet, but I’d really like to stick with Reaper if possible. Any ideas, how to find out if the problem lies in Reaper, JUCE, or my vst3 code?

Which JUCE branch are you using? There were some changes on the juce6 branch in this area which might fix the issue you’re seeing.

At the risk of telling you something you already know: Channel pressure is the combined aftertouch value of all keys being pressed (usually the key that’s being pressed hardest). From what I understand it is more common for aftertouch-capable keyboards to send channel pressure rather than polyphonic aftertouch data, which is obviously what you’re interested in.

I wasn’t aware of the upcoming JUCE 6 release. I am using 5.4.7. I think I’ll try again as soon as JUCE 6 is released. I don’t mind waiting a few weeks until I get back to this issue.

I updated to JUCE 6 today and I can confirm that the issue is now resolved.

1 Like