I’m using Juce 4.2.1 (latest version) and the VST 3.6.5 SDK (latest version), though I had the same problems with Juce 4.1. I’m building the “Plugin Host” example project included in Juce 4.2.1 using Visual Studio 2015 on Windows.
For testing, I’m using three VST3 virtual instruments: u-he Podolski, a free VST3 plugin by an established pro plugin developer; and Arturia’s Oberheim SEM V and Wurlitzer V demos.
In every case, with these VST3 plugins (and every other one I’ve tried), moving any control on the interface doesn’t do anything at all. There is no change to the sound no matter what parameters are changed, including volume, pitch, filter cutoff, etc. Pressing the virtual keyboards on SEM V and Wurlitzer V result in notes playing, which is great, but none of the controls on any plugin alter the sound in any way. In every case, these controls work perfectly fine in the VST2 versions in my DAW.
In addition, here are other problems I’m seeing with these VST3 plugins:
Arturia Oberheim SEM V & Wurlitzer V:
- Only mono output shown in graph editor, no MIDI input shown
- Changing presets doesn’t work, triggers asserts in startGroupEdit() and finishGroupEdit()
Controls do not visibly move in the interface (though the displayed values change)
Asserts on shutdown: Leaked Message, AttributeList objects
I know that VST3 separates the editor interface from the processor interface, and it’s the responsibility of the DAW to shuttle messages between the interfaces. Is there something in “Plugin Host” that the user needs to implement that make these plug-ins work properly, that just isn’t implemented for demo purposes?
One last question: VST2 plugins used a callback method to request information on tempo, time signature, playback state, and lots of other things. In Juce’s VST3 implementation, how do we pass tempo & time signature information to the VST3 plugin?