Giter VIP home page Giter VIP logo

Comments (9)

obiwanjacobi avatar obiwanjacobi commented on July 30, 2024 2

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.

obiwanjacobi avatar obiwanjacobi commented on July 30, 2024

[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.

dansted avatar dansted commented on July 30, 2024

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".
1

The "vsth-pw" plugin at the last line is the only plugin Cubase found in "C:\Users\mid\Downloads\VST_DLL_TESTS".
2

from vst.net.

obiwanjacobi avatar obiwanjacobi commented on July 30, 2024

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.

dansted avatar dansted commented on July 30, 2024

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.

dansted avatar dansted commented on July 30, 2024

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.

dansted avatar dansted commented on July 30, 2024

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.

dansted avatar dansted commented on July 30, 2024

Thank you Obiwanjacobi for all your help :)

from vst.net.

obiwanjacobi avatar obiwanjacobi commented on July 30, 2024

No problem.
Have fun with your project.

from vst.net.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.