Is it possible?

On windows, yes.

Take a look at VST.NET, an open source project that allows you to write VST plugins in any .NET language.

VST.NET provides a framework that simplifies and structures the VST interface allowing you to setup your plugin skeleton in no time.

It also comes with a couple of samples that demonstrate typicall plugin constructs. The delay sample is a working delay complete with parameters, programs and persistence. The Midi Note Mapper demonstrates how to do Midi In/Out and custom UI.

Marc Jacobi

That seems to be for C++ and C only. Where is the Visual Basic part?

That seems to be for C++ and C only. Where is the Visual Basic part?

The VB.NET part is where you write your plugin in. VST.NET Interop is a C++ mixed (both native and managed code in there) assembly. But the Core and Framework assemblies are C#. Your managed plugin assembly would be in VB.NET (or C#, or whatever).

The only time when you get into contact with the Interop assembly is when you rename it to the file name of your plugin. Your managed assembly that contains your plugin will have a .net extension (just before the .dll). So if your plugin is called "MySynth". You rename the Interop dll to MySynth.dll and your own plugin dll to This naming scheme is used for the loader to find and load your managed plugin assembly.

It's fairly easy to setup a a skeleton plugin in VB.NET (or any other .NET language).
You need a public class that implements the IVstPluginCommandStub interface that will be created by the Interop assembly. Derive this public class from the StdPluginCommandStub class that can be found in the Framework (Plugin namespace).
The public PluginCommandStub class you implement overrides a method to create the plugin root class instance. This is the object that implements IVstPlugin. From that point on you have to decide what VST feature you need or want to support. For each feature, the VST.NET Framework declares an interface that you can implement.

Check out the codeplex site home page, there are links there with additional information. Especially check out the VST Resources page, it links to a couple of blog posts I wrote to explain certain aspects further.

Do not hestate to drop questions you might have on the Discussion List on the codeplex site.
There everyone can benifit from the answers.

So, to recap. Yes VST.NET uses C/C++ but you dont need to touch that or even know how it works (although the source code is available) and the Core and Framework are written in C# but that is exposed as managed class, so there should be no problem consuming those in VB.NET.

VST.NET now has a VB.NET sample. The Delay sample is now available in C# and VB.NET.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.