View Issue Details

IDProjectCategoryView StatusLast Update
0009304ardourfeaturespublic2023-04-22 18:16
Reporterautomaciej Assigned Topaul  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionwon't fix 
PlatformApple MacintoshOSMacOSOS Version10.12 or later
Product Version7.3 
Summary0009304: Make it possible to use UI for Calf plugins
DescriptionCalf Plugins are a suite of excellent multiplatform open source audio plugins from https://calf-studio-gear.org/

There are two github issues related to them and macOS:
Calf plugins for macOS: https://github.com/calf-studio-gear/calf/issues/72
GTK UI for Calf: https://github.com/calf-studio-gear/calf/issues/324

Calf Plugins are available on macOS via brew.

Calf plugins without the graphical interface not very usable. It's possible to adjust parameters by reading text labels, but most of the real time feedback is missing and it's hard to figure out how the plugin is interacting with my audio.

It's not currently possible to enable the graphical UI in Ardour in macOS. It's possible to compile Calf Plugins with GTK support using brew, but when you try to open a plugin, Ardour immediately crashes.

AFAIU, it's because of clashing GTK libraries. One GTK library comes with the official Ardour binary, and the other comes with homebrew. (Disclaimer, I might be wrong about this, I just read it in the github issues linked above.)

Calf / homebrew is just an example of a plugin that happens to contain clashing symbols, and I could imagine other plugins running into the same problem. I'd argue that since Ardour is a binary distribution, it's on Ardour's side to make that binary compatible with plugins using standard toolkit libraries.

Could you see any way of achieving this compatibility? How to have Ardour and Calf compiled with the same version of GTK?
Steps To Reproduce1. Take a macOS machine.
2. Install Ardour on it.
3. Compile Calf on it using `brew reinstall --with-gtk+ --with-cairo calf`.
4. Create an Ardour project and try to open a Calf plugin.

Ardour will crash.
Tagsgtk

Activities

x42

2023-04-15 22:17

administrator   ~0027586

First of all, the calf plugin's DSP is, to put it mildly, far from great. You're well advised to avoid those plugins for pro-audio) [1,2,3,4].

As for the issue at hand. GTK (like QT) is not suitable for plugin GUIs because it requires the host and plugin to have the exact same ABI of the toolkit.
Plugins are supposed to be self-contained and not rely on external libs, with GTK this is not possible. All plugins have moved away from GTK, except CALF.
In order to use calf plugins both ardour and the calf plugins have to be compiled with the exact same version of GTK. -- You might be able to archive this by compiling Ardour via brew.

[1] https://discourse.ardour.org/t/how-to-achieve-multiband-processing/102498/16
[2] https://discourse.ardour.org/t/30-band-calf-eq-plugin-error/99728/12
[3] https://discourse.ardour.org/t/decrease-db-with-automation-for-a-lowshelf/100088/2
[4[ https://github.com/calf-studio-gear/calf/issues/217

Issue History

Date Modified Username Field Change
2023-04-15 22:04 automaciej New Issue
2023-04-15 22:04 automaciej Tag Attached: gtk
2023-04-15 22:17 x42 Note Added: 0027586
2023-04-22 18:16 paul Assigned To => paul
2023-04-22 18:16 paul Status new => resolved
2023-04-22 18:16 paul Resolution open => won't fix