LGPL Compliance for Commercial Faust Plugins in HISE
-
@cassettedeath I just had a look at filters.lib and noticed that it's actually licensed per function, and many are MIT-style STK-4.3 license. And similar thing in reverbs.lib - many are MIT but some are GPL so be careful.
Also, 'commercial' isn't the limiting factor here - it's whether your plugin is closed-source or open-source.
Selling open-source products for money is within the GPL license. Giving away closed-source products breaks the GPL license.
-
-
@cassettedeath Better get an answer from @David-Healey too. He's the expert on real-world usage of GPL and other similarly licensed code.
I've just read up this a lot to figure out what I can and can't do, since I'm firmly in the closed-source sector for now.
-
@cassettedeath If you pick and choose the permissively licensed functions from those Faust libraries you should be fine.
And you don't need a commercial license for Faust itself because it's only used as a build tool, and not distributed to the end user.
-
Just saw this in the oscillators lib.
EXCEPTION TO THE LGPL LICENSE : As a special exception, you may create a
larger FAUST program which directly or indirectly imports this library
file and still distribute the compiled code generated by the FAUST
compiler, or a modified version of this compiled code, under your own
copyright and license. This EXCEPTION TO THE LGPL LICENSE explicitly
grants you the right to freely choose the license for the resulting
compiled code. In particular the resulting compiled code has no obligation
to be LGPL or GPL. For example you are free to choose a commercial or
closed source license or any other license if you decide so. -
@cassettedeath That changes everything!

-
-
@jeffd They all look to be part of
stdfaust.libso should be STK license I believe. -
is this problematic --- using the demos.lib from faust?
-
im seeing that im using "GPL2+" in my faust delay i compiled in the .cpp file.
so that means I cant use this commercially?
unless I am misunderstanding something.
-
@jeffd said in LGPL Compliance for Commercial Faust Plugins in HISE:
so that means I cant use this commercially?
Commercial has nothing to do with the license, so don't worry about that.
The license just determines what code you can include in your project. If you are releasing your project under the GNU GPLv3 (this is what HISE uses) then you can only include code that is compatible with that license.
If you are releasing your project as closed source (HISE proprietary license) then you can't include any GPL code, unless you have a license from the author of that code which allows you to.
The GPL is generally backwards compatible so if the code you want to use is GPLv2 or later (I think that's what the + means here) then you can use it in a GPLv3 project.
-
if i release a plugin without a HISE proprietary license, this means that
Anyone could legally, rebuild it, and redistribute it (even sell it). I dont think anyone would but im just trying to understand the difference. -
@jeffd Correct
-
@David-Healey
and so then copy protection is kinda of a fools errand at that point. -
@jeffd said in LGPL Compliance for Commercial Faust Plugins in HISE:
and so then copy protection is kinda of a fools errand at that point.
I think it is at any point ;)
-
@David-Healey
yeah it is i guess. haha -
so im guessing that these libraries
https://faustdoc.grame.fr/examples/reverb/
..you cant use them in your projects with a proprietary license.the demo libraries show up as GPL2+ in the metadata.
-
@jeffd If it's using the STK license then it looks like it's basically the same as the MIT so it is compatible with GPL projects (I think that was mentioned earlier in this thread actually)
-
this is in my project (sorry, this is kinda confusing to me)
m->declare("author", "FangTooth Instruments");
m->declare("basics.lib/name", "Faust Basic Element Library");
m->declare("basics.lib/tabulateNd", "Copyright (C) 2023 Bart Brouns bart@magnetophon.nl");
m->declare("basics.lib/version", "1.19.1");
m->declare("compile_options", "-lang cpp -rui -nvi -ct 1 -cn _delay -scn ::faust::dsp -es 1 -mcd 16 -mdd 1024 -mdy 33 -uim -single -ftz 0");
m->declare("delays.lib/fdelay1a:author", "Julius O. Smith III");
m->declare("delays.lib/fdelay4:author", "Julius O. Smith III");
m->declare("delays.lib/fdelayltv:author", "Julius O. Smith III");
m->declare("delays.lib/name", "Faust Delay Library");
m->declare("delays.lib/version", "1.1.0");
m->declare("description", "Reverb based on Faust std library greyhole (re.greyhole).");
m->declare("filename", "delay.dsp");
m->declare("filters.lib/lowpass0_highpass1", "MIT-style STK-4.3 license");
m->declare("filters.lib/name", "Faust Filters Library");
m->declare("filters.lib/nlf2:author", "Julius O. Smith III");
m->declare("filters.lib/nlf2:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III jos@ccrma.stanford.edu");
m->declare("filters.lib/nlf2:license", "MIT-style STK-4.3 license");
m->declare("filters.lib/tf1:author", "Julius O. Smith III");
m->declare("filters.lib/tf1:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III jos@ccrma.stanford.edu");
m->declare("filters.lib/tf1:license", "MIT-style STK-4.3 license");
m->declare("filters.lib/version", "1.3.0");
m->declare("maths.lib/author", "GRAME");
m->declare("maths.lib/copyright", "GRAME");
m->declare("maths.lib/license", "LGPL with exception");
m->declare("maths.lib/name", "Faust Math Library");
m->declare("maths.lib/version", "2.8.0");
m->declare("name", "Greyhole Reverb");
m->declare("oscillators.lib/name", "Faust Oscillator Library");
m->declare("oscillators.lib/version", "1.5.1");
m->declare("platform.lib/name", "Generic Platform Library");
m->declare("platform.lib/version", "1.3.0");
m->declare("reverbs.lib/greyhole:author", "Julian Parker, bug fixes and minor interface changes by Till Bovermann");
m->declare("reverbs.lib/greyhole:license", "GPL2+");
m->declare("reverbs.lib/name", "Faust Reverb Library");
m->declare("reverbs.lib/version", "1.3.0");
m->declare("signals.lib/name", "Faust Signal Routing Library");
m->declare("signals.lib/version", "1.6.0");
m->declare("version", "1.0");
} -
@jeffd said in LGPL Compliance for Commercial Faust Plugins in HISE:
this is kinda confusing to me
Anything that is STK, LGPL, or MIT is fine in a GPLv3 project.