Is there a good way to develop plugins and other DSP using only 100% free and open source tools/libraries?

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Faust developer here. The compiler is indeed GPL, but you can perfectly use is to develop closed source projects.
As a compiler it just translates a piece of DSP source code in a piece of C++ generated code (or any target language you may choose) in a agnostic may. Think about the Faust compiler as the GCC compiler, which is itself GPL, but allows close source projects to be done.
The point is more of the status of additional Faust libraries you can use in your project, since basically the Faust compiler "propagates" the licences status of the source code inside the generated code. Most of standard Faust libraries (https://faustlibraries.grame.fr) are using open licences like "MIT-style STK-4.3 license" and we use your "GRAME licence" in our own code (see https://github.com/grame-cncm/faustlibr ... cs.lib#L16).
So finally Faust is used in several commercial products like GeoShred (https://apps.apple.com/us/app/geoshred/id1064769019) or Swanky Amp (see https://www.resonantdsp.com/swankyamp/ and https://github.com/resonantdsp/SwankyAmpFaust) for instance.

Post

Urs wrote: Fri Jun 11, 2021 6:56 am I'm sorry if this sad story is discouraging you. I happen to know the other side of that story though and while I think it was wise for Oli to not further interact with this individual in public, I'd propose you take your concerns to Oli directly before you give up on iPlug.
Thanks for the reply. I'd love to hear a bystander's account to what went on between Oli and Fender19, as it does peak my curiosity. I can try iPlug although I don't know how I would compile my plugins to LV2, as making them work on Linux is almost non-negotiable. Is that what you used to create stuff like TyrellN6 and Diva?

Post

sletz wrote: Sat Jun 12, 2021 2:54 pm Faust developer here. The compiler is indeed GPL, but you can perfectly use is to develop closed source projects.
As a compiler it just translates a piece of DSP source code in a piece of C++ generated code (or any target language you may choose) in a agnostic may. Think about the Faust compiler as the GCC compiler, which is itself GPL, but allows close source projects to be done.
The point is more of the status of additional Faust libraries you can use in your project, since basically the Faust compiler "propagates" the licences status of the source code inside the generated code. Most of standard Faust libraries (https://faustlibraries.grame.fr) are using open licences like "MIT-style STK-4.3 license" and we use your "GRAME licence" in our own code (see https://github.com/grame-cncm/faustlibr ... cs.lib#L16).
So finally Faust is used in several commercial products like GeoShred (https://apps.apple.com/us/app/geoshred/id1064769019) or Swanky Amp (see https://www.resonantdsp.com/swankyamp/ and https://github.com/resonantdsp/SwankyAmpFaust) for instance.
That's wonderful to hear. Is using/integrating graphics libraries to make graphical plugins that have things like a dB meter or a live waveform view tricky to do with FAUST plugins?

Also, I tried filling out an email form to contact Grame directly about FAUST a while back asking the questions that I asked here. Are you guys just really busy or is that email inactive now?

Post

EvilDragon wrote: Fri Jun 11, 2021 6:21 pm JUCE used under GPL3 is the way to go. There's nothing else that's as elaborate as it is on such a level.

If you're not making closed source, paid plugins, you don't need to pay for JUCE, and you can also remove the watermark yourself.
Maybe I can give it a try, so that I have some common library with other devs, just in case I want to collaborate with them to make a free plugin or something.

Post

hibrasil wrote: Sat Jun 12, 2021 8:09 am Please don't believe everything you read on the internet. I have much better things to do with my (very limited) “free” time than defend myself when someone decides to makes slanderous personal attacks on forums, but it’s pretty frustrating to see someone else read that and take it at face value as truth. It’s really not nice, and also unprofessional for you just to repeat allegations using my name like that, even saying "doesn't seem to be ...".
If you do just a little research, I think you will come to an entirely different conclusion about my character. I have spent a large part of my life maintaining and building a 100% free and open source cross platform framework which is of a very high quality, competitive in several ways and allows people to make amazing plugins, e.g. Invader 2. I have been very active helping people here and on many other forums for nearly 20 years.
I guess I should have worded that a bit differently, so sorry about that. I'd kind of like to know the different sides of that whole story, though, because I'm curious.
JUCE is a formidable product, that is very good value for money and has a large community. Personally I like to have the freedom to fix/control/modify as much of my codebase as possible using liberally licensed code that isn't owned by large companies, which is why I stopped hacking on JUCE and went back to turn WDL-OL into iPlug2. Instead of keeping all this work secret to have a competitive advantage, I share it. If I am going to spend my time adding innovative features to a plug-in framework, why do that work to benefit a company?
That's a pretty good reason to make iPlug2, tbh, although wasn't the original iPlug made by Cockos? (To be fair, it seems to be under a less restrictive license and made by a smaller company than PACE, which I believe develops iLok, and maybe even Roli, which of course makes a bunch of fancy MIDI gear.)
FAUST is a wonderful DSL for audio DSP but it is difficult to integrate it into plug-ins with UIs which is something I have tried to address.
That sucks. I'd love to see them improve on that, as it seems like that's one of the major things that's keeping FAUST from being more of a mainstream development choice.
As mentioned before DPF is a nice project which has very good linux support if that is important to you.
So would there be a way to integrate anything I make with the iPlug2 libraries and tools with other tools that can allow me to compile it into an LV2 plugin for Linux with graphics and everything? Would I be able to do this with DPF?

And what kind of plans do you have for making plugins made with iPlug2 able to compile to Linux LV2?

Post

Thanks for saying sorry, but it feels like you are brushing it off a bit. I’d much prefer if you go back and remove the offensive part of your post.

As well stated almost everywhere I talk about Iplug2 … iplug1 was originally made by cockos and abandoned over 10 years ago. Because they are cool guys they published it under a liberal license, so that others could take up to the helm and maintain it/improve it. You can see in the iPlug2 git history just how much it has changed, or read the papers we've published on it.

[edit - removed the "my side of the story" section, since I simply do not want to discuss this anymore]

There is plenty of information on the status of iPlug2 on the github page, including long threads about Linux, lv2 support. I really need help with this because I’m not a Linux person. A few people have contributed some great work to get it running but it’s not robust enough to include on the master branch yet.
Last edited by hibrasil on Sun Jun 13, 2021 11:45 am, edited 2 times in total.

Post

"That's wonderful to hear. Is using/integrating graphics libraries to make graphical plugins that have things like a dB meter or a live waveform view tricky to do with FAUST plugins?"

I suggest reading the "Architecture Files" documentation first: https://faustdoc.grame.fr/manual/architectures/

Post

A side note. I always thought those so called permissive licenses are a bit vague. Essentially the following sentence:

"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."

"Software" here doesn't seam to distinguish between open source and closed source. So If I want to be safe (for closed source). I have to always include that license (be it MIT or etc..) in the release some where. The problem is, I don't think that commercial devs would be comfortable doing that. It can be seen by the users as an open license for the commercial software it self and therefore they would have the right to copy it. Or am I getting it totally wrong ?

This has always deterred me from using any open source in a closed source commercial product. (with only very few exceptions when the license is clearer).
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

tristanbay wrote: Sun Jun 13, 2021 1:27 am
Urs wrote: Fri Jun 11, 2021 6:56 am I'm sorry if this sad story is discouraging you. I happen to know the other side of that story though and while I think it was wise for Oli to not further interact with this individual in public, I'd propose you take your concerns to Oli directly before you give up on iPlug.
Thanks for the reply. I'd love to hear a bystander's account to what went on between Oli and Fender19, as it does peak my curiosity.
While gossip and drama seem beneficial for players in entertainment, in my experience it's in no-one's interest in the domain of software development.
I can try iPlug although I don't know how I would compile my plugins to LV2, as making them work on Linux is almost non-negotiable. Is that what you used to create stuff like TyrellN6 and Diva?
We do not use iPlug. Maintaining our own proprietary framework is the biggest challenge we face as a company. Our framework's roots predate viable options such as iPlug and JUCE, and if I had to do it again nowadays, I'd probably chose the open source path.

Post

S0lo wrote: Sun Jun 13, 2021 9:59 amIt can be seen by the users as an open license for the commercial software it self and therefore they would have the right to copy it. Or am I getting it totally wrong ?
We simply say so. E.g. "This product uses Boost, and here's their license text: ..."

This way one can clarify that the license accounts for that part of the software, but not for the software as a whole. In other words, you can include the license text in context.

Post

S0lo wrote: Sun Jun 13, 2021 9:59 am A side note. I always thought those so called permissive licenses are a bit vague. Essentially the following sentence:

"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."

"Software" here doesn't seam to distinguish between open source and closed source. So If I want to be safe (for closed source). I have to always include that license (be it MIT or etc..) in the release some where. The problem is, I don't think that commercial devs would be comfortable doing that. It can be seen by the users as an open license for the commercial software it self and therefore they would have the right to copy it. Or am I getting it totally wrong ?
The standard thing to do for binary distribution is to add a note somewhere that says "This Software uses <xyzzy-library> under the terms of the following license: <copy-paste-license>." The most sensible place would usually be after your main licensing terms, which should completely avoid any confusion whatsoever. The point is just to give the original authors some credit and clarify that you're not claiming to have written it all by yourself.

Post

Urs wrote: Sun Jun 13, 2021 10:14 am
S0lo wrote: Sun Jun 13, 2021 9:59 amIt can be seen by the users as an open license for the commercial software it self and therefore they would have the right to copy it. Or am I getting it totally wrong ?
We simply say so. E.g. "This product uses Boost, and here's their license text: ..."

This way one can clarify that the license accounts for that part of the software, but not for the software as a whole. In other words, you can include the license text in context.
mystran wrote: Sun Jun 13, 2021 10:38 am The standard thing to do for binary distribution is to add a note somewhere that says "This Software uses <xyzzy-library> under the terms of the following license: <copy-paste-license>." The most sensible place would usually be after your main licensing terms, which should completely avoid any confusion whatsoever. The point is just to give the original authors some credit and clarify that you're not claiming to have written it all by yourself.
Yea, I've seen that done before with open source. And may be one closed sourced. Still I remained in doubt. I guess its just me then.

For boost, its good that they have a clear exclusion for binary:

"unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor."
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

S0lo wrote: Sun Jun 13, 2021 10:48 am
Urs wrote: Sun Jun 13, 2021 10:14 am
S0lo wrote: Sun Jun 13, 2021 9:59 amIt can be seen by the users as an open license for the commercial software it self and therefore they would have the right to copy it. Or am I getting it totally wrong ?
We simply say so. E.g. "This product uses Boost, and here's their license text: ..."

This way one can clarify that the license accounts for that part of the software, but not for the software as a whole. In other words, you can include the license text in context.
mystran wrote: Sun Jun 13, 2021 10:38 am The standard thing to do for binary distribution is to add a note somewhere that says "This Software uses <xyzzy-library> under the terms of the following license: <copy-paste-license>." The most sensible place would usually be after your main licensing terms, which should completely avoid any confusion whatsoever. The point is just to give the original authors some credit and clarify that you're not claiming to have written it all by yourself.
Yea, I've seen that done before with open source. And may be one closed sourced. Still I remained in doubt. I guess its just me then.

For boost, its good that they have a clear exclusion for binary:

"unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor."
Well, the exact terms vary a bit from one license to another, but generally there's little harm done by just including all the relevant copyrights/licenses. As far as I'm concerned, when someone has given their work available for free, it seems like the polite thing to do to give them credit unless they explicitly request otherwise. I would go so far as to argue that most "permissive licenses" essentially boil down to "you can use this freely as long as you act like a civilized person" with slight variations on the definition of "civilized person".

Post

mystran wrote: Sun Jun 13, 2021 11:28 am As far as I'm concerned, when someone has given their work available for free, it seems like the polite thing to do to give them credit unless they explicitly request otherwise. I would go so far as to argue that most "permissive licenses" essentially boil down to "you can use this freely as long as you act like a civilized person" with slight variations on the definition of "civilized person".
Oh, I have absolutely no problem with that and would willingly give credit where it's due be it closed or open source. My doubts has always been in the sense that those licenses wording seams to emphasize the "free copying and distribution" part. Not the "credits" part. For example, when I read the MIT license, I get the impression that the author is not really interested in crediting him self that much, but rather more interested in keeping the "free copying" part as always part of the licensed code so that any one who gets it is never banned from having the right to copy it. And I always asked my self if that was meant to obligate the same license on my code or not, when it's in binary. Since obviously binary is mixed code that can not be easily unmixed by the user. It would seam like if the user had the right to copy the MIT licensed parts of the code, he would have to copy it all, and hence he had the right to copy all the code. Which is the part that I'm in doubt with.

The second (kind of historic) confusion/doubt I had is that those licenses are not explicit in saying "No you do not have to license your code with the same license, this license applies only to our code". In other-words, the license is not viral.

I've searched before about this, everyone else seams to say it's OK, so I guess it's so. I just struggle to get that meaning from the license wording. For instance:

https://softwareengineering.stackexchan ... it-license

https://ttmm.io/tech/why-the-mit-license/
www.solostuff.net
Advice is heavy. So don’t send it like a mountain.

Post

S0lo wrote: Sun Jun 13, 2021 4:01 pm My doubts has always been in the sense that those licenses wording seams to emphasize the "free copying and distribution" part. Not the "credits" part.
Especially back in the 80s/90s when open source software was still relatively new as a concept corporate lawyers would generally be paranoid about whether you had this or that specific right to do this or that specific thing, so these licenses try to be explicit in terms of "yes, you can do this and that and just about anything else" so that the paranoid corporate lawyers don't need to worry about "but can we modify this? can we only use some parts? can we pass these rights to another company in case we're acquired or want to sell the rights to the software?" etc.

That said, I'd imagine that the key here is that the only condition is that you need to include the copyright notice and license text. There is no condition that you must pass these rights to others, simply a permission to do so. So the way I see it, the license is actually quite clear if you read it carefully.
S0lo wrote: Sun Jun 13, 2021 4:01 pm The second (kind of historic) confusion/doubt I had is that those licenses are not explicit in saying "No you do not have to license your code with the same license, this license applies only to our code". In other-words, the license is not viral.
I think what might be going on here is that the license text predates the whole concept of "viral" licenses. Apparently the MIT license originated somewhere around 1987 or so, where as GPL as the original "copyleft" license dates to 1989.

Post Reply

Return to “DSP and Plugin Development”