Writing a VST plugin Host program - a video tutorial

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

I made some videos about how to write a VST host in C++ (and in part in C#). If interested see here:
https://www.youtube.com/@audio_programming101/playlists
I call them tutorials and I took a "from the ground up" approach. Source code available.
Since I am a self taught audio programmer, not an expert, I would welcome constructive criticism from experts on this forum.

Post

You are probably the first to make videos about making a host, so that will probably help someone. But do you have a goal? Or what do you want, and what are your personal interests in this?

And as you use the VSTSDK2.4 this is probably on the educational side. I good idea would be to change this in further videos, so people can actually use it for more than education.

There are several options for not using their stuff for making VST2 plugs and hosts. Right now it's a dead end. But the VST2 ABI will live on forever as it can't be stopped.

Post

xos thanks for your comment. These videos grew out of a hobby project; I was simply curious about how plugins work and how I could manipulate them. I am also a control freak and that is why I decided not to use any frameworks. You are right that VST v.2.4. is no longer supported by Steinberg and they won't authorise VST2 plugins, so VST2 *plugin* development would be a waste of time. But building a *host* could still make sense, as there are still many VST2 plugins in circulation and fun to work with. (e.g. the Yamaha S-YXG50 plugin). At any rate, the purpose of these videos, I guess, is to pass on knowledge and let gain experience with the basics before tackling more advanced and more up-to-date tasks. Commercial gain in is entirely out of scope for me. The emphasis is on having fun. If time permits I will explore topics that have more relevance today.

Post

picman wrote: Sun Oct 29, 2023 12:41 pm xos thanks for your comment. These videos grew out of a hobby project; I was simply curious about how plugins work and how I could manipulate them. I am also a control freak and that is why I decided not to use any frameworks. You are right that VST v.2.4. is no longer supported by Steinberg and they won't authorise VST2 plugins, so VST2 *plugin* development would be a waste of time. But building a *host* could still make sense, as there are still many VST2 plugins in circulation and fun to work with. (e.g. the Yamaha S-YXG50 plugin). At any rate, the purpose of these videos, I guess, is to pass on knowledge and let gain experience with the basics before tackling more advanced and more up-to-date tasks. Commercial gain in is entirely out of scope for me. The emphasis is on having fun. If time permits I will explore topics that have more relevance today.
Yes, If your focus is to spread basic knowledge about it and have some fun, then that's a good idea. To my knowledge there is almost no information on the VST2 format itself. I think there is a lot that can be done with hosts that haven't been done, so your work can maybe inspire someone to make something, even if it's few people.

Something that I would like to see, is that someone made a host were you can patch together synth plugs and effects. There is several of them, but also a simple timeline and transport comptrollers. So people can make different note editors as plugins. Today this is something that almost doesn't exists. It could be used for some research to make sequencer plugins and make support to make it work.

Post

Perhaps look at implementing CLAP in the host - all open-source, and a far better choice moving forward.

Post

koalaboy wrote: Tue Oct 31, 2023 10:59 am Perhaps look at implementing CLAP in the host - all open-source, and a far better choice moving forward.
Yes CLAP is a good format, but few use it. And there is some programs that will never support it, and primarily it's programs that has dropped VST2 support. And JUCE will probably never support it directly, as it makes support for the other formats less valuable.

So a combination in a host for the VST2 ABI and CLAP support will probably give a DAW a head start. And CLAP plugs can be loaded as a VST3 plug, so you don't need to care about VST3 at all. You can say that CLAP is very similar to VST3 but done right, as it's far superior as a plugin format.

But they need to change the name of CLAP also to CAP or something else, if they want to be taken seriously.

Post

Not trying to piss anyone off, but...

... there is no legal way currently to publish a VST2 host or plug-in unless you have a contract from 7 (?) years ago and you never upgraded your VST3 SDK past that. That most likely includes tutorial videos as well, i.e. no matter how you present your derivative work.

Only because Steinberg is not enforcing their own agreements in every case (they're known to do on Github, for instance), does not mean they won't (or that one should infringe them "just because").

Post

I also find it not interesting to have a tutorial on writing a VST2 host because I removed all VST2 plugins from my machine, except if there is no other format available. VST2 is a zombie.

Post

Urs wrote: Tue Oct 31, 2023 1:23 pm Not trying to piss anyone off, but...

... there is no legal way currently to publish a VST2 host or plug-in unless you have a contract from 7 (?) years ago and you never upgraded your VST3 SDK past that. That most likely includes tutorial videos as well, i.e. no matter how you present your derivative work.

Only because Steinberg is not enforcing their own agreements in every case (they're known to do on Github, for instance), does not mean they won't (or that one should infringe them "just because").
Then you need to explain how Google can use the java API. The U.S. Supreme Court declared Google's use of the Java APIs as fair use.

Post

Easy. No one needs an explicit license to "use the java api". I've been doing that since 2006. All java programs do that.
Bit me thinks that situation is a bit more complicated... Installing a JRE or implementing a JDK is different.
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

Hehehe, yeah, I did not came to argue, I just happened to surf by and offer a compressed summary of a few years of headaches - which I do not wish on anyone else.

Post

Urs wrote: Tue Oct 31, 2023 5:50 pm Hehehe, yeah, I did not came to argue, I just happened to surf by and offer a compressed summary of a few years of headaches - which I do not wish on anyone else.
Worth noting, it's ok to use their trademark without any agreements, as it's 'normative fair use'...
https://youtu.be/JaU7E1AeJI4?si=TKFz8XV_J9F_c5Cq

With all respect, can you describe what exactly what that headache is, instead of just spreading FUD?

Post

The headache is, there's no way to download the VST 2.4 SDK from Steinberg. You can probably get it from elsewhere, but if it's the actual SDK, you'll see the license in it clearly does not permit such distribution. Furthermore the license clearly says that a signed contract between developer and Steinberg is needed in order publish a plug-in or host made with it.

Additionally, even if you have such a written and signed contract, it is null and void if you wish to publish a commercial VST3 plug-in with the current VST3 SDK, as per its license agreement.

While it may be considered fair use and all that to educate people on the matter of writing software with the SDK, I'm quite certain fair use does not apply to actually publishing and distributing any such software, free or commercial. Not sure where we stand with things when someone doesn't wish to do any of this. I for one make a living from distributing plug-ins, so I guess you can see how headaches come about and are no such thing as FUD.

Post

Urs is absolutely correct.

As someone who works in a company that deals extensively around licensing.. software licenses IN NO WAY come under fair use.

You can do whatever you want for your own research on your own machine. You could put up a github repo and tell people they have to build it themselves. However, the second you distribute, or go further to sell, you're breaking the license terms (or don't have a license in which case it's even worse).

By all means learn using VST2 or whatever - the plugin API/ABI is a means to an end, and the core code is what's important. If you then want to make more of it, port it to VST3 and/or CLAP, learn a bit more on the way, and find success.

If you want to be (or learn to be) a developer, don't start by screwing yourself with license infringement.

Post

Urs wrote: Sun Dec 03, 2023 11:58 am The headache is, there's no way to download the VST 2.4 SDK from Steinberg. You can probably get it from elsewhere, but if it's the actual SDK, you'll see the license in it clearly does not permit such distribution. Furthermore the license clearly says that a signed contract between developer and Steinberg is needed in order publish a plug-in or host made with it.

Additionally, even if you have such a written and signed contract, it is null and void if you wish to publish a commercial VST3 plug-in with the current VST3 SDK, as per its license agreement.

While it may be considered fair use and all that to educate people on the matter of writing software with the SDK, I'm quite certain fair use does not apply to actually publishing and distributing any such software, free or commercial. Not sure where we stand with things when someone doesn't wish to do any of this. I for one make a living from distributing plug-ins, so I guess you can see how headaches come about and are no such thing as FUD.
Ok! thanks for the clarification.

Copyright law clearly makes it possible to use others trademarks if it's falling under 'normative fair use'. So that's not the issue. Ever wondered why companies strait out calls others trademarks? It's to make sure that it falls under 'normative fair use' in copyright law so they can make use of other companies trademarks.

It's not prohibited to make plugins that make use of the VST2 interface without license agreements. It's not prohibited either to use header-files, as it's proven that you can't copyright them in court. Nor is it prohibited to describe that the plug uses the interface using trademark names, as it's falling under 'normative fair use' under copyright law. You can use others trademarks as long as you don't claim that it's our trademark or creating doubt about it.

As to what you are saying, the problem runs down to making VST3 plugs after signing agreements, that is necessary to create VST3 plugs that involves using their code in your product and not just use header files if you want to make VST3 plugins.

To be clear. What I want to call out, is that it's possible to use others trademarks do describe what your product if used for.

Post Reply

Return to “DSP and Plugin Development”