Linux Mint and SC 3.13

A couple of years back there was a topic regarding Linux Mint and SC. Now we are in the PipeWire era, which apparently means that audio on Linux is STILL a PITA.

The most recent online comments were from 2023 or 2024, and none of them worked. I’d really like to learn SC but it is a bit of a bummer my journey ends before it can even start…

Since I don’t know SC at all, I don’t really know where to look. Any help would be greatly appreciated!

For whatever it’s worth, I’ve been using Pipewire for a year and a half, and my experience with it has been diametrically opposite of PITA. In hindsight, I wish I had switched sooner. It’s amazing to me to have a properly functioning audio system instead of the hacked-up Frankenstein’s monster with PulseAudio JACK modules that we all had to do before. Everything with audio (in Ubuntu Studio) is easier with Pipewire.

I’ve taken SC onstage with Pipewire, and it’s been completely reliable.

Some older posts say you need to change the SC server command to pw-jack scsynth, but this isn’t necessary anymore. SC should work right out of the box (at least, it does for me).

One bit of advice would be to install RaySession as a patch bay. The pre-installed qpwgraph is… hmm… not a well-designed interface.

Is there a specific problem you’ve encountered? If you’re relying on information from 2023 or 2024, I can imagine that might be worrying, but my information from 2026 is not.

hjh

2 Likes

I had hoped my experience would have been the same as yours - BitWig and VCV Rack have worked excellently.

When I press CTRL-B for server boot, it starts the process but then informs me that audio could not be initialized. So I presume this is somehow still the JACK issue. I installed SC (3.13) from the software manager, so not my own build (I am an “end user” of my linux system with a limited knowledge of internal plumbing…).

I somehow suspect something has gone wrong with the install nonetheless, because I can’t find the startup.scd file that some advice to change to include PipeWire - I do have hidden files and folders visible. The SuperCollider IDE works as it should but the “messaging pane” mentioned that it uses JACK. I have to copy the output here when I get to my other computer, otherwise it is difficult to troubleshoot obviously.

So, to be continued!

I think you only have older versions of those packages.

Have you tried starting the SC IDE from the terminal with pw-jack scide?

2 Likes

That worked!

Great, I changed the start-up command in the start menu also, so now it works.

Thanks a bunch, this made my day!

FWIW, this is kind of a sledgehammer approach :wink: The IDE does not connect to audio devices, so it doesn’t care whether you’ve started it with pw-jack or not.

It happens to work because starting the IDE with pw-jack implicitly starts sclang (a sub-process) with pw-jack, which in turn boots the server as a 2nd-level subprocess with pw-jack.

So a more targeted solution would be to change only the command that starts the server: 1. File → Open startup file. 2. Add:

Server.program = Server.program.replace("exec", "exec pw-jack");

I’m afraid I can’t explain that. I have never needed to do pw-jack ... in Ubuntu Studio. I guess it’s possible that the Ubuntu Studio people put in some magic hidden configuration that automatically does it…?

Anyway, whatever works.

SC will, for the time being, keep using JACK. (There’s a “request for consideration” to add a native Pipewire audio backend, but I have no idea when that might be promoted to a pull request.)

In a Pipewire system, there is no JACK or PulseAudio (or even ALSA I think? though it’s unclear to me whether Pipewire depends on ALSA for USB audio device drivers, as JACK did). On my system, ps x | grep jackd shows no JACK server process.

When an application requests to connect to a JACK server, Pipewire responds by faking responses to JACK function calls, and the app is none the wiser. SC is still written to use JACK, but Pipewire is providing the JACK behavior instead.

hjh

Can you tell where I can find that startup file? I tried searching for it but I haven’t found it…

If I’m not mistaken running SuperCollider with Pipewire still needs pipewire-jack to be installed - which is NOT the same as native JACK: https://wiki.debian.org/PipeWire#JACK
After that I could run SuperCollider through Pipewire without any problem (no jackd process running). pipewire-jack probably doesn’t come preinstalled with Pipewire.

In the File menu, there is a command to open the startup file. If you don’t have a startup file, the IDE should give you an empty document with the path set, so that it would save to the right location.

hjh

1 Like

pw-jack is just a small shell script. see cat $(which pw-jack)

It doesn’t start JACK, translate audio, or run a bridge. All it does is prepend pw’s JACK shim directory to LD_LIBRARY_PATH and exec, that’s it. The app then resolves PipeWire’s libjack.so.0 instead of jackd

So for SC the two are alike. Under pw-jack scide the variable is also set on scide, sclang, and anything sclang spawns, but nothing there loads from that directory, so it costs… nothing. pw-jack scide is simpler and costs nothing. No need to tweak sclang, but you free to choose, of course. But that’s disproportionate noise.

Ah, I was searching in the wrong place. I was digging around in SC’s folders…

I know this a bit of off-topic, but…

THANK YOU SO MUCH FOR THIS.

$ apt install raysession

was all it took… and… this is 10x more useful!

1 Like