Replace Calf Plugins

Hi everyone
Since we want to use our old Ardour 8 projects—in which we worked with Calf—in Ardour 9, I had the idea today that I could have Claude write a script to convert the presets I export from Calf so that they can be imported into the x42 plugin as accurately as possible. I think he did a great job, and maybe this idea will help someone else who has the same problem make the switch without too much hassle and without having to start the mix from scratch.
Since we use 12 bands, there were two presets where we used x42 in series.
Screenshot (old calf new x42):


Script:

2 Likes

Just so you know, Calf’s developer just updated the plugins to use React web UI instead of GTK, so they’ll be compatible with Ardour 9. It looks like he’s updated the DSP too.

2 Likes

Except they now use GTK3 and gtk-webkit :exploding_head:
They make the same mistake again, and it’s even worse now.

The plugins will not work with Ardour binaries. They acknowledge this in the ReadMe. Furthermore, the plugin changing the env (LD_LIBRARY_PATH) will also break loading ctrl surfaces in Ardour after loading a calf UI.

Also so far only VST3 plugins. So there is no session compatibility either.

as you say: it only looks like it.

1 Like

Well that sucks. I was really hoping to use them, especially the tuner. :frowning_face:

And the new Tone3000 plugin README.txt :

Runtime dependencies
--------------------
The plugin UI renders in the system WebKitGTK webview. If it is not
installed, the plugin window will show a BLACK SCREEN.

Required: WebKitGTK 4.1 (or 4.0), GTK3, ALSA, FreeType.

:nauseated_face:

Ardour : No GUI
Reaper 6.83 - Crashes
Bitwig 5.13 CLAP works…

…and how does this work on Windows and macOS?

…also GTK isn’t even ABI stable, so it may not work across distros.

(last I checked REAPER’s libSwell uses gtk3, which may or may not cause conflicts)

Anyway we’re getting somewhat OT here…

I have not used calf plugins since perhaps two decades, so I have no direct use for the script, besides I already use the x42-eq.

I’m glad that @MimoMusic not just solved his problem but also shared a solution for others.

I expect a perhaps better match would have been Linux Studio Plugins Project EQ since that offers more bands, and also similar slope configurations matching the calf’s biquad implementation.

…but I’d also have used x42-eq, so there’s that. :slight_smile:

1 Like

Yes, it was more about the process of switching from one plugin to another. Since both plugins are open source, the script tries to match the frequency response. I think that should work with many plugins. While the results won’t be exactly the same, they’ll at least be similar enough that one can continue working with them.
Tone3000 are working fine on my ardour9.8 on ubuntu 26.04. Calf was never working on then (until today). Calf might not be perfect, but my colleague actually liked them. He says it felt natural to work with them. But now we’re switching.

That’s only for Wayland from my understanding of it, and on Ubuntu. X looks to be fine for the most part. I can investigate it and see what happens on Artix (Arch-base).

Once again, it’s purely a Wayland problem, unsolvable if IBM gets their way. It’s incompatible with most software, and the push to adopt it will break things like never before. That’s from my understanding of Wayland compared to XOrg (or XLibre like I use).

I use the LSP plugins as well, but I need to use your plugins more, Robin. I hadn’t used them in a little while, though I have them installed.

EDIT: I figured something out myself, with LLM help of course (on Artix, as I said). You need to make sure, once offline stuff is built from source (including the ui/dist folder is installed where it should be), you disable the WebKit GPU rendering (labeled as WEBKIT_DISABLE_DMABUF_RENDERER=1), and Calf’s GPU rendering if needed (labeled as CALFNXT_WEB_NO_GPU=1). The latter might be required, though the former certainly is.

sadly this is not correct. The plugin unconditionally dynamically links against system wide gtk3 and gtk-webkit (see calfnxt/CMakeLists.txt at 547d0239488c63dd67f7d56731d37bb0b2165f8c · boomshop/calfnxt · GitHub).

Nope, this is entirely unrelated to wayland.

Besides, Ardour does not even support Wayland. VST3 plugins on GNU/Linux are all X11.

CalfNXT plugins work in Ardour 9. But the RAM consumption is enormous. About 200MB per plugin.

Only in self or distro builds of Ardour that don’t conflict with gtk3 (and for some definition of “works”.)

If you make your script output APO Equaliser config files
https://sourceforge.net/p/equalizerapo/wiki/Configuration%20reference/
you could load them directly into LSP Equaliser. (or, self promoting, into ToneShiftEQ)

1 Like

This graphic toolkits situation is very unfortunate. I get the complexity of the problem, but it’s just such a mess and consequently - such a waste from the user perspective.
Somebody wise and knowledgeable should step in and do for graphic toolkits what Pipewire did for sound (or is trying to do, at least).
This is just an opinion, but it seems to me that there’s no point of putting such an effort in creating floss plugins with these toolkits if the future development is going to render them completely obsolete.
Calf had it’s problems, but i remeber using their limiter and 5 band parametric EQ a number of times in the past and being very pleased.

2 Likes

The graphics toolkit situation has always been actually very simple. On X11 systems, you use an X11 window and you render into it. JUCE has cross-platform toolkits to do this, (as does the VST3 SDK, and even going back to VST2) if you don’t want to create your own. Similarly on Windows it would be an HWND and you render into it. The problem comes when plugin developers insist on using GTK or other inappropriate application UI toolkits (which would also be an issue on other OS). Its an issue of developers choosing the wrong tool for the job.
This isn’t a uniquely Linux problem specifically, but for some reason it seems to be uniquely misunderstood by Linux plug-in ‘developers’. I don’t know if I qualify as ‘wise’ - though I’ve been doing this for a very long time (and I was one of the first developers to make Linux plug-ins with UIs that, worked) - but I’ve given up trying to argue for common sense (most recently around proposed changes to the VST3 Wayland UI extension) because I just get shouted down. So, its a mess unfortunately.
Coincidentally I’ve also noticed a preference for Webview / Webkit UIs (for which effectively read GTK) in the deluge of vibe-coded plug-ins appearing recently too, so I suspect its going to get worse :frowning:

7 Likes

Ahhh sooo…Now it’s begining to make sense. Aldo i’m not a dev, this situation is now much clearer even to me.


But…here goes another stupid qustion:
Does that mean that devs could fairly easily correct their mistakes by rendering their GTK-created gui elements in x11 window ( is that possible ) and then “relink” those newly rendered gui elements to the rest of the plugin code (to the functional, non-gui part of it) ?
(if that even makes any sense…as i said, i’m not a dev, i’m only guessing how it all works)

I can’t say what makes sense for other developers specifically. From my own point of view, I developed my own UI toolkit which generally worked for me. The alternative would have been to use JUCE for example. With webviews you do get a lot of things, like accessibility features etc, for free, but as we’ve seen it also comes with a lot of extra baggage that can cause problems too.

(OT - I’m much less involved in all this now because this year has shown me that there is no longer anything creatively, intellectually (or even financially) rewarding for me in spending a year researching, developing, and testing a new plug-in when anyone with an AI can vibe-code something they think is good enough, in a couple days - but that, quite literally is another topic entirely).

2 Likes

Reading about JUCE right now…it makes most sense…it’s libre, it’s C++, it’s cross-platform, it’s widely used, it’s compatible with Ardour. Basically, one needs to rewrite GUI components of plugin and that’s basically it.
There’s no direct way to convert existing GTK GUIs tu JUCE, unfortunately.

This is a great thing, I will try it.
For the moment I use 8.2 for every Project I need to continue wirth calf, but newer Version of Ardour for new projects, where it’s quiet a lot of work to get new plugin settingsas close as possible to my former effect settings with calf.

This is a little annoying on juce plugins

1 Like