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

Hi, I'm new to this forum, and I'm interested in developing my own plugins and other DSP software. However I'm not very good at coding/programming yet, and the language I know best is Processing (the standard edition with Java-like syntax), not C++, which is what the majority of DSP software is written in, and I'm even worse at coding in.

I asked on Reddit a while back on how I can get started, and they pointed me here. They also told me to use the JUCE framework, which pretty much all of you I would think are familiar with/have heard of.

But there's a reason I would rather use an alternative if I had the option, and here's why. JUCE isn't fully free, libre, and open source, and you have to have a watermark on all of your plugins unless you pay $40 every month or $800 once. And even though I have the money to pay for this, I'd rather not support a for-profit company (PACE) or for-profit program in having this much control over the audio plugin industry (an example with a different industry would be Adobe CC and the graphic design industry). You can correct me if JUCE/the JUCE project is actually non-profit.

So I looked at alternatives. The most widely used alternative to JUCE that I can think of is iPlug. And I specifically looked into iPlug 2. And as far as I can tell, this is a fully free, libre, and open source framework. Unfortunately, it doesn't seem to have as much support for different plugin formats, etc. as JUCE, including with LV2, which is one of the formats I would want to target for every plugin.

And then I stumbled upon FAUST. Unlike JUCE and iPlug 2, FAUST is not really a framework but an entire programming language of its own. After taking a look at it, I feel like this could be a viable option for me to use as the main way of doing plugin development. Before you start yelling at me saying that I should just use what everyone else is using and that I should stop wasting my time looking for alternatives to C++ with JUCE, let me finish explaining why, as well as a couple unknowns that I'm aware of.

With FAUST, there are scripts that you can use to compile your projects into VST2, AU, and LV2. For VST3 and AAX, I can translate my FAUST projects into an iPlug or iPlug 2 project, and then turn them into those plugin formats from there.

But of course, there are also some things that I'm not sure about that could be deal-breakers for using FAUST as my main way to develop plugins. The first thing is that the way that I add the GUI for my plugin to the DSP code to compile into one program doesn't always seem clear. If I wanted to use the standard script to turn FAUST code into a 64-bit VST2 for Windows, would I be able to add the code and/or assets for a GUI that I made with GTK to the compiler along with the respective DSP code? Although, it seems like maybe the developer of Foo YC20 got away with doing just this without any trace of JUCE, so I don't know.

The second issue has to do with how I'm allowed to license anything that I make with FAUST. FAUST's compiler is under a GPL license, meaning that any program that uses code that's already under that license must also be open source and under GPL or a GPL-compatible license. So I'm worried that what the compiler does is that there may be a stage where it turns the FAUST code into C++ code, and since the compiler is under GPL, the C++ code that it generates for my plugin must also be GPL, meaning after it compiles the plugin down into binaries, those binaries will have come from C++ code that is under GPL, forcing me to release my plugins under only a GPL or GPL-compatible license. I don't like this because even though I'd want many, if not most or all of my plugins to be free, libre, and open source, I may still want to make some plugins that aren't. And in general, I want to feel like I actually own my own programs/plugins and can do what I want with them.

If FAUST or iPlug 2 isn't a great option for me, here's what I'd want out of a solution to develop my own plugins:
  • 100% free of charge, libre, and open source
  • able to compile to 64-bit VST3, AU, and LV2, and for Mac, Windows, and Linux without too much difficulty (VST2 is fine if it isn't going to be obsolete for a while, and I don't care as much about AAX because Pro Tools is evil and people should be using something like Reaper or Bitwig instead)
  • not too much of a hassle to use (i.e. not very buggy and decent user experience)
  • has a decent community of people I can turn to to ask for help if I need it
If anyone can point me in a good direction with all of this stuff so I can start developing cool plugins, that would be awesome. Thanks!

Edit: Took out a sentence I originally wrote due to some drama having to do with iPlug2
Last edited by tristanbay on Sun Jun 13, 2021 11:17 am, edited 1 time in total.

Post

Hi,

Do you want to make closed source/paid plugins? If not - you can use JUCE under GPL3 and remove splash screen (watemark) or even use fork with LV2 plugins support.
Plus, from what I've read, the main dev, Oli Larkin, doesn't seem to be the nicest of guys out there when it comes to open source project management.
Why do you think so?
https://github.com/olilarkin/awesome-musicdsp

EDIT:
I see:
I don't like this because even though I'd want many, if not most or all of my plugins to be free, libre, and open source, I may still want to make some plugins that aren't.
Well, then, either JUCE watermark or paid license. Or DPF for example.

Post

Kott wrote: Thu Jun 10, 2021 11:23 pm
Plus, from what I've read, the main dev, Oli Larkin, doesn't seem to be the nicest of guys out there when it comes to open source project management.
Why do you think so?
https://github.com/olilarkin/awesome-musicdsp
Because of this recent post here:
viewtopic.php?f=33&t=565161

And I guess if unless I wasn't making paid plugins, it would be fair to pay for JUCE, kind of like how the licensing with the Qt UI framework works.

But I'm still interested in FAUST. I don't know how much you know about it, though.

Post

iPlug2 is in beta, and Linux support is not even alpha, and no LV2, I think this must be main point for quick choice.
Because of this recent post here:
viewtopic.php?f=33&t=565161
Wow, this so serious...
Really, you'll see developers in contradiction everywhere. Does it scares you?
But I'm still interested in FAUST. I don't know how much you know about it, though.
afaik FAUST is great for DSP and prototyping, not sure if it's good for the rich GUI.
And I guess if unless I wasn't making paid plugins, it would be fair to pay for JUCE, kind of like how the licensing with the Qt UI framework works.
My English is not enough to parse this. Why you gonna pay for JUCE if your plugins are not closed source?

And let me say again, true libre frameworks are available: https://github.com/DISTRHO/DPF https://dplug.org/ - D language

Post

tristanbay wrote: Thu Jun 10, 2021 11:48 pm Because of this recent post here:
viewtopic.php?f=33&t=565161
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.

Post

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.

Post

In my understanding, using open-source tools to develop your own software doesn't necessarily require you to release your software as open source yourself. It probably depends on some details of the tool's license.

Hopefully someone else more knowledgeable on the subject will be along to explain things better.
A well-behaved signature.

Post

github.com/juce wrote: There are multiple commercial licensing tiers for JUCE, with different terms for each:

JUCE Personal (developers or startup businesses with revenue under 50K USD) - free
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

JerGoertz wrote: Fri Jun 11, 2021 6:35 pm In my understanding, using open-source tools to develop your own software doesn't necessarily require you to release your software as open source yourself. It probably depends on some details of the tool's license.

Hopefully someone else more knowledgeable on the subject will be along to explain things better.
It depends on the license. Some licenses (notably GPL, but there are some others) require you to also publish any derivative works under the same license, while other so called "permissive" licenses don't have such a restriction.

Post

tristanbay wrote: Thu Jun 10, 2021 11:08 pm from what I've read, the main dev, Oli Larkin, doesn't seem to be the nicest of guys out there when it comes to open source project management.
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.

Do you think I really deserve this kind of treatment?

The reason that there are not more options in this space is because creating something like iPlug2 is an insane amount of work, and most people are more focussed on their own plug-in products/businesses, than on tools that benefit the wider community, that don't have direct financial benefits (just because people can donate a few dollars to support iPlug2 development it doesn't mean I get paid to develop it).

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?

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. As mentioned before DPF is a nice project which has very good linux support if that is important to you.

Oli

Post

hibrasil wrote: Sat Jun 12, 2021 8:09 am Do you think I really deserve this kind of treatment?
You don't and I don't think anyone can claim otherwise with a straight face.
Last edited by mystran on Sat Jun 12, 2021 12:44 pm, edited 1 time in total.

Post

mystran wrote: Fri Jun 11, 2021 7:39 pm
JerGoertz wrote: Fri Jun 11, 2021 6:35 pm In my understanding, using open-source tools to develop your own software doesn't necessarily require you to release your software as open source yourself. It probably depends on some details of the tool's license.

Hopefully someone else more knowledgeable on the subject will be along to explain things better.
It depends on the license. Some licenses (notably GPL, but there are some others) require you to also publish any derivative works under the same license, while other so called "permissive" licenses don't have such a restriction.
Actually upon reading the original post and the part that I quoted a bit more carefully, I feel like I need to explain my comment above a bit: some licenses like GPL require that all "derivative works" also fall under GPL and what this means is generally clear when it comes to regular software using parts of another library or piece of software. So for example, using JUCE under GPL forces you to also release the plugin as GPL.

However, when it comes to tools like compilers or code-generators we might enter somewhat of a gray area and unfortunately not all authors are clear on their intentions. I am certainly not a lawyer and therefore cannot give any legal advice, but I want to observe that some larger projects (such as GCC for example) explicitly exclude the compiled binaries from the scope of GPL to avoid such confusion.

If the licensing of FAUST does not clarify the issue (and I can't seem to find anything on the subject other than the stock GPL text in a github repo), then it might be worthwhile to contact the authors on their opinion on the matter on whether they consider the produced C++ code to be "derived work" in the sense of GPL. It might be the case that this is their intention, but it also might not.

Post


Post

Ianal, tinla (IamNotALawyer, ThisIsNotLegalAdvice) etc, and please correct me if I am wrong, but the way I read it: https://juce.com/juce-license
Section 2.2.4 explicitly permits you to develop and sell closed source software with Juce. When you make less than $50k revenue, it is free.
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

Thanks. I tried to find something like this, but my Google-Fu failed me this time. :)

Post Reply

Return to “DSP and Plugin Development”