a while ago i posted my electronic music studio setup here with some instructions on how to get it running with jack and pulseaudio. i have since progressed to pipewire and am really liking it as it simplifies things considerably and runs reliably.
here are some pointers as to how i did it:
first replace jack with pipewire with the packet manager of your choice. if you run into dependency issues remove the jack side of it.
after getting it up and running go in pavucontrol/audiomixer and select your soundcard under input/output devices. there is a PRO option for studio soundcards with lots of channels.
start up your usual pulse audio applications like web browser or music player. they should be listed in pavucontrol/playback and you can select the correct output device for each application.
install carla as it works perfectly with pipewire as plugin host and connection manager. in carla/patchbay you should see all your running application, in/output audio and midi channels.
now install NSM Legacy, its a very good sessions manager that lets you startup all your studio applications with one click. add them all as clients. also add a connections manager called JACKPatch which will record every connection you make in carla and will automatically reconnect everything once you saved your setup.
since we connect everything through carla and JACKpatch we need to get rid of autoconnecting:
for jack we can just edit the configuration files. copy them as described in the below link and add the following line: “jack.self-connect-mode = fail-all” in the file jack.conf. voila no more jack autoconnect! here we can also set the latency for jack connections with “node.latency = 256/48000” and many other settings.
this wiki has all relevant info on pipewire:
for pulse audio autoconnections the solution is a bit more complicated as applications like google chrome will misbehave if they cant connect to an audio output. here we need to create a virtual audio output sink which will show up in pavucontrol as output option for all pulse audio applications.
after that all pulse audio application will autoconnect to this sink. the output of this sink can then be connected to anything in carla so any setup is possible.
this is described here:
in my case i wrote a shell script that i autostart via the session manager which creates the sink.
pactl load-module module-null-sink media.class=Audio/Sink sink_name=my-sink channel_map=stereo
here are two screenshots of my setup:
in carla you can see my audiocard RME raydat with 64 channels. all pulse audio applications are connected to a virtual sink. all jack and the sink outputs first go through an EQ which optimizes the spectrum of my monitor boxes and then to the raydat out. the midi connections are in red.
i use pure data as my main sequencer and record everything in reaper which is permanently connected to the monitor out of the raydat. there is also a high precision digital output meter that monitors the audio. in the upper right corner is the session manager with all application which will start up and connect everything correctly.
audio results can be listened to here. Stream lilakmonoke music | Listen to songs, albums, playlists for free on SoundCloud
its all rather self explanatory but ask if it needs to be clarified. A BIG UP for the pipewire developers! this is levels up from the jack/pulse mess we had before and its only the beginning.