VST3 SDK fun

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

What Steinberg advertises:
"We have redesigned the API to make it not only far easier and more reliable for developers to work with"
What the fact is:
class IReference
...
class ReferenceCounted : public IReference
...
using NonAtomicReferenceCounted = ReferenceCounted<int32_t>
...
class CBaseObject : public NonAtomicReferenceCounted
...
class CView : public CBaseObject
...
class CControl : public CView, public IFocusDrawing, public IDependency
...
class CParamDisplay : public CControl
...
class COptionMenu : public CParamDisplay
...
class myCOptionMenu : public COptionMenu
:lol:

Post

Over and over again you confuse API with SDK. These are not a part of the API, these are classes from VSTGUI. You are free not to use them.

Post

But he likes to complain during his vendetta against Steinberg. Not the first post and surely not the last. I'd wish for him to just be more productive instead of doing this here.

Post

I've spent over 3 months now only with digging into the VST3 SDK. Porting complex vst 2.4 projects is a nightmare.
There is no proper documentation and you need hours to find out the most trivial stuff.
I am not running a vendetta. But i am annoyed that i wasted so many hours of work with this

Post

i'm a hobbyist, never programmed any com stuff, and i could figure it out in just a few days of messing around.. you can ignore most of the sdk itself, if you use only the lowest level api,..

my vst3 wrapper/abstraction:
https://github.com/skei/kode/tree/maste ... lugin/vst3

Post

Can you give some examples what's a nightmare in porting vst 2.4 projects?
I wrote ReFined the first time (moved it to JUCE later) only using the VST3 SDK and hadn't had any bigger problems. Except that I didn't get the AU wrapper to work but this probably isn't what you're trying to accomplish.

If you simply try to also create VST3 versions of your plugins and don't want to use anything like JUCE or IPlug I would try to write a wrapper that takes your VST2 code and wraps it into a VST3 plugin. Except for the GUI this should be rather easy.

Post

Some examples of my amusement during the last months:

The fun started with CMake. Which is necessary now.
It failed and didn't create a project. I found out that it failed since i installed it on fresh computer C:\Program Files\Common Files\VST3 did not exist.
The who SDK strcuture is very cluttered and the sourcecodes are distributed all over the place. It took me some time to clean up the project.

Finally i was able to cretae a project with SDK 3.6.10 (The last one which supports vst 2.4).
The compiler didn't spit out a working vst 2.4 example plugin and a VST3 plugin.
I wasted several days to find out that it works with the previous 3.6.9.

Then i needed to modify 3.6.9 to add VST 2.4 support. After the project worked i found out that i need to use a singlecomponent , since GUI is strictly separated. Started again with the againsimple example. A documemtation was non-existend and it took long to find out the most trivial stuff.

On the Mac the SDK did not create a working audiounit. Some sourcecodes were missing. I had to find them on the web first.

Then the audiounit did not validate. after long experimentaion and research i found out that the .plist must be modified manually to make it work.

Then VSTGUI4 is completly different from 3.6. The whole GUI code needed to be rewritten

and so on and so on

Post

Markus Krause wrote: Tue Jul 14, 2020 2:57 pm But i am annoyed that i wasted so many hours of work with this
You are annoyed, that is understandable. What is not understandable is you putting all the blame to Steinberg and using VST3 API and VST3 SDK interchangeably.
Nobody forced you (I hope) to use VSTGUI or anything else optional from the SDK. There are alternatives. Using full SDK you are going to lock yourself to the same vendor again.

Post

given that achievement in audio coding is accessible via many platforms, and that this does not correlate to achievement in figuring out an SDK or API or what you are even looking at,

personally i can see why someone would feel entitled to have some rudimentary understanding of an VST SDK, having used the synthedit module sdk, and also why they would have an immense amount of difficulty. considering the disparity between erudition, compilers, and so forth.

i think i might have just smoked a bowl because i'm posting on kvr as if it had some effect.

don't worry holmes i've been trying to do 2.4 since 2002 and have absolutely no hope of ever accomplishing this. i like my compiler. my compiler has been used to successfully compile 2.4 vst. i, will never, ever, find out how that's done.

it would be as easy as a source project, but no.

so you can see how i post teh crasy post after teh eighteen years of people saying no, even though you want to help people, we don't.

it's better if they just condemn your character and try to manufacture as much disinterest as possible before they have to really get tough. just accept, you're not rich or informed or clued in or successful or cryptocratic enough or whatever it is you have to be enough of to use an sdk to make an audio app to share with people today. only some people can do that and if i have been in this for eighteen years and can drop a 2d circular membrane and phase vocoder and it's still not important if i can do anything for humanity than how about you.
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

Post

(and before anyone else needs to, let's be emphatic about my choice of obscure compiler being a ridiculous strategic error, but i'm still not educated enough to parse the SDK regardless of if i used another compiler)
(and before anyone else needs to, let's be emphatic about education not necessarily being something that just happens because you intend or attempt it. knowledge can be and is withheld. nobody needs to be concerned. but the important thing is to get back to saying how its wrong and not making any forward, productive result. that would be change. change makes children invent genders because living in a world where everyhting is crap is a lot of crap.)
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

Post

Markus Krause wrote: Tue Jul 14, 2020 2:57 pm There is no proper documentation and you need hours to find out the most trivial stuff.
You spoke my mind.
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

i think it's hermann seib that at one time hosted a previous documentation.. 1.4, 1.6?? there ought to be an old thread here with iirc lots of very welcoming posts. not that that ought to help but that it seems to indicate many people have difficulty gaining intelligence about appropriate channels of teh ting.

i don't think anyone can tell me what would suffice to bridge between my capabilities and my intentions, and nor should i expect anyone to. if a bunch of very special rich people want to make something up to have influence or advantage well very gfood for them because we're certainly not capable of executing any concerted effort to extricate ourselves or counter or even acknowledge, especially versus even elementary subterfuge. except for death being the Great unifier.

i'd rather complain than save up for more expensive things, because it makes people happy to think there's someone out there who wants to be like them but can't because they suck. or at least they seem to enjoy spending lots of time making this and really only this clear.
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

Post

Ugh. VST2 @ 6 source files to VST3 @ 85+ source files.

Is there a VST3 Lite SDK somewhere? :lol: If I can strip 2.4 down to a single header/code pair, then surely someone's done the same for 3.6.x?

It appears to be a nasty rabbit hole. It starts innocently with:
vstaudioeffect.cpp
vstcomponent.cpp
vstcomponentbase.cpp
vsteditcontroller.cpp
vstbus.cpp
vstparameters.cpp
but each one of those pulls in another pile of headers from all over the place. No wonder nobody has adopted it with open arms. I don't even know where to begin. I should be able to just copy my code over, for the most part, and stuff it into new methods with minimal translation. Not happening...

I could go on, but I won't. Still crabby over the crappy parameters stuck at 0.0 - 1.0... Useless...
I started on Logic 5 with a PowerBook G4 550Mhz. I now have a MacBook Air M1 and it's ~165x faster! So, why is my music not proportionally better? :(

Post

I can live with any reasonably working API as long as it sticks to it's own conventions. Developers are problem solvers, I mean eventually we'll figure it out. But what I really can't handle is an ever constantly changing and deprecating API that renders thousands of lines of legacy code not working.

I can invest time to learn how to use a complex API. Or I could deal with a simple API and implement the rest my self. What I can't do is rewrite 5 years of code just because an API vendor decided it's obsolete.

It would have all been OK if the port to VST3 is just a week's time of work. May be it is for small projects. But it's not for large ones. Specially when you use VSTGUI with VST.
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

So, if I subclass these 3 parts of Sberg's 2-part structure ( :roll: ), I'm golden?

"A VST 3 audio effect or instrument basically consists of two parts: a processing part and an edit controller part.

The corresponding interfaces are:
Processor : Steinberg::Vst::IAudioProcessor + Steinberg::Vst::IComponent
Controller : Steinberg::Vst::IEditController"

Then, the result can be wrapped for VST2 and AU?
I started on Logic 5 with a PowerBook G4 550Mhz. I now have a MacBook Air M1 and it's ~165x faster! So, why is my music not proportionally better? :(

Post Reply

Return to “DSP and Plugin Development”