Plugin Host on OSX Problem Detecting Some VSTs

I downloaded the demo test application and have been trying to run a scan of my VST folder to add VSTs to the available list. This was crashing when trying to validate some VSTs.

After some testing I found that it succeeds in scanning for my Tassman and MiniMonsta VSTs, but for all Native Instrumets VSTs tried there are problems. It does not find certain ones at all (e.g. Electrik Piano), and crashes when scanning others (e.g. Reaktor or Absynth).

I also tried it on Windows, and the host successfully scanned all my VSTs including the ones above.

Any idea what the problem could be?

Also, a separate problem: When I try to save a patch document in the Plugin Host, the OK button remains disabled and won’t let me save.

  • Chris

Could be all sorts of problems, but you did check that these plugins are universal binaries, right? Other than that, I’d suggest stepping through and watching it trying to load them, to see how far it gets.

They are universal binaries. Bidule and Garage Band can load them.

Note to others who have tried the Plugin Host: What plugins have you been able to load? Are there any you have not been able to load?

When I get time tin In the next few days I’ll step though the code and try to find what the problem is.

  • Chris

Absynth 4 definitely crashes the PluginHost, I can confirm that! Jules, please have a try and download the Absynth Demo from the NI website… It’s only a few clicks away…

The stack trace always shows that it crashed in VSTPluginInstance::getVersion() …

Only a few clicks away, followed by hours and hours of trial-and-error trying to figure out what’s triggering a crash in someone else’s code! Sorry, am too booked-up at the moment to make time for this!

FIY Absynth does not crash any other hosts. So it seems to be your code that crashes, not anybody else’s.

found the bug. in the function VSTPluginInstance::getVersion() the variable v should be a unsigned int, not an int, otherwise the MSB will stay in place all time when performing >> on v and you eventually get a buffer overflow.

Thanks for your time.

Aha! Nice work. I guess the other plugins are ok because they don’t have negative version numbers… Many thanks, zamrate!

well, i don’t know, honestly. but the thing is that in the vst specs it is not really defined what the returned int32’s format should be, so i guess you cannot expect it to have some specific format.

Even though this topic is old, this issue is still prevalent at the tip.

Using the plugin host, the crash/lock-up occurs on load of the dll, at line 429 in juce_VSTPluginFormat.cpp.

The bug that's discussed in this thread (i.e. negative version numbers causing getVersion to enter an infinite loop) is definitely fixed.

If there's still a problem, it must be something else - any clues?

The more I look into it, seems to be a copy-protection related bug (or something)...