Selling VST2 after October 2018: Steinberg agreement

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS
VST Audio Plug-ins SDK (C++)

Post

ghettosynth wrote: Wed Oct 31, 2018 2:36 am You describe a, potentially unnecessary, mechanism that isn't really a solution so much as it's just defining a new API, of which there are several already defined.
You're assuming the plug-in interface (it's not an API) makes up any significant portion of a plug-in.

That is true in a plug-in that allows you to scale the volume of the input and copies it to the output.

For anything more complicated it starts to make up tiny fractions like 1% or 0.01% to the point that it becomes totally irrelevant in testing all the core functionality.

That is why most software of any significant scale is not based either wholly or even in part on something like a VST interface. It uses a wrapper to implement that specific interface but also at the same time implements a number of other completely independent and core interfaces.

It's like you're arguing "writing a game API/engine (like Unreal Engine) using its own proprietary interface isn't really a solution and is unnecessary since Microsoft DirectX exists."

Uh no... DirectX is a set of some of many interfaces to the system. It doesn't define the API or any of a number of interfaces a game might use to access functionality of the engine itself. The engine would then use a DirectX wrapper to access system functions via the wrapper interface. This same wrapper could wrap up other interfaces like OpenGL and work on multiple platforms like MacOS, Linux and various game systems.

It's also similar to arguing "there is no reason to have a postal system because we can send a telegraph instead." It's pure nonsense to anyone with a clue.

Your arguments and thinking seem based upon a total lack of any experience in programming. Have you ever written any code?
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

aciddose wrote: Wed Oct 31, 2018 9:25 am
ghettosynth wrote: Wed Oct 31, 2018 2:36 am You describe a, potentially unnecessary, mechanism that isn't really a solution so much as it's just defining a new API, of which there are several already defined.
You're assuming the plug-in interface (it's not an API) makes up any significant portion of a plug-in.
I'm not, and...

From:

https://github.com/steinbergmedia/vst3sdk
The VST SDK package contains:
The VST 3 API
I'm not going to engage any more than that with the pedantic nonsense of API vs interface. The salient point here is that your new definition doesn't make it any easier for the end user to test his application than those that already exist.
Your arguments and thinking seem based upon a total lack of any experience in programming. Have you ever written any code?
That's hilarious! I don't think that you really grok what I'm talking about. You have a pattern of assuming that others are making extreme assumptions and then building up a strawman that you can knock down.

Try reading what I write a bit more and making fewer assumptions. This is a casual conversation, if you want clarification, ask. I'm not writing a paper.

Post

What you're saying doesn't make any sense. You're claiming that anyone writing their own code independent from a 3rd party implementation is a waste of time/effort.

That's entirely fair to a degree in the sense of "reinventing the wheel"... but you need to realize that potentially: 1) The VST wheel doesn't fit on a Ford Fiesta. 2) The VST wheel constantly loses air pressure. 3) The VST wheel is 15% lead. 4) The VST wheel is square. 5) VST isn't even a wheel.

You're just posting your thoughts that should remain inside your head to a forum where 1000s of people are going to be exposed to them.

I pointed out that yes, you can write software 100% independently from any 3rd party library. That software can be licensed to a 2nd party and the 2nd party can include 3rd party libraries to ship the final product. This has happened on a daily and even hourly basis all around the world for the past 50 years or so.

So your response is "You describe a, potentially unnecessary, mechanism that isn't really a solution so much as it's just defining a new API, of which there are several already defined."

Already defined? You're saying my entirely independent software that has absolutely nothing to do with any 3rd party library is already defined?

Where?

... are you okay?

Just because the VSTSDK includes implementation that might be considered part of an API doesn't mean the interface is itself an API. Also yes VST3 is an API: which is why it failed to take up any significant percentage of the market where the VST2 interface was established. Most authors do not want an API, they want an interface. VST2 is attractive purely as a means to communicate with the existing hosts in the market and for no other reason.

Also we're discussing VST2 here, not VST3 which is something completely different. (It's a massive amount of c++ implementation, not just a simple interface.)

You didn't answer my question: have you ever written any significant amount of code larger than hello world?

Here is the complete VST2 interface structure:

Code: Select all

struct AEffect
{
	uint8_t data[192];
};
This is fully VST2 compatible assuming the data elements are populated correctly.
Last edited by aciddose on Wed Oct 31, 2018 12:27 pm, edited 2 times in total.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

aciddose wrote: Wed Oct 31, 2018 10:27 am What you're saying doesn't make any sense. You're claiming that anyone writing their own code independent from a 3rd party implementation is a waste of time/effort.
Again, you'll do better to stop making assumptions. You don't seem to grok what I'm saying at all. I made no such claim. I said that your contribution to the solution is unnecessary for the problem in question.
You're just posting your thoughts that should remain inside your head to a forum where 1000s of people are going to be exposed to them.
LOL! You owe me an irony meter.
Last edited by ghettosynth on Wed Oct 31, 2018 10:36 am, edited 1 time in total.

Post

The problem in question is writing software (a plug-in) and utilizing an interface (VST2) to enable that software to communicate with other software.

You're saying writing the software is a waste of time? What on earth are you saying? Actually when you break down what you've actually said it totally falls apart and makes zero sense whatsoever.

Code: Select all

// VST2 interface
uint8_t data[192];
You still refuse to answer my question: have you ever written any software source code larger than a hello world program?
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

aciddose wrote: Wed Oct 31, 2018 10:36 am The problem in question is writing software (a plug-in) and utilizing an interface (VST2) to enable that software to communicate with other software.
That's not the core of what is being discussed here.
You still refuse to answer my question: have you ever written any software source code larger than a hello world program?
You don't get to demand that people have a conversation in the way that you want to have it. Adults know this. You should know this. If you want me to have a conversation with you then calm down and learn to be civil.

Post

ghettosynth wrote: Wed Oct 31, 2018 10:43 am That's not the core of what is being discussed here.
What do you think is being discussed in this thread?

... in the DSP and Plug-in Development forum.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

aciddose wrote: Wed Oct 31, 2018 10:45 am
ghettosynth wrote: Wed Oct 31, 2018 10:43 am That's not the core of what is being discussed here.
What do you think is being discussed in this thread?
You really don't know how to not create strawmen. I'll be more clear for you, that's not what "I" am discussing. I'm not going to repeat myself. We're kind of done for now, you know? I'm sure that others will come along and add to this sub-conversation in interesting ways. I'll chime back in then.

Post

No really I have no idea at all what you are talking about. That's why I asked. Are you going to answer or simply say "I'm not talking about that" when I ask "what are you talking about?"

I assumed you were posting in this thread because what you posted has some relationship to the subject of the thread but all my attempts at explaining that relationship so far have failed to make any sense out of it.

So I'm sorry if it upsets you but from my perspective the most plausible explanation (not necessarily the correct one) is currently that you made the statements and posed the questions you have due to a lack of knowledge/experience that would render the answers intuitive and obvious.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

aciddose wrote: Wed Oct 31, 2018 11:39 am No really I have no idea at all what you are talking about.
That's clear.
So I'm sorry if it upsets you
LOL! Why would your opinion upset me? That's rhetorical, there's no need to answer. I'm serious though, we don't have anything else to talk about today.

Post

So when did you decide upon that? After I asked what you're talking about?

Here is what you said initially:
Certainly nobody is going to do this for free and I'm not sure whether it's legally possible to just "lend one's license" to another developer in some sense. So, if you are an aggregate then I'm sure it's possible, e.g., plugin alliance.

So plugin aggregators become something like labels in the music industry, no?
My answer was essentially: yes that is possible.

I pointed out that "lending a license" and "aggregate" doesn't make much sense unless I assume you intended to state that "lending a license" meant "acting on behalf of according to an agreement with" and that "aggregate" meant "contract with a 2nd party possessing a license with whom an agreement would be established to perform specific duties for the 1st party."

A shorter version would be combining the two: "an aggregate of the two parties through an agreement to perform duties facilitated by one party's licenses including those from the other party and additional 3rd parties."

I don't understand how you can turn around and say I don't understand what you're talking about, offer to answer questions and then about-face and refuse to answer them.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

aciddose wrote: Wed Oct 31, 2018 10:27 am
Here is the complete VST2 interface structure:

Code: Select all

struct AEffect
{
	uint8_t data[192];
};
This is fully VST2 compatible assuming the data elements are populated correctly.
There is also the symbol export "table" for the infamous "VSTPluginMain"
Which is by far one of the ugliest things I've ever seen done. (as far as execution without proper analysis of side-effects)

Post

That's true... I guess I don't really consider that part of the interface itself since it's so basic. It's a function that takes and returns a uintptr_t (or void *) which is common to pretty much every interface ever. Even the C standard main() does that.

I'd count it as the interface if it was an enumeration interface with a set of functions like I outlined earlier. VST2 only exports a single function though "void *vst_allocate_instance(void *)". The function name is a bit strange ("main?") but with only one function it isn't exactly hard to figure out how it works.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

It is the handle to the interface, it can't serve any other useful purpose. The only thing that differentiates a VST2 plugin from any random DLL is that explicit symbol. The fact that most hosts automatically EXECUTE it during a scan for plugins, is pure barbarism.

Compare VSTPluginMain's usage to how a file header works, which serializes information about the data contained. No execution based on the data contained in the file happens until it is established that an error control procedure will be able to handle any anomalous state based on that data. If the serialization information doesn't match up to what the file contains, it's rejected, and it should be!

Post

camsr wrote: Wed Oct 31, 2018 2:17 pm The fact that most hosts automatically EXECUTE it during a scan for plugins, is pure barbarism.
Obviously you do not have to. Most hosts, not all. That's what you have said yourself.
~stratum~

Post Reply

Return to “DSP and Plugin Development”