writing a VST plugin without the VST-SDK
- KVRAF
- 1736 posts since 19 May, 2006 from Nomadic (Chicago and San Francisco mostly)
I like this license personally: http://sam.zoy.org/wtfpl/ 
noise and beats: Negutyv Xeiro do people actually click these?
gearlust: Roland JP-8000, too much/not enough eurorack
machinecode by: u-he, Bitwig, Fabfilter, NI, et al
gearlust: Roland JP-8000, too much/not enough eurorack
machinecode by: u-he, Bitwig, Fabfilter, NI, et al
-
Christian Budde Christian Budde https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=25572
- KVRAF
- 1538 posts since 14 May, 2004 from Europe
Hi,
for my Delphi ASIO & VST project I also don't use the official SDK (obviously as it is written in Pascal).
I am using a couple of structs (called records in Pascal) and the callbacks defined in these structs. Further than that there is only little in common with the original SDK.
Nearly everything is assigned on runtime and not hardcoded. This gives a huge flexibility when you want to write stereo->mono wrappers as you only need to limit the num of channels (which could also be stored in the registry or in an .xml file).
On the other hand more flexibility might lead to problems, whenever you exceed the limits of the original VST specifications. E.g. it is possible to add parameters at runtime, but only little VST hosts do support this "feature".
Kind regards,
Christian
PS: The project uses a dual license. Either a modified LGPL or the MPL can be used.
for my Delphi ASIO & VST project I also don't use the official SDK (obviously as it is written in Pascal).
I am using a couple of structs (called records in Pascal) and the callbacks defined in these structs. Further than that there is only little in common with the original SDK.
Nearly everything is assigned on runtime and not hardcoded. This gives a huge flexibility when you want to write stereo->mono wrappers as you only need to limit the num of channels (which could also be stored in the registry or in an .xml file).
On the other hand more flexibility might lead to problems, whenever you exceed the limits of the original VST specifications. E.g. it is possible to add parameters at runtime, but only little VST hosts do support this "feature".
Kind regards,
Christian
PS: The project uses a dual license. Either a modified LGPL or the MPL can be used.
- KVRian
- 775 posts since 30 Nov, 2008
Of course, whether what you do is legal or not if Steinberg wants to harass, they certainly could.
-
- KVRAF
- 8389 posts since 11 Apr, 2003 from back on the hillside again - but now with a garden!
-
Music Engineer Music Engineer https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=15959
- KVRAF
- Topic Starter
- 4390 posts since 8 Mar, 2004 from Berlin, Germany
much thanks for the replies so far. i know the inconveniencies in the GPL, but on the other hand, i don't really want to see derivative works commercially exploited. perhaps i'll roll my own license that is somehow similar to GPL but allows for the use of third party libraries that do not have to be distributed alongside with the code - as mystran suggested. but then ...maybe i'll just allow commercial use as the project is not supposed to become such a huge endeavor anyway. we'll see
- KVRian
- 775 posts since 30 Nov, 2008
I released DspFilters under the MIT license precisely so it could be commercially exploited if desired.
Contrary to popular beliefs, not all of us commercial developers are devil worshippers and baby-eaters!
Contrary to popular beliefs, not all of us commercial developers are devil worshippers and baby-eaters!
-
- KVRian
- 540 posts since 7 Jul, 2004 from Skopje
there is a 'cleanroom' version of the VST headers apparently, you should be able to find out more via these links :
http://ardour.org/node/2443
http://www.joebutton.co.uk/fst/
probably worth cloning the fst git repo and seeing whats inside
p.s. i know nothing apart from this. i just remember reading about it at the time.
http://ardour.org/node/2443
http://www.joebutton.co.uk/fst/
probably worth cloning the fst git repo and seeing whats inside
p.s. i know nothing apart from this. i just remember reading about it at the time.
-
Music Engineer Music Engineer https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=15959
- KVRAF
- Topic Starter
- 4390 posts since 8 Mar, 2004 from Berlin, Germany
yes of course. i count myself among them too. i'll probably settle to some creative commons alike license - allowing for whatever use but requiring to attribute the original source. seems to be fair and liberal to me.thevinn wrote: not all of us commercial developers are devil worshippers and baby-eaters!
-
- KVRAF
- 3404 posts since 15 Sep, 2002
I like Dutch Babies with powdered sugar.
Swing is the difference between a drum machine and a sex machine.
-
Music Engineer Music Engineer https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=15959
- KVRAF
- Topic Starter
- 4390 posts since 8 Mar, 2004 from Berlin, Germany
mmmhh interesting - but FST seems to still require the VST SDK nonetheless. generally, the whole ardour project is certainly worth to keep an eye on.marvotron wrote:there is a 'cleanroom' version of the VST headers apparently, you should be able to find out more via these links :
http://ardour.org/node/2443
http://www.joebutton.co.uk/fst/
probably worth cloning the fst git repo and seeing whats inside
p.s. i know nothing apart from this. i just remember reading about it at the time.
-
- KVRist
- 251 posts since 24 May, 2009
I don't think it's too much of a stretch to do that: VST is a subplatform of whatever OS your host is running on, just as GDI is a subplatform of Windows.mystran wrote:Namely, GPL allows you to combine GPL code with platform libraries, where the platform libraries need not be GPL (or compatible). Read the license about the details, but if you manage to convince yourself that VST is part of the platform, then you could release the rest of the source as GPL. The reason for this loophole ofcourse is to allow you to compile GPL on systems like Windows, OSX or Solaris, where neither the runtime libraries or system headers are GPL compatible.
-
- KVRist
- 251 posts since 24 May, 2009
Not necessarily both, but certainly one or the other: it's written into the union work rules.thevinn wrote:Contrary to popular beliefs, not all of us commercial developers are devil worshippers and baby-eaters!
-
- KVRist
- 485 posts since 22 May, 2004 from Yokohama, Japan
interesting...
what do you think about Uniq ID?
i think you should register the ID to the Steinberg database to avoid the ID conflict even if you don't use the VST SDK. is that allowable?
what do you think about Uniq ID?
i think you should register the ID to the Steinberg database to avoid the ID conflict even if you don't use the VST SDK. is that allowable?
-
- KVRAF
- 4222 posts since 23 Feb, 2004 from Tucson Arizona USA
Without addressing the basic misconception, I'd like to point out that licenses like the VST SDK we're talking about *also* have a certain "ideological purity" and "taint everything they come in contact with" which is the basic issue that leads to this discussion.Rock Hardbuns wrote:There's been talk about it before, and I seem to recall the license saying that you can't legally make a compatible frame work. In other words, as soon as you click that "agree" button on the download page you become "tainted".
-
- KVRist
- 251 posts since 24 May, 2009
I'll bite: is that ID actually useful? Seems like there are much more robust mechanisms available that a host can use to tell which VST is which.g200kg wrote:interesting...
what do you think about Uniq ID?
i think you should register the ID to the Steinberg database to avoid the ID conflict even if you don't use the VST SDK. is that allowable?
Even if it is necessary for the ID to be 'unique', (1) its actual value isn't meaningful and (2) it only has to be unique on any given computer, not worldwide. Some sort of persistent DHCP-like mechanism would be ideal, but lacking that, a simple utility app that can scan the extant VSTs on a system at install time and return a non-colliding ID should be sufficient.

