Plugin loads on my computer, but no ones else's

Hello, 

I am experiencing sort of an odd problem.  I just finished writing a plugin, and sent it to some freinds to test it out.  I am able to load the plug in in multiple DAWs (Cubase 8 32 bit, and 64 bit (w bridge), on PC, Ableton Live 9 32 bit on PC, and MAC, FL Studio 32 bit, and 64 bit on PC), however no one else that I sent the plugin to has been able to open it.  I shared it with them via a dropbox link.  

So far people have tried to open it in Ableton 9 32 bit on MAC with no luck, and Cubase 7 on PC with no luck.

Does anyone have any idea sa to what could cause this???

 

Thanks in advance, 

Grat

Well the first thing I’ll mention is that you must have a JUCE license to do that – otherwise you have to post the source code and make your plugin open source.

The main reason they probably can’t load the plugin is because they’re running 64 bit hosts which are looking for a 64 bit plugin. You’ve indicated you built it as a 32 bit version.

Rail

First, let me say that I have no intention of using this plugin for commercial use.  I was unaware that I needed to purchase a license to merely share a plugin with a freind.

second, I plan on posting the source once I know it is working.

And, no, they are not running 64 bit hosts.  They are running 32 bit hosts.

Is it possible that its something in my build settings?  Its very odd to me that I am able to load it into so many different hosts, yet no one else can..

UPDATE: One friend was able to load it into VSTHost, but thats it..

Grat

So you shared your plug-in by just giving the dll, right? The problem is probably missing libraries on your friend's computers...

You can use a tool like this to check your plug-in's dependencies on your friend's computer and see the expected libraries that are not present : http://www.dependencywalker.com/

 

 

Awesome! This looks really helpful!! Thank you!!  And yes, I did share a dll file with him.

 Im experiencing the same thing with AU (.component), and .vst (however, same as before, I am still able to load them on my own computer no problem).. however, it appears there are similar tools for OS X as well.. 

 

Thanks,  :)

 

Grat

Hi Gratbodkin, 

You need to make sure you are building in Release mode as well. For Windows also make sure that you are statically linking the runtime (see for example https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx ). 

Fabian

1 Like

Would that be accomplished by setting the runtime library setting in the Introjucer for my Visual Studio build to "Use Static Runtime"?

Also, 

I have one friend that was able to load the plugin in Reaper on his Windows machine, but am still having issues with people being able to load it on MAC machines.

I am able to load it just fine on my own MAC (both the AU, and the VST), however, no one else can even get it to show up in their host programs on MAC....weird..

I have been compiling in release mode with the OSX archetecture setting at Universal Binary (32/64-bit).

Any advice for compiling in XCode?

 

Thanks

Well, I would say if your friend(s) is e.g. a member of your band or if you and your friends have formed a partnership for, let's say, "Developing and testing outstanding plug-ins" it would count as internal usage and hence not violate the GNU license.

For Mac I would probably check OSX Compatability Version in Introducer. If that is set to a higher OSX version that your friends are running then my guess is that they won't work. I think the default setting will use the value from the OSX Base SDK Version which by default will depend on what version of Xcode you are running and what the latest OSX SDK contained in that version is.

Failing that auval is a very useful tool on mac you could get your friends to run auval, try:

auval -32 -a


This should list all available 32bit AudioUnits.

Get them to copy the output of the result of that command to see if your plugin is listed.

For some hosts, I think of the top of my head Ableton and Studio One, I remember finding that they build the list of avaliable plugins from the output of those that are 64bit regardless of which architecture you are running!. I suspect this is not the problem but auval is a handy tool on mac.
 

What if I have built in release mode and changed the compiling to use static library.

I am having the same issue with FL Studio. It says the plugin must be validated is this because I need to upgrade to the indie license?

Hey,

I’ve the same problem. I’m developing an audio plugin with Juce v.5. The VST3 plugin I’m creating works on my machine (windows) and on the MacOS of a friend. But it does not work on other Windows machines.

I’ve tried to use the VST3 on my Windows surface tablet with the same DAW and it’s also not working. It’s also not working in a fresh Windows VM. So I assume, the Windows VST3 only works on my system where I’ve compiled the file. The DAW log says:

VST3 Load FAILED on C:\Program Files\Common Files\VST3\...
VST3 does not return any valid descriptions. 

Ok, from the tutorial I’ve learned:

I’ve switched the setting “Runtime Library” from “Default (Use DLL runtime)” to “Use static runtime” --> yay now it’s loading on my tablet and in the VM. But the tutorial says, that way is now “deprecated”. So, what is the best way to go?

Btw, installing https://aka.ms/vs/16/release/VC_redist.x64.exe does not solve the problem for the VST version with dynamic linking - why is that?

Back in 2017 a Windows 10 update changed how many plugins using static linked runtime could run at once (64, I think). In response Juce changed the default behaviour to “use DLL runtime”.

However there was a big uproar to Microsoft’s change, and they back pedalled and increased the FLS slot limit to something like 4000, so it is no longer a problem to use the “statically linked runtime” setting like you have done.

In time, as people upgrade to Windows 10, it will be safe to build plugins that use dynamically linked runtime, but if your plugin needs to support Win 8 or earlier then “statically linked runtime” is the appropriate setting IMO.

You can follow the original announcement and back pedal in this thread.

1 Like

Thank you, so I simply can use the “static runtime” and it will be fine :slight_smile:

But one thing I don’t understand is: after I’ve installed this from Microsoft VC_redist.x64.exe (from https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) on my tablet, the VST3 with “dynamic linking” is still not working, not even after a restart. I thought it should work after the installation? That’s how I understood it.

That’s my understanding too. I’m a Mac user, so not super knowledgeable in this area. You mentioned tablet - maybe that has something to do with it? Maybe need the ARM64 redistributable instead of x64?

But if you’re running up-to-date Win 10 it should work without needing to install anything. Unless tablets play by different rules.

The surface pro tablet I have has a “regular” x64 CPU, that’s the cool thing about it. I can do everything I could do with a regular computer :slight_smile: but yeah, nowadays I’m not using it oftern and probably not all updates are installed.

However, if I just can use that static linking and it works without restrictions, that’s good enough then. Maybe the warning in the tutorial should be removed then? Can someone from Juce confirm this? :slight_smile:

Thanks and good evening