After spending a few days working with the DPF framework, I've decided to migrate my plugins away from JUCE and over to DPF, the DISTRHO Plugin Framework. I've also started tearing JUCE out of Dusk Studio, for some of the same reasons.
This is why:
JUCE is a great framework. It powers a huge slice of the commercial plugin world. But it was built cross-platform first, with Linux treated as the polite afterthought. On Linux, that shows up in real ways. The LV2 support is a thin wrapper. JUCE 8 has no native CLAP, which is the modern open plugin format that Bitwig, Reaper, Qtractor and many people in the Linux world actually want. The binaries are heavy. And a lot of the framework assumes a world that Linux audio users don't live in.
I kept working around all of the issues that popped up. Using my own software on my OpenSUSE Leap workstation running GNOME/Wayland was a struggle. Continuous struggle with the software's foundation is a sign the foundation is wrong.
DPF is the opposite trade. It is small, it is built by people who actually live in the Linux audio world, and it ships real LV2, real CLAP, and VST3 from a single codebase without fighting me. CLAP is the part that matters most. It's the one modern plugin format with a genuine future on Linux, and it's the only one with a real path to running natively under Wayland instead of through a compatibility shim. That work is happening inside DPF's own toolkit, not inside JUCE, so when it lands my plugins get it for free. Meanwhile the plugins already get lighter, the formats are first class instead of bolted on.
Two plugins are already converted. Tape Echo was the first full program I did and it's now the template for everything else. It's not ready yet, but it's close. Check this out:
I just finished the 4K EQ 2 conversion, with a completely new interface instead of the old JUCE look. I should have a release for this out this week. Here is the old vs. new 4K plugin:
4K-EQ:
4K-EQ-2:
TapeMachine, Multi-Q, Multi-Comp, DuskVerb and the rest are queued up behind them.
Because I don't want to break anyone's previous sessions, every plugin gets split into two versions. The DSP gets rewritten as plain C++ with zero framework in it. That core is now portable and mine, not tied to anyone's toolkit. Then a thin DPF shell wraps it, with a new UI on top. The new builds ship as version 2 of each plugin, side by side with the current ones, so the old JUCE versions stay installed and working and nothing breaks old sessions. Once a v2 is proven, it will be the one I point people to.
If you're on Windows or macOS, none of this really matters. The v2 builds stay cross-platform, VST3 and CLAP everywhere plus a proper Audio Unit on macOS, so they load in Logic just like the current ones. Linux is simply where the pain was worst, so it's where the work started.
Dusk Studio got the same treatment where it hurt most: plugin hosting.
The old JUCE plugin hosting was flaky, worst of all on my own Wayland desktop. Plugin editors wouldn't embed properly in the window, and menus and popups would float off on their own and land in the wrong place. It looked broken because it kind of was. So in the latest build I ripped that layer out and wrote my own native CLAP, LV2 and VST3 hosts. Now editors embed reliably, menus and text fields stay inside the app where they belong, and plugin scanning is sandboxed so one bad plugin can't take the whole DAW down.
That is the bulk of the de-JUCE work coming up in v0.12.0, about 11k lines swapped out so far, the biggest pieces being:
Native LV2 host: ~4,000 lines
Native VST3 host: ~3,000 lines
Host consolidation and parity: ~1,000 lines
Multi-plugin and sandboxed scanning: ~1,000 lines
I can't fully replace JUCE in Dusk Studio without a full rewrite, so I'm carving out the pieces causing the most pain first.
This is slow, unglamorous work. Nobody hears or even cares about a framework migration. I personally think the new 4K EQ looks way better and I get to maintain the Linux first approach.
Thanks, as always, for backing my work. Let me know what you guys think of the new UIs.
Marc