Running Rosegarden Music Composition Software on Linux with PipeWire

 2024-07-05

 Void Linux

This article is the English version of the article titled ‘Linuxで使える作曲ソフトRosegardenをPipeWire環境下で動かしてみた’.

What I tried to do this time

If you look into Rosegarden, a DTM software that can be used for composing music on Linux, you will find many examples of using the audio server Jack. This time, I will try using Rosegarden in the PipeWire environment that I recently introduced as an audio server. An example of introducing PipeWire to Void Linux was published in [I tried switching the Void Linux audio server from PulseAudio to PireWire] (https://note.kurodigi.com/void-pipewire/). I hope this will be helpful to those who use Jack but find it troublesome to coexist with other audio systems. I will not go into the details of how to use Rosegarden this time. (My composition skills are poor, so it was difficult.)

What is Rosegarden?

Rosegarden is a DTM software and MIDI sequencer for people who like to compose music based on sheet music. Although it is a DAW software, it is software for people who create music by inputting MIDI rather than recording.

Rosegarden itself does not have a MIDI sound source and can only generate MIDI signals, so you need to connect Rosegarden to a MIDI sound source to produce sound. Rosegarden uses the Alsa sequencer function to output, so you need a MIDI sound source (software/hardware) that is compatible with Alsa sequencers. This time, I will use fluidsynth as a software MIDI sound source to produce sound.

Also, Jack is used for audio support, so if you want to use audio for reasons such as importing audio, Jack is required. If you do not handle audio and compose music only with MIDI, Jack is not necessarily required.

Install PipeWire

I wrote details about installing and configuring PipeWire in I tried switching the audio server of Void Linux from PulseAudio to PireWire. This article is for Void Linux, but I think it is almost the same for Ubuntu and Arch Linux. Please refer to it.

Install and configure Qsynth

First, install Qsynth, which is the sound source. Qsynth is a Qt front-end for fluidsynth. For Void Linux, install it with the following command. For Ubuntu, you can install it with APT, and for Arch Linux, you can install it with pacman. Let’s also install the sound font soundfont-fluid. We will show the Void command as an example, but you can also install it from the repository for Ubuntu/Debian and Arch systems.

sudo xbps-install qsynth

After starting Qsynth, press the setup button to display the setup screen. Select the MIDI tab and set “MIDI Driver” to alsa_seq.

qsynth settings

Select the Audio tab and set “Audio Driver” to pipewire. Now you can output sound from PipeWire.

qsynth settings

Starting Rosegarden

If you don’t have Rosegarden yet, install it from the official repository of each distribution.

For Arch Linux

# pacman -S rosegarden

For Void Linux

# xbps-install rosegarden

For Ubuntu and Debian

# apt install rosegarden

I think you can install it without any problems. Now let’s start Rosegarden. Here’s a note. To use audio with Rosegarden, start it with the following command.

pw-jack rosegarden &

Starting it with this command will allow PipeWire to take the place of Jack, allowing you to handle audio functions such as recording.

Connecting to Qsynth

First, connect Rosegarden to Qsynth, the sound source, so that you can output MIDI sounds. From the “Studio” tab, select “Manage MIDI Devices” and select the device you want to connect.

qsynth connect

Sound is now being output from Rosegarden via Qsynth. This connection is via Alsa. Just to be sure, let’s check it with qpwgraph. You can see that Rosegarden and fluidsynth are connected. You can also see that fluidsynth is outputting sound via PipeWire output.

qsynth connect

Handling audio

If you start Rosegarden with the pw-jack command, you can connect to an audio interface or other music software and import sound sources as if you were using Jack. This time, we will try recording the sound of a guitar from an audio interface.

First, use qpwgraph, a PipeWire GUI tool, to check the connection between the device and Rosegarden.

qsynth connect

Set the track parameter to “audio” to confirm that the audio is in Rosegarden and record it.

qsynth connect

qsynth connect

Summary

This article explores how to use Rosegarden without Jack using PipeWire. It is less cumbersome than using Jack, and there is no inconvenience of not being able to use OS audio while using Jack. When researching DTM on Linux, the Jack audio server always comes up, but I thought that by replacing it with PipeWire, I could use DTM software without Jack. I am not very knowledgeable about audio, so if there are any errors in the article, I would appreciate it if you could let me know.