Writing a VST plugin Host program - a video tutorial
-
- KVRer
- Topic Starter
- 9 posts since 27 Apr, 2022
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.
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.
-
- KVRist
- 89 posts since 21 Jul, 2022
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.
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.
-
- KVRer
- Topic Starter
- 9 posts since 27 Apr, 2022
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.
-
- KVRist
- 89 posts since 21 Jul, 2022
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.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.
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.
-
- KVRist
- 89 posts since 21 Jul, 2022
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.
- u-he
- 28108 posts since 8 Aug, 2002 from Berlin
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").
... 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").
-
- KVRist
- 32 posts since 21 Sep, 2021
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.
-
- KVRist
- 89 posts since 21 Jul, 2022
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.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").
- KVRAF
- 15331 posts since 8 Mar, 2005 from Utrecht, Holland
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.
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.
My MusicCalc is served over https!!
My MusicCalc is served over https!!
- u-he
- 28108 posts since 8 Aug, 2002 from Berlin
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.
-
- KVRist
- 89 posts since 21 Jul, 2022
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?
- u-he
- 28108 posts since 8 Aug, 2002 from Berlin
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.
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.
-
- KVRAF
- 2194 posts since 18 Mar, 2006 from Plymouth, UK
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.
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.
-
- KVRist
- 89 posts since 21 Jul, 2022
Ok! thanks for the clarification.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.
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.