I managed to get the CLAP plugin working on my Linux dev machine, and also on my main Windows machine inside a fresh VM running Ubuntu 24.04.3 LTS and Bitwig.
I’d be very happy to hear from others how well it runs on their Linux systems!
There is a lot of work still missing, I was focusing only on what I absolutely need to get a usable Linux version of my plugin going. Haven’t shared the code anywhere online yet, am really busy and have to prioritize, sorry. I hope to eventually get around to that, but also would want to avoid putting yet another fork of stuff online.
As a starting point, I recommend to clone the above repo, switch to its linux branch, and try to build the IPlugInstrument example using cmake.
Have a look at its CMakeLists.txt file, towards the bottom you’ll see a call to iplug_setup_plugin that includes a parameter specifying what plugin formats to build.
I recommend changing that to app first to only build the standalone app, or it will give you plenty of errors due to missing SDKs etc for some formats.
You’ll also need to have a few packages installed to be able to build. Have a look at this post: Linux support or iPlug2 - #2 by olilarkin
It’s an old post but helped get me started. There are probably more but I can’t remember, but it can be figured out from the error messages you’ll get when building.
To set up the cmake build, I run cmake -S . -B build-linux. For my own project that sits outside the repository, I’m also adding the -DIPLUG2_SDK_PATH=/home/youruser/path_to_iplug2 option to point it the right way.
If that succeeds, I run cmake --build build-linux to actually build.
I think that was enough to get the IPlugInstrument standalone app to run at least.
Once that works, you should be able to replace its code with your own.
Perhaps you’re more interested in effects plugins .. in that case you’ll probably have to copy the CMakeLists.txt from the IPlugInstrument and modify it as needed, because other example projects seem to still use an out-of-date setup in theirs .. I’ve been able to create an effects plugin doing so, changing channel-io to 2-2 and category to audio-effect
Building clap and vst3 mostly works the same way after adding the respective SDKs just like you would on win or mac.
Once you manage to build and run, you’ll probably encounter some UI issues and crashes. A lot of it is due to unfinished linux code in the framework. I spent a lot of effort there already and it would be a pity if you’d have to do it on your own again .. let me see if I can find some time to get my code uploaded, perhaps early next year!
However, on my 16" 4K ThinkPad Z16 AMD Gen1 running GNOME 49 on Arch Linux with Wayland, the plugin opens tiny, and there doesn’t seem to be an option to scale it yet.
That said, I really liked the synth after playing with it for 10 minutes.
Let me know if there is a place where I can file a proper bug report.
@amadeus Good to know the plugin runs on your distro too!
There is an option to scale the UI, perhaps you missed it?
You can click the logo text in the top left corner to open up a settings menu, UI size should be the first option there. Let’s hope that works on your side too
I don’t have a proper place for bug reports at this point, feel free to post here or send me a DM if the issue persists.
@FullBucket nice to see you active on the forum here as well! I’ve known about your plugins for a long time, it seems a lot of people would be happy to see them come to Linux!
I’ve been quite busy recently but will hopefully have some time to look into this again this week!
As mentioned before there is still missing stuff and I’m currently not actively working on it due to priorities ..
For example, if you need text entry or popup/context menus, make sure to use IGraphics::AttachPopupMenuControl and IGraphics::AttachTextEntryControl when setting up the UI at least for linux, because support for their native counterparts isn’t really there yet.
And so far I’m only able to get CLAP plugins loaded in any host.
I manage to build VST3 (with a little edit to a cmake file) but the hosts i tried so far refuse to recognize it properly.
I try to build stuff using WSL2 on Windows 11 (distribution is Ubuntu). After some worries I am finally stuck with this error when doing cmake -S . -B build-linux :
-- CLAP version: 1.1.8
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'iplug'
CMake Error at /mnt/d/linux/iPlug2/Scripts/cmake/IPlugFunctions.cmake:887 (execute_process):
execute_process failed command indexes:
1: "Child return code: 1"
Call Stack (most recent call first):
/mnt/d/linux/iPlug2/Scripts/cmake/BnFunctions.cmake:425 (iplug_build_config)
/mnt/d/linux/iPlug2/Scripts/cmake/BnFunctions.cmake:425 (cmake_language)
/mnt/d/linux/iPlug2/Scripts/cmake/IPlugFunctions.cmake:773 (bn_cache_call)
CMakeLists.txt:97 (iplug_setup_plugin)
My limited knowledge tells me that the local “iplug” python module is not available. Any ideas how I can get it installed?
Interesting, I haven’t encountered this before.
The iplug python module is part of the repository, it’s module folder is located under Scripts/iplugpy.
I found that the cmake build scripts are creating a python venv (virtual environment) using bn_make_python_venv. If you look for that in the cmake scripts, you’ll see that it should get access to the iplug python module.
When running cmake on a clean repo, i can find these lines in the output:
-- Found Python: /usr/bin/python3 (found suitable version "3.12.3", minimum required is "3.8") found components: Interpreter
-- Creating Python venv in /home/tom/devel/iPlug2bn/.venv
On subsequent runs it simply reuses that, so i get this line instead:
-- Using Python venv in /home/tom/devel/iPlug2bn/.venv
My knowledge about python venvs and WSL2 is very limited, but from what I can find online it seems that WSL2 might behave differently there, which might ultimately be causing this problem for you.
Maybe you could check your console output again to see what is happening with the python venv setup, or maybe you’ll need to dig deeper into how bn_make_python_venv actually sets this up to get it working under WSL2 as well.
Thanks for the reply! I got the same result for a “native” Ubuntu system…
Anyway, still under WSL2 and after removing the .venv directory (which was there!) plus removing some other cache & build directories, the cmake started to work! Don’t ask me why…
Now I have a lot of compile errors (which is something I am used to, i.e. good).
OK, after some cmake-and-code-massaging I get the VST2 and the CLAP built, but the VST3 somehow ends up in a bunch of directories, resource files and a single executable which does not execute . Looks like there’s a final glueing step missing…
Anyway, it’s more than a proof of concept right now.