ALSA. Jack. PulseAudio. MIDI. Musescore. Jamulus.
My musical interactions with Linux are not the most complex in the world, but they ain’t trivial. The complexity of the Linux audio landscape has been a stumbling block so far. Pipewire has just gotten me past that.
The title of this article implies that you need to do something other than install Pipewire. So far, this is not true. On my system, at least, it Just works.
sudo yum install pipewire pipewire-libjack pipewire-alsa pipewire-plugin-jack pipewire-pulseaudio
reboot. Pipewire has replaced pulse, and there is no need to stop pulse to run jack and get MIDI to work.
The above screen shot from QJackCtl‘s Graph view shows everything wired up. There are two MIDI input Devices connected via USB: EWI-USB and My Casio Electric piano. These are connected via MIDI to the FLUID Synth app (running behind QSynth).
By default, QSynth outputs it sound to the built in audio device. This works fine. However, I want it to go to Jamulus, so I hear with the Latency delay, and I know how in-sync I am with other players. To get this to work, you can see what I did on the lower QSynth box; the green connectors are now also connected to the Jamulus app. In order to hear only the sound through Jamulus, I can delete the left/right connectors to the Build-In Audio.
I can play audio from Musescore at the same time.
I can play something via Firefox at the same time.
I can do this all at once.
I finally feel like I have control of the audio subsystem on my Fedora machines. It is a pretty good feeling.