Comments (9)
Argh, that damn C++ redistributable. I always forget about that - so sorry.
So glad it all works now.
I don't think there is any way around that. ILMerge (and the likes) only works on .NET assemblies. C++ redistributables are native code.
BTW: You can attach the Visual Studio debugger to any running process - no need to add fake console apps.
from vst.net.
[Started at:
https://stackoverflow.com/questions/55768519/how-to-create-vst-plugins-with-c-sharp-vst-net-framework
After trying a couple of things we went back to a known working plugin: the Delay plugin sample]
So you've build the Delay sample. It is important to that all .dlls that were built stay together. If you look at the post build events of the Delay sample project, you'll see copy instructions to move and rename the necessary assemblies.
Also it would be interesting to know what actually goes wrong when trying to load the plugin in CuBase. If there are any messages you could share. Otherwise you could try to connect the Visual Studio Debugger by starting Cubase, selecting Attach... from the VS-Debug menu (with the delay sample project loaded) and then trying to open the plugin in CuBase.
(I have to get into it myself, for I have not touched this code in 5 years ;-)
from vst.net.
Cubase doesn't crash or anything, it just doesn't display the plugin when searching the specific folder.
It displays all other plugins. I copied all the build dlls to "C:\Users\mid\Downloads\VST_DLL_TESTS" and renamed Interop dll to "MyAudioVST.dll".
The "vsth-pw" plugin at the last line is the only plugin Cubase found in "C:\Users\mid\Downloads\VST_DLL_TESTS".
from vst.net.
If you could set a breakpoint in your plugin root class' constructor - we at least will know if it is loading.
If it doesn't hit that breakpoint, you could try opening the interop project (C++) and set a breakpoint in VSTPluginMain (you will need to build a debug version of Jacobi.Vst.Interop)
https://github.com/obiwanjacobi/vst.net/blob/master/Source/Code/Jacobi.Vst.Interop/Jacobi.Vst.Interop.cpp
That is the entry point that should be called by the DAW/host.
You could also try to add a CuBase.exe.config file right next to where cubase.exe is installed (assuming the cubase exe is called CuBase.exe) and see if you can get it to trace any diagnostic messages. Use this as template: https://github.com/obiwanjacobi/vst.net/blob/master/Source/Code/Jacobi.Vst.Interop/app.config
and replace '[PluginName]' with 'MyAudioVST'...
You can even add/change event listeners to route these diagnostic messages - it uses the standard .NET TraceSource class.
I am totally in the dark on what might go wrong, so we're trying to see how far it gets...
If you can think of anything additional we could try, please share.
I seem to remember that CuBase specifically is very peculiar with VST plugins (which is odd because both are from Steinberg)...
from vst.net.
I dont know if I've done it correctly, but I didn't hit any breakpoint.
I couldn't start in debug mode from Visual Studio because it is of type "class library". After I set a breakpoint in the constructor of my plugin I added a new
console application in order to be able to do so. I Attached Cubase to process in Visual Studio and changed Cubase VST look-up folder to my projects bin/debug, copied a Interop dll to the folder and renamed it and run debug. Then I updated VST's in Cubase but no breakpoint was hit.
from vst.net.
I've re-installed my PC, upgraded from Visual Studio 2017 to 2019 and created a new test project.
Now if I build a x64 version of the plugin it will open in a x64 VSTHost.
But if I install VST.NET x86 version from NuGet, change platform in configuration manager to x86 and build it. This version won't be listed in Cubase's VST plugin-list.
from vst.net.
It worked!!
The only thing I needed to do after re-install was to install "vcredist_x86.exe".
Is it possible to somehow merge the dlls to a single useable vst dll.
I've tried with costura and ILMerge. They merge alright but then the vst becomes unuseable.
from vst.net.
Thank you Obiwanjacobi for all your help :)
from vst.net.
No problem.
Have fun with your project.
from vst.net.
Related Issues (20)
- Single file deployment HOT 3
- vstnet publish fails when trying to use unexisting path HOT 8
- Interop code in C# HOT 3
- vst.net plugin throws ArgumentException when receiving MIDI events HOT 1
- How to use locally compiled version of Jacobi.Vst.Plugin.Interop HOT 3
- Could not find nuget package location. HOT 5
- `Jacobi.Vst.Samples.Host` error. HOT 5
- How Jacobi.Vst.Host.Interop cancels its dependence on `WinForm`? HOT 6
- Problem loading secondary dependencies from deploy/bin HOT 2
- TimeInfo properties not changing specifically in FL Studio HOT 3
- compiling issues HOT 3
- unhandled exception from Jacobi.Vst.Host.Interop on ProcessReplacing HOT 1
- Loading a managed plugin in a managed host gives error HOT 1
- Discord invite link is stale HOT 2
- .NET6 Support HOT 2
- AudioProcessor in Template does not deploy HOT 1
- Jacobi.Vst.Samples.Host loading reacomp-standalone.dll results in NullReferenceException at HostCommandStub.HostCommands.GetCurrentPluginID() Line 203 HOT 3
- PluginCommandStub.Commands.EditorGetRect(out Rectangle wndRect) seems to always return Rect(X=0, Y=0, Width=400, Height=300) HOT 2
- Sending several simultaneous events to VST HOT 4
- Vst.net compatibility problem with Cantabile? HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vst.net.