[VSTi] Need help, about VSTi

Hi, (jules?) ([-_-] i know you’ll help me…)

I’ve already made a small additive/subtractive synth app using JUCE. Classes such as Synthesiser, SynthesiserVoice, SynthesiserSound etc and some other pure cpp code are involved in this app.

But so far, it’s only a Win xp standalone, I really want to make it a VST plugin. I have a little experience with VST SDK before. But after running the juce_vst demo, as you know it’s only an EFFECT plugin, I have no idea about turning my desktop app to a VSTi plugin. In VST plugin, there’s a function “issynth()” right? It will indicate the right place the plugin will appear (as a VSTi or an effect like GAIN). But I can’t find the counterpart in JUCE vst plugin. As you see, my attempt can’t even start…

Can someone (jules?) give a sketch of VSTi for my “transplant”? (some inevitable, major steps…I know how to cope with parameters)


You’re making it sound a lot harder than it is! There’s an IsSynth flag in your JucePluginCharacteristics.h file - set it to 1 for a synth. Simple as that!

well…I skipped something important…

Sorry to disturb again.

I set that flag to 1, (and rebuild for times) but my VSTi still come up in the EFFECT column but not the VST instrument column. I’m using Nuendo.

my VSTi list doesnt have it:

[size=150]It’s still in the EFFECT, with your gain DEMO juce_vst:[/size]

[size=150]Besides, it seems juce plugins can be chosen as the audio output even if it’s just an EFFECT. (I mean it is a selection in the popup menu of OUTPUT box).[/size]

the #define JucePlugin_IsSynth 1
doesnt take effect…[/u]

Well, that’s the flag. You can see in the VST wrapper code that it calls isSynth to tell the host that it’s a synth, and that’s all that’s involved in making a VSTi. Have you set the number of input channels to 0? Could be that the host is looking at things like that as well.

Seems that my JucePluginCharacteristics.h can’t take effect, don’t know why, I noticed that juce_vstwrapper has included “…/…/juce_IncludeCharacteristics.h” and thus included “JucePluginCharacteristics.h” , but it just doesnt work.

[size=150]I can only solve it by changing the wrapper source code:[/size]

[size=150]Then it works:[/size]

Well, it works for me and everyone else! You’ve probably just not got your include path set up correctly, so it’ll be picking up a different file.