This project has moved. For the latest updates, please go here.

Using the VST.NET on .NET 3.0 or 2.0

Feb 16, 2009 at 3:58 PM
Edited Feb 16, 2009 at 4:41 PM
I have successfully created my own plugins based on VST.NET and they run fine on a Windows XP system with .NET 3.5 installed. But I cannot get them, or the sample effect (Jacobi.Vst.Samples.Delay), to work on a Windows 2000 machine that has only .NET 3.0 or 2.0 installed.

Has anyone else had problems deploying their plugins on other systems than Windows XP with .NET 3.5?

I have followed the instructions, putting the requried libraries (Jacobi.Vst.Core.dll and Jacobi.Vst.Framework.dll) in the same folder as my plugin (renamed to plugin name + .net.vstdll) and the interop library (renamed to plugin name + .dll).
But none of the programs I have tried (SoundForge, Vegas, Samplitude, Fruity Loops) can load it. Either they crash or I get the message "Run a DLL as an App has encountered a problem...."

Coordinator
Feb 16, 2009 at 6:33 PM
All VST.NET projects (all samples and Core, Interop and Framework) target the .NET Framework 2.0.

My guess that the .NET framework is not the problem, but perhaps Windows 2000 is?
I never tested on Win2000. I run on WinXP.

Thats a weird error message to get from a VST host, isn't it?

Would it be an idea if you build the Interop assembly yourself and put message boxes in the VSTPluginMain function?
(provided you know enough C++ to get it working. Hint: take a look at the Utils class)

Then you would have an idea how far code execution actually comes...

Hope it helps?
Feb 17, 2009 at 12:40 AM
Thank you for your suggestions.
The obvious test was to try and run it on a Windows XP machine with .NET 3.0. I tried it on my own laptop which I downgraded to .NET 3.0 and a friend's system that has always been running .NET 3.0. On neither system it worked. Buzz can load the plugin but there is no sound and no interface and FruityLoops crashes.
I wouldn't mind trying to recompile the Interop lib, but this must be a problem that other people have too if they distribute their plugins to platforms with .NET lower than 3.5.
Have you tested it yourself on a .net 2.0 or 3.0 platform?

thanks
Thor Asmund
Coordinator
Feb 17, 2009 at 11:13 AM
Edited Feb 17, 2009 at 11:17 AM
You're right, Thor.

There is one dependency that I totaly overlooked. Its the CRT dependency of the Interop assembly. Interop is built with Vs2008 and that requires the Microsoft.VC90.CRT package.
I ran a simple test on a WinXP/.NET 2.0 VPC (this is what I'm targeting) trying to start the host sample application (after copying Interop and Core ;-). I saw events in the System event log that tells you Microsoft.VC90.CRT is not found. Can you confirm that?

So your quick fix will probably be to install the Microsoft.VC90.CRT package (redistributable). But I have not tested that yet.
Here are some helpful links:
http://blogs.msdn.com/aymans/archive/2006/04/04/568466.aspx
http://msdn.microsoft.com/en-us/ms235291(VS.80).aspx

Meanwhile I will look into how I will solve this for future releases of VST.NET.

Can you tell me if your system (win2000 and Xp) has the following folder?
%WINDOWS%\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd

The WinSxS is the target folder where these dependencies are installed these days. This is the only CRT I could find on my WinXp/NET2.0 machine. But as you can see, its from the previous version (Vs2005)...

Thanx,
Marc
Coordinator
Feb 17, 2009 at 9:11 PM
Edited Feb 17, 2009 at 9:13 PM
There seems no way around the VC90.CRT when building a mixed language C++ assembly.

So I've tried to install the VC90.CRT on my test machine and everything worked.
I used the redistributable package that was on my development machine.
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\vcredist_x86\vcredist_x86.exe

Moved that over to the test machine. Run the installer. Run the Host sample and Bingo!

Hope it works for you to.
Feb 19, 2009 at 4:50 AM
Edited Feb 19, 2009 at 6:48 AM
Hello again,
I checked the system log, and you were right! WinSxS reports that the VC90.CRT is missing.

I looked in the WinSxS directory on my XP machine with .NET 3.0 and the following subdirectory was present:
   x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca

I will now try and install the VC90.CRT distributable.
Feb 19, 2009 at 4:59 AM
I installed the VC++ 2008 redistributable from this link, and all my VST.NET plugins now work!
http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en

Thanks a lot for the help!

cheers,
Thor


Feb 19, 2009 at 11:56 AM
Just FYI, my friend who has the Win 2000 .NET 2.0 machine still cannot get the plugins to work. The aforementioned programs crash with a null pointer reference when you start adjusting the parameters. The plugin can be loaded, but nothing happens when you send sound through the plugin. There is no information in the system log, he said.

cheers,
Thor
Coordinator
Feb 19, 2009 at 6:54 PM
Does it bring up a "VST.NET Error" message box with the NullReferenceException? If so, could you ask him to copy the message (press Ctrl+Shift+C when the message box is up) and post it into this thread?

Thanx,
Marc
Feb 20, 2009 at 10:34 AM
He only got this message, which doesn't say much
http://www.robotplanet.dk/f/other/jacobidelaycrash.gif

When I have some time I might try and install 2000 to see if I can reproduce the error and maybe get some more information.

cheers,
Thor


Coordinator
Feb 20, 2009 at 1:52 PM
The error message tells about a log. Perhaps you can post that log?
Feb 23, 2009 at 1:00 PM
I think this is the kind of standard error message you get when programs crash on Windows 2000. Whether an actual log file is created I don't know. I wouldn't know where to look for it. There was no information in the system log.
Coordinator
Oct 21, 2010 at 8:45 AM
This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.