Windows, C++ using VST3 SDK, not .NET

TribbleZA

Honorary Master
Joined
Feb 3, 2014
Messages
34,878
Reaction score
19,197
Location
Pretoria
The developer of one of the software products I represent is working on integrating VST3 plugins into their Audio Engine. He is using Visual Studio and native C++ and it has to run on Windows.

He wants to use the Steinberg VST3 SDK but is struggling to find information on how to pass audio to/from the VST plugin once it's loaded. Is there anyone who can help out with information or point us in the direction of good resources ?
 
Have you tried ChatGPT? A simple prompt the gave the code needed...
ChatGPT is able to help a bit - mainly with docs and tutorials. Even asking questions on Github relies on asking the questions correctly. I have run your question and will link him to the answer.

I had suggested he try Github's Copilot (https://github.com/copilot/share/c063420a-48c0-8cb4-9841-3e48c0246827) and he will do it. But we were hoping that we could find someone with actual experience as not everything works as expected.

He finds enough info about making a plug-in, but he needs to use VST to create a host app, as that is what the AudioEngine is. So I was hoping to find someone who has made a host app before.

One of the really awesome features of his existing playout system is that the AudioEngine runs outside of the application as a service. We are trying to keep it that way. But now, in the cloud, it needs to be a host app. I don't fully understand the intricasies or I would be helping him 🙂
 
Upvote 0
The developer of one of the software products I represent is working on integrating VST3 plugins into their Audio Engine. He is using Visual Studio and native C++ and it has to run on Windows.

He wants to use the Steinberg VST3 SDK but is struggling to find information on how to pass audio to/from the VST plugin once it's loaded. Is there anyone who can help out with information or point us in the direction of good resources ?
What he wants is not a simple task and definitely not something ChatGPT is going to give you. Your client's application is going to have to implement IComponent and IAudioProcessor interfaces. He will then need to do custom audio routing within his application to pass it through the VST interface. IAudioProcessor has a process() method that takes a ProcessData structure containing the audio buffers, parameter changes, and event data.

Your client will also need to handle the plugin's lifecycle properly (initialize, setupProcessing, setActive, etc.) and ensure proper buffer management with matching sample rates and channel configurations.

I've written a few VST's in the past, but using existing hosts.... thankfully.

Another option is JUCE.


He may want to look at CLAP as well, its a new plugin architecture.
 
Last edited:
Upvote 0
What he wants is not a simple task and definitely not something ChatGPT is going to give you. Your client's application is going to have to implement IComponent and IAudioProcessor interfaces. He will then need to do custom audio routing within his application to pass it through the VST interface. IAudioProcessor has a process() method that takes a ProcessData structure containing the audio buffers, parameter changes, and event data.

Your client will also need to handle the plugin's lifecycle properly (initialize, setupProcessing, setActive, etc.) and ensure proper buffer management with matching sample rates and channel configurations.

I've written a few VST's in the past, but using existing hosts.... thankfully.

Another option is JUCE.


He may want to look at CLAP as well, its a new plugin architecture.
I wouldn't throw out ChatGPT and related things so quickly...
 
Upvote 0
What he wants is not a simple task and definitely not something ChatGPT is going to give you. Your client's application is going to have to implement IComponent and IAudioProcessor interfaces. He will then need to do custom audio routing within his application to pass it through the VST interface. IAudioProcessor has a process() method that takes a ProcessData structure containing the audio buffers, parameter changes, and event data.

Your client will also need to handle the plugin's lifecycle properly (initialize, setupProcessing, setActive, etc.) and ensure proper buffer management with matching sample rates and channel configurations.

I've written a few VST's in the past, but using existing hosts.... thankfully.

Another option is JUCE.


He may want to look at CLAP as well, its a new plugin architecture.
Thank you so much. I have passed this onto him and linked him to the thread too. I really appreciate your answer and the links will be useful
 
Upvote 0
What he wants is not a simple task and definitely not something ChatGPT is going to give you. Your client's application is going to have to implement IComponent and IAudioProcessor interfaces. He will then need to do custom audio routing within his application to pass it through the VST interface. IAudioProcessor has a process() method that takes a ProcessData structure containing the audio buffers, parameter changes, and event data.

Your client will also need to handle the plugin's lifecycle properly (initialize, setupProcessing, setActive, etc.) and ensure proper buffer management with matching sample rates and channel configurations.

I've written a few VST's in the past, but using existing hosts.... thankfully.

Another option is JUCE.


He may want to look at CLAP as well, its a new plugin architecture.
@TribbleZA

CLAP have already provided a trivial implementation of a host, so he could technically implement the host for CLAP support and then write his plugin using CLAP over VST3.


Here is a VST3 minimal reference:


Another option is he can look at a reference VST3 existing host application:



4000 +- lines of C++.

Enjoy.
 
Last edited:
Upvote 0
@TribbleZA

CLAP have already provided a trivial implementation of a host, so he could technically implement the host for CLAP support and then write his plugin using CLAP over VST3.


Here is a VST3 minimal reference:


Another option is he can look at a reference VST3 existing host application:

Thank you so much - that is going to be very helpful.
I will pass these on to him. I really appreciate your help on this.
 
Upvote 0
Thank you so much - that is going to be very helpful.
I will pass these on to him. I really appreciate your help on this.
No problem, I've pondered about writing a DAW a few times. But yeah, it's one of those things that sounds great in the beginning until you start.
 
Upvote 0
No problem, I've pondered about writing a DAW a few times. But yeah, it's one of those things that sounds great in the beginning until you start.
Yes from what I have seen of the struggles involved, it is a complex thing to do. His existing program is amazing and stable and can do so many things. Most of my stations use it as their playout software. But moving all that into "the cloud" has been very challenging. I really admire him as he as managed so much without the experience of web development. So the links you shared will hopefully help him go that little bit further, allowing him to complete his creation. This is now the 4th version of his program he is creating. He has refreshed the UI from the base program, included midi control, made a virtual console, made a stand-alone or podcast ready version and now building the web version with cloud storage.

I have suggested he create an account here so that he can follow the thread and perhaps ask more specific questions. I assume he will have more challenges as he progresses.
 
Upvote 0
Yes from what I have seen of the struggles involved, it is a complex thing to do. His existing program is amazing and stable and can do so many things. Most of my stations use it as their playout software. But moving all that into "the cloud" has been very challenging. I really admire him as he as managed so much without the experience of web development. So the links you shared will hopefully help him go that little bit further, allowing him to complete his creation. This is now the 4th version of his program he is creating. He has refreshed the UI from the base program, included midi control, made a virtual console, made a stand-alone or podcast ready version and now building the web version with cloud storage.

I have suggested he create an account here so that he can follow the thread and perhaps ask more specific questions. I assume he will have more challenges as he progresses.
I am more active on the kvraudio forums, for good audio engineering/dsp programming he should definitely rather frequent there.
 
Upvote 0
Top
Sign up to the MyBroadband newsletter
X