This project has moved and is read-only. For the latest updates, please go here.

VST effect type issue

Topics: Audio, Midi, VST.NET Framework
Feb 19, 2016 at 11:30 PM
I'm developing a VST using the VST.NET framework which is an audio effect that also accepts routed midi note information, so both the "IVstPluginAudioProcessor" and "IVstMidiProcessor" interfaces are implemented.

When I try to use my effect in a host (Ableton Live 8), if I try to drag it onto an audio track, it tells me "Only audio effects can be inserted into an audio track", so somewhere along the line, it is thinking my effect is a pure midi effect rather than an audio effect.

How is this VST plugin type information communicated to the host? I perhaps naively thought it would be through setting the "VstPluginCategory" to "Effect", but seemingly not.
Feb 20, 2016 at 2:09 AM
Some further investigation of this issue:

I managed to persuade Ableton that my effect is indeed an audio effect by removing the IVstMidiProcessor implementation, and renaming the dlls (presumably there is some sort of caching going on with Ableton as it refused to acknowledge the change in status without it being renamed), and then readding the midi processing.

However now, although Ableton acknowledges it as an audio effect, as soon as I reimplement IVstMidiProcessor, the input channels in the audio processing method are zeroed.

Are midi processing and access to audio input mutually exclusive? I know what I want to do is possible as there are vsts available that can do it.
Feb 20, 2016 at 11:41 PM
Ok stand down everyone I think I've fixed my problem.

I was inheriting the "StdPluginCommandStub" class which has an implementation of "CreatePluginInfo" which sets some things automatically based on which interfaces are implemented.
if (audioProcessor != null && plugin.Supports<IVstMidiProcessor>())
       pluginInfo.Flags |= VstPluginFlags.IsSynth;
This bit makes the assumption that any VST which implements both audio and midi processing is a synth, which is a reasonable enough assumption but in my case, is not true.
Feb 21, 2016 at 12:27 AM
Yep. Basically, VST.Net works almost exactly the same whether or not Ableton considers your VST to be an effect, or a synth. But, that piece of information just tells Ableton what you think your synth is for.
Feb 23, 2016 at 11:03 AM
Sorry, I did not receive a notification of this thread... (known issue with codeplex)

The Framework attempts to deduce support from the interfaces the plugin implements.
You should be able to override the CreatePluginInfo method on the stub, call the base and adjust the plugin info to fix your problem.