943,936 Members | Top Members by Rank

Ad:
  • VB.NET Discussion Thread
  • Unsolved
  • Views: 5234
  • VB.NET RSS
Jul 4th, 2008
0

VST programming in Visual Basic

Expand Post »
Is it possible?
Reputation Points: 118
Solved Threads: 30
Posting Shark
linux is offline Offline
931 posts
since Aug 2006
Jul 25th, 2008
0

Re: VST programming in Visual Basic

On windows, yes.

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

http://www.codeplex.com/vstnet

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.

Grtx,
Marc Jacobi
Reputation Points: 10
Solved Threads: 0
Newbie Poster
obiwanjacobi is offline Offline
4 posts
since Jul 2008
Jul 25th, 2008
0

Re: VST programming in Visual Basic

That seems to be for C++ and C only. Where is the Visual Basic part?
Reputation Points: 118
Solved Threads: 30
Posting Shark
linux is offline Offline
931 posts
since Aug 2006
Jul 26th, 2008
0

Re: VST programming in Visual Basic

Click to Expand / Collapse  Quote originally posted by linux ...
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 MySynth.net.dll. 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.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
obiwanjacobi is offline Offline
4 posts
since Jul 2008
Jun 5th, 2009
0

Re: VST programming in Visual Basic

VST.NET now has a VB.NET sample. The Delay sample is now available in C# and VB.NET.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
obiwanjacobi is offline Offline
4 posts
since Jul 2008

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC