I’m struggling to reproduce the issue you’re seeing here. To test, I’ve copied the AudioPlugin CMake example to a new folder, and replaced the CMakeLists with the following contents:
project(AUDIO_PLUGIN_EXAMPLE VERSION 0.0.1)
juce_set_vst2_sdk_path("<path to SDK>")
FORMATS AU VST VST3 Standalone
PRODUCT_NAME "MIDI Effect Example")
The resulting project builds with no warnings, whether
IS_SYNTH is set to
FALSE. When I build with
--verbose, I can see that
-DJucePlugin_IsMidiEffect=1 is passed to the compiler, without having to add it to
target_compile_definitions. I’m using macOS 10.15.6, Xcode 11.6, and CMake 3.18.1. I can then load the VST2 plugin in Reaper and pass MIDI through it. Ableton will load the VST2 with no problems, but fails to load the VST3 (adding an unused output audio bus fixes that issue though).
Regarding categorisation in Bitwig, has this ever worked for you? In Reaper and Live, the plugin categories only seem to distinguish between instrument and non-instrument plugins, so it wouldn’t surprise me if that were the case in Bitwig too - perhaps only the built-in midi effects will appear as ‘note effects’. I’m not very familiar with Bitwig, though, so this is only a theory.
Can you share your CMakeLists (ideally) or describe how yours differs from the example I posted above? It would also be useful to know which compiler and CMake version you’re using.