ArpeggiatorTutorial not working as VST3 - BUG?

I am struggling to handle Midi events in processBlock of a VST3. The processBlock code executed without error, however, Ableton seems to bypass all the processing and just transfer the input midi messaged onto the output. After multiple attempts, I finally went back to basics.

  1. I downloaded the demo source code for the Arppegiator tutorial from here - JUCE: Tutorial: Plugin examples

  2. Compiled the code and tried to load it up as a VST3 in Abelton. Abelton gave an error

  3. Updated the projucer project properties to set Plugin is a synth,Plugin MIDI Input,Plugin Midi Output and removed Midi Effect Plugin.

  4. Now my plugin showed in Ableton, but it was not working

  5. Ran the code in standalone mode. It was working !

  6. Went back to VST3 plugin and In VS2022, put a debug point in processBlock. the line: jassert(buffer.getNumChannels() == 0) was failing. I am assuming that since the plugin was marked as a synth, this behaviour should be expected. So I commented this line.

I am now stumped. I tied reading various posts on how to make a VST3 Midi plugin and believe the issue should be only with receiving MIDI CCs. Note messages should work fine. So I am no longer sure what is the correct way to create a Midi handling VST3 plug-in with JUCE. I am using JUCE 7.

OK. Did some more digging and found a good thread VST3 (midi) and JUCE - Audio Plugins - JUCE.

Updated the Projucer properties to UNCHECK Plugin isa synth, and CHECK Plugin MIDI Input along with Plugin MIDI Output. This now works.