Skip to content

Instantly share code, notes, and snippets.

@killertofus
Created June 13, 2025 04:22
Show Gist options
  • Save killertofus/3040e9b099cffcad545c5153d6906b17 to your computer and use it in GitHub Desktop.
Save killertofus/3040e9b099cffcad545c5153d6906b17 to your computer and use it in GitHub Desktop.
[[Category:Sound]]
{{Related articles start}}
{{Related|Professional_audio}}
{{Related|Sound system}}
{{Related|JACK}}
{{Related|Realtime kernel}}
{{Related|envy24control}}
{{Related articles end}}
== Installation ==
Guitarix interacts with JACK to provide real-time, low-latency audio. For pipewire users, there is a pipewire implementation called pipewire-jack. We will use qpwgraph to create the correct audio routing, i.e. from the audio interface to Guitarix and from Guitarix to the speakers.
Cinnamon can be [[install]]ed with the package {{Pkg|guitarix}} {{Pkg|pipewire-jack}} {{Pkg|qpwgraph}}.
== Groups ==
To ensure we have least latency for the user running guitarix we need to add them to the following [[user group]]:
realtime
audio
== Latency ==
To reduce the audio latency we want to set the required node.latency in pipewire-jack. To do this, we first copy the sample file to the user’s config:
$ cp /usr/share/pipewire/jack.conf ~/.config/pipewire/jack.conf
Then we change the node.latency value to 128/48000 by uncommenting and modifying the line.
== Ulimit ==
Finally, make sure that your ulimit -l value is set to unlimited. If not, you’ll see an error like system init *** mlockall failed . If your ulimit value is not unlimited, you can create an exception rule by creating the file /etc/security/limits.d/audio.conf with content:
@audio - rtprio 95
@audio - rtprio 95
== QPWGraph ==
In qpwgraph make sure you pipe the output of your audio interface to the input of guitarix and the output of guitarix to the input of your speakers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment