Instrument plugin vs audio effect?


Hi there,

I am new to VST plugin programming and JUCE.

And I would like to know, how I tell my DAW, to treat my plugin as an instrument.
I have compiled the “audio plugins” demo and put the created .dll in my DAWs plugin folder.

But it is only avaiable as an audio effect. So I can only insert it to an existing audio track.
But I want to be able to load it as an instrument, so I can route MIDI to it.




Open the .jucer file with the IntroJucer (located in juce/extras/IntroJucer; if you havn’t already, you need to compile it) and check the “Plugin is a synth” option.
You might also change “JucePlugin_IsSynth” to 1 in JucePluginCharacteristics.h, but the IntroJucer is a very handy tool you might want to use on other occasions.




Thanks Chris. Works now :slight_smile:



Hi Jules,

It seems that#define JucePlugin_WantsMidiInput 1 works for VST and RTAS , but not for AU.
The plugin is not seen as midi destination by host (tried with Digial Performer).

Let me explain. For instance, with VST #define JucePlugin_WantsMidiInput 1 will do 2 things :
1- add received midi event to buffer and forward that buffer to the Juce AudioProcessor
2- fire some VST flag (namely receiveVstMidiEvent) to 1, so that the host will make it visible as valid midi destination

Kind of the same for RTAS.

But for AU, there’s only point 1 addressed in the au wrapper.
I guess there’s also some sort of such flag that need to be set as well ?

My plugin want both audio input (making it a synth is no option) and also midi input.
It already works normally as RTAS & VST (tested with protools and cubase)



I can’t remember the details, but don’t you have to set the AU type to a “MusicEffect” or something to persuade hosts to send it midi?


Cool. Thanks for the tip. indeed, the thing was to replace
kAudioUnitType_Effect with kAudioUnitType_MusicEffect

I would have thought that this should have been tied to JucePlugin_WantsMidiInput.
But of course this would change plugin’s type from ‘aufx’ to ‘aumf’.
Yet, maybe it’s possible to add an option in IntroJucer ?

I also reader that it also should use AUMIDIEffectBase instead of AUEffectBase. But not sure on this. Maybe this would only concern instruments.



Well, I left that as a manual setting in case people need to do custom things with it.


Hello Again Jules,

Would that be possible to add this choice within IntroJucer ? Because manual tweak in AppConfig.h get overwritted each time…

It seems that any AU that has JucePlugin_WantsMidiInput 1 should be of type kAudioUnitType_MusicEffect.
Though but to not break other peoples existing setup, an additional choice would be nice.