Weird issue with VST3PluginTestHost


#1

This is on mac OSX: The vst3 sdk includes a text host called VST3PluginTestHost. It is similar to auval, but also has a GUI. I remember using this host to test my plugins when I last did a release, but with the latest Juce sources (4.2.2+) I can no longer open a Juce-built plugin. With one of my plugins, the VST3PluginTestHost doesn’t even launch… so I tried the “Juce Demo Plugin”. When I try to create an instance of the demo plugin, the test host gets stuck in an endless loop using 100% cpu on one core. I tried looking at the problem with the XCode debugger and Instruments, but it’s stuck somewhere extremely weird. To me it looks like memmove if moving around tons of memory for no reason and never gets done. At the same time I see a bunch of SpinLocks related to String methods, but no plugin client code.

I’ve seen a similar issue in Garageband once, but in that case, the moving of memory at least got done after about 3 minutes.

Has anyone experience running their vst3 plugins in that VST3PluginTestHost? Have any of you seen similar endless-loop situations with memmove involved? Searching the web things seem to point at some form of compiler/runtime library configuration issue.

Before you fellow developers will hopefully post numerous replies, I’ll try to build with older Juce versions to find the breaking point with that host.


#2

I noticed that the current VST3PluginTestHost won’t show the GUI for VST3 plugins that use SingleComponentEffect. It even crashes if one tries to show the plugin info window. This happens also with the SDK’s againsimple example. I only tested on Windows, though.
Maybe this issue is related.


#3

ckhf, thanks for chiming in. So far I figured the demo plugin from Juce 4.0.2 loads correctly, but Juce 4.1.0 does not. Therefore I think it’s a valid problem … but it could also just be my machine for some reason. I’m using the VST3PluginTestHost from VSTSDK 3.6.5 on 10.10 and XCode 6.4. I’ll try to find the exact commit when things break using a binary search… unfortunately I also have to rebuild the Introjucer every time …!


#4

Ok I found the commit in question. The VST3PluginTestHost can’t load Juce Plugins since December 16, right before Juce 4.1.0 and the problem starts with this commit:

“Added multi-bus support for audio plug-in clients” e0bd51f26c6204154eef55285a08a40223d08f8e

Right after this commit, VST3PluginTestHost cannot even launch if a Juce plugin is present. This has improved in the meantime, but once I want to open the plugin GUI I get the weird freeze.

Unfortunately that commit changed 170 files… so it might be rather hard to figure out what made things break.


#5

OK fixed on the latest develop tip. Thanks for reporting.


#6

Wow, thanks for a quick fix! So the problem was that the vst3 wrapper reported an unlimited number of midi ins & outs?
How did you figure it out so quickly? I tried finding my own fix with no result - and I have a problem that looks similar in my own code.