Announcement for programmers...

Discussion about: tracktion.com
Post Reply New Topic
RELATED
PRODUCTS

Post

Angus_FX wrote:VST is essentially nothing more than a protocol, a set of rules by which two pieces of code can talk to each other. Can such a thing be copyrighted? If in doubt, ask a lawyer :shock: :? :o
From loose discussions with a few (I've run into similar issues in a professional capacity) the problem is that a good argument can be made that without prior knowledge of how VST works, it would be impossible to create the headers from scratch. By having prior knowledge it is a legally grey area whether one can then create a unique interface that behaves like the VST SDK, without actually being influenced by ones existing knowledge.

Reverse engineering is fine if you can build a black box model, but with vst this is not easy.

Mostly though it comes down to "it is only the law if it is enforced" and since the onus is on Steinberg to enforce the law, I guess the question is how litigious are they likely to be.
Someone shot the food. Remember: don't shoot food!

Post

Angus_FX wrote:It's quite possible to build a working VSTi without including any Steinberg headers (although you would have to either use ideas derived from reading those headers, or reverse engineer a VST host and plug to figure out the interface).

VST is essentially nothing more than a protocol, a set of rules by which two pieces of code can talk to each other. Can such a thing be copyrighted? If in doubt, ask a lawyer :shock: :? :o
(although you would have to either use ideas derived from reading those headers, or reverse engineer a VST host and plug to figure out the interface).

*Please correct me if I am wrong* but would it not be illegal to reverse engineer a VST host? So many licence agreements...(Cubase)...have warnings about doing this...no?

Angus_FX...I am not suggesting you would reverse engineer anything... 8) I am just curious about the whole development process that is being discussed in this thread. :wink: As it does seem like a very good gesture made by Jules.

Post

*Please correct me if I am wrong* but would it not be illegal to reverse engineer a VST host? So many licence agreements...(Cubase)...have warnings about doing this...no?
The legal validity of software license agreements (EULAs) is a whole other can of worms. Just because the EULA says you may or may not do X or Y does not necessarily mean you cannot legally do so - most countries do not recognise EULAs as binding contracts; some go so far as to enshrine the right to reverse-engineer in law.

Post

I have a tricky question to all those lawyers here in the forum... :wink:

All the GPL/Steinberg talk so far has been quite abstract. But the Juce library as released by Jules is already prepared and intended to be compiled and linked with files from the Steinberg SDK - have a look at Jules' online documentation of the class ASIOAudioIODevice to see the details.

As I see it, this makes it perfectly legal to use the library to write your own VST instruments, as long as you treat your source code in the same way Jules treats his (including requiring the manual setting of the global definition JUCE_ASIO).

I'm not a lawyer, but a long time ago, a lawyer told me that the specific rule will always be stronger than a general rule. GPL generally says that Juce cannot be used in a software which contains non-GPL parts, but Jules specifically says that it's ok to use it together with the Steinberg SDK, so the according passages of the GPL should be void for the Steinberg SDK. It would help, though, if Jules said this already in the 'license' section and not only within the documentation...

So, what say all the lawyers about this? :D

malamut

Post

malamut quoth I have a tricky question to all those lawyers here in the forum... :wink:

I am not a lawyer, but Ive seen people play them on Slashdot.

All the GPL/Steinberg talk so far has been quite abstract.


No, its been quite specific.

But the Juce library as released by Jules is already prepared and intended to be compiled and linked with files from the Steinberg SDK - have a look at Jules' online documentation of the class ASIOAudioIODevice to see the details.

Example code is not necessarily an indication of intent.

As I see it, this makes it perfectly legal to use the library to write your own VST instruments,

Nothing in the GPL makes it 'illegal' to write any code whatsoever. The GPL is concerned with redistribution of someone else's work. If Jules GPL's the libraries, then anyone reusing those libraries must obey the GPL, or forfeit the right to redistribute Jules work. Its that simple.

as long as you treat your source code in the same way Jules treats his (including requiring the manual setting of the global definition JUCE_ASIO).

However if you use code in your software which belongs to someone else who has not released it for redistribution you do have a problem. You cannot treat it the way Jules does, since Jules, as creator of Juce can do whatever the hell he wants with it. You cannot; if you do not buy it from Jules, you are bound by the GPL. The GPL requires that all code derived from Jules work is GPL'd.
If your code is derived from Jules code and non-free code, you still cannot redistribute the non-free code. Hence you are breaking the GPL, since you are not releasing all the source code. Hence you cannot redistribute your work, since use of Juce requires adherence to the GPL.
It doesnt matter how Jules 'treats his code'. It matters what license terms he sets. And that's the GPL, with no exceptions that I've seen.

I'm not a lawyer, but a long time ago, a lawyer told me that the specific rule will always be stronger than a general rule.

The GPL is a license. It is a specific license. The specific rule is 'you cannot redistribute code if you break the license'.
The terms of the GPL do not make it 'more' general. The specificity is in copyright law.

GPL generally says that Juce cannot be used in a software which contains non-GPL parts,

No it doesnt 'generally' say that at all. It specifically says that if you reuse GPL'd code, and redistribute software based on that code you must release the source code to that software.

but Jules specifically says that it's ok to use it together with the Steinberg SDK,

It is okay to use. It is not okay to redistribute unless Jules specifically uses an altered version of the GPL.

so the according passages of the GPL should be void for the Steinberg SDK.

Wrong.

It would help, though, if Jules said this already in the 'license' section and not only within the documentation...

It needs to be in the license. End of story.

So, what say all the lawyers about this?

Read up on the GPL a little bit more....
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."

Post

Thanks for the warm response to this, folks, and I didn't expect so many GPL experts to be hanging around on a music forum!

Ok, just to clear up the GPL/VST thing: I guess that technically, linking JUCE to a non-GPL library would be breaking the license, but to be honest, that had never even occurred to me. The only reason I'm using the GPL is to stop people writing code that uses JUCE without also giving away that source-code (or paying me cash, which is obviously my preferred option). If you're using the Steinberg SDK then common sense says that that's fair use, and obviously I've no problem at all with it. This is actually a bit of a grey area with the GPL, because for example, any JUCE app you write will include header files from Windows or Apple, so that's also breaking the GPL.. In practical terms, of course, it's completely obvious when you're using it fairly and when you're not, so I don't foresee any problems.

I don't want to actually add a list of 'approved' libraries to the JUCE license, because it'd just be annoying to keep it up to date, and I'm sure it'd cause endless bickering. If you're really unsure, you could always email me and ask if something's ok to use.
It's quite possible to build a working VSTi without including any Steinberg headers (although you would have to either use ideas derived from reading those headers, or reverse engineer a VST host and plug to figure out the interface).

VST is essentially nothing more than a protocol, a set of rules by which two pieces of code can talk to each other. Can such a thing be copyrighted? If in doubt, ask a lawyer Shocked Confused Surprised
Hmmm. As someone mentioned on this thread, I had the same problem in the juce_ASIOAudioIODevice.h file..

Post

jules wrote:Thanks for the warm response to this, folks, and I didn't expect so many GPL experts to be hanging around on a music forum!
well. if you remember what I do for a living, GPL issues arise very frequently at my place of work.
If you're using the Steinberg SDK then common sense says that that's fair use, and obviously I've no problem at all with it.
Unfortunately since it is their license that is being broken, this is entirely up to Steinberg.
This is actually a bit of a grey area with the GPL, because for example, any JUCE app you write will include header files from Windows or Apple, so that's also breaking the GPL..
I think that kind of stuff is covered under the core and kernel components exception. GPL recognises the fact that a program is dead in the water if it cannot link at some level with the OS, and as such could never be GPL'd on a non-GPL OS.

VST/ASIO however does not fall under this et-out clause.

I'm probably still going to make use of the libraries though, and when you have some idea of what you are looking for in terms of commercial licencing, I may well pitch them to my employers. As I said to you once before, we have need of a common cross platform framework for visual applications.
Someone shot the food. Remember: don't shoot food!

Post

Unfortunately since it is their license that is being broken, this is entirely up to Steinberg.
no - I didn't mean that. I meant that I don't mind the fact that MY license would technically be broken by linking JUCE to the VSTSDK, and that it's only fair for me to allow that to happen. I wasn't saying it was ok to use the VST without permission.

Post

Forgive me my ignorance in all this but how do commercial plugin coders do things?

Even if they don't use something like JUCE, do it all 'by hand', they'd still need to use the VSTSDK, yeah?

So do they need to pay Steinberg a license fee?

How about SynthEdit users? Their VSTs presumably have code that links to the VSTSDK...

Just curious.

.g

Post

Fragments From the VST SDK license:

The Licensee shall not obligated to pay to Steinberg any fees or royalties with respect to the VST PlugIn Interface technology.

If the Licensee is planning to publish a product, that is using parts or all of the Licensed Software Developer Kit, the Licensee is under the obligation to inform Steinberg about it by sending the signed ‘Steinberg VST PlugIns SDK Licensing Agreement’ to Steinberg, either by mail, or by fax.

Post

shizzle!
this looks hot jules. hot hot hot. i can't believe it! after having given up on my pointless import/export app, i thought at least the good thing to have come out of it was a built-from-scratch working XML management structure. ain't no way that's gonna be useful now with it built in to what i can easily imagine becoming my main library. shEEenizzle that's ace work man.
Kick, punch, it's all in the mind.

Post

shizzle!
this looks hot jules. hot hot hot. i can't believe it! after having given up on my pointless import/export app, i thought at least the good thing to have come out of it was a built-from-scratch working XML management structure. ain't no way that's gonna be useful now with it built in to what i can easily imagine becoming my main library. shEEenizzle that's ace work man.
thanks! The XML stuff in JUCE has actually been one of the bits I've got the most use out of - very handy just as a general purpose data structure as well as for loading/saving stuff.

Post

yeah i learned loads about XML trying to write that app. enough to build the XML class which seemed to almost be self-aware! storing data in it was a breeze and then a simple call to a node would export itself (and contents) as a file. easy as pie! i spent about 2 months on that i reckon... and now it's useless!!! DAMN YOO!! ;) it's nice to have done it tho, at least i 'know' that i 'get it' now. for sure. !

thanks again for your library, i'm downloading it now tho it may be a while til i get to do anything with it. i wonder if it works well with Borland compiler? or is it geared to MSVC++?
Kick, punch, it's all in the mind.

Post

I've never tried it with Borland - if you have a go, let me know how you get on!

Post

I take it the library is a precompiled dll?

I'd imagine the headers will open easily in C++ Builder, but if not, doing a few conversions should not be hard.

I'm reasonably confident of being able to get the library up and running in Delphi, although I may need to build a flattened C interface to get it working[1], but C++ Builder should be a doddle.

[1] I haven't had a chance to look at your library interfaces yet so I don;t know what is involved...
Someone shot the food. Remember: don't shoot food!

Post Reply

Return to “Tracktion”