<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.nixos.org/w/index.php?action=history&amp;feed=atom&amp;title=Electric_guitar_interface_setup</id>
	<title>Electric guitar interface setup - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nixos.org/w/index.php?action=history&amp;feed=atom&amp;title=Electric_guitar_interface_setup"/>
	<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Electric_guitar_interface_setup&amp;action=history"/>
	<updated>2026-05-02T20:17:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.0</generator>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Electric_guitar_interface_setup&amp;diff=31131&amp;oldid=prev</id>
		<title>Mr.Smith1970: update: fixed PipeWire/Pulse config, switched to sessionVariables for GUI plugin paths, added memlock limits, expanded software guide with categorized explanations</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Electric_guitar_interface_setup&amp;diff=31131&amp;oldid=prev"/>
		<updated>2026-04-17T14:05:58Z</updated>

		<summary type="html">&lt;p&gt;update: fixed PipeWire/Pulse config, switched to sessionVariables for GUI plugin paths, added memlock limits, expanded software guide with categorized explanations&lt;/p&gt;
&lt;a href=&quot;https://wiki.nixos.org/w/index.php?title=Electric_guitar_interface_setup&amp;amp;diff=31131&amp;amp;oldid=30370&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Mr.Smith1970</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Electric_guitar_interface_setup&amp;diff=30370&amp;oldid=prev</id>
		<title>Mr.Smith1970: initial creation: Guide for low-latency electric guitar setup</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Electric_guitar_interface_setup&amp;diff=30370&amp;oldid=prev"/>
		<updated>2026-03-07T09:56:58Z</updated>

		<summary type="html">&lt;p&gt;initial creation: Guide for low-latency electric guitar setup&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Electric guitar interface setup =&lt;br /&gt;
&lt;br /&gt;
This guide covers setting up an electric guitar with NixOS to achieve professional, low-latency audio processing. It targets live playing with round-trip latency under 6 ms using the modern PipeWire/JACK stack.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The digital signal chain for a guitar consists of:&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Instrument-level signal&amp;#039;&amp;#039;&amp;#039; from Hi-Z pickups.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Analog-to-Digital conversion&amp;#039;&amp;#039;&amp;#039; via an external audio interface.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Real-time processing&amp;#039;&amp;#039;&amp;#039; on NixOS using a low-latency kernel and specialized software.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== System Configuration ===&lt;br /&gt;
&lt;br /&gt;
Add the following to your `/etc/nixos/configuration.nix`. This configuration is optimized for high-performance CPUs like the &amp;#039;&amp;#039;&amp;#039;AMD Ryzen 7 9700X&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
{ pkgs, ... }:&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  # 1. Sound Server: PipeWire with JACK/PulseAudio support&lt;br /&gt;
  services.pipewire = {&lt;br /&gt;
    enable = true;&lt;br /&gt;
    alsa.enable = true;&lt;br /&gt;
    alsa.support32Bit = true;&lt;br /&gt;
    pulse.enable = true;&lt;br /&gt;
    jack.enable = true;&lt;br /&gt;
    wireplumber.enable = true;&lt;br /&gt;
    &lt;br /&gt;
    # Global low-latency defaults&lt;br /&gt;
    extraConfig.pipewire.&amp;quot;92-low-latency&amp;quot; = {&lt;br /&gt;
      &amp;quot;context.properties&amp;quot; = {&lt;br /&gt;
        &amp;quot;default.clock.rate&amp;quot; = 48000;&lt;br /&gt;
        &amp;quot;default.clock.quantum&amp;quot; = 128;      # ~5ms latency&lt;br /&gt;
        &amp;quot;default.clock.min-quantum&amp;quot; = 64;   # ~2.5ms latency&lt;br /&gt;
        &amp;quot;default.clock.max-quantum&amp;quot; = 512;&lt;br /&gt;
      };&lt;br /&gt;
    };&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  # 2. Real-time Scheduling and Privileges&lt;br /&gt;
  security.rtkit.enable = true;&lt;br /&gt;
  users.users.yourname.extraGroups = [ &amp;quot;audio&amp;quot; &amp;quot;realtime&amp;quot; ];&lt;br /&gt;
&lt;br /&gt;
  # 3. Kernel and Performance Tweaks&lt;br /&gt;
  boot.kernelPackages = pkgs.linuxPackages_zen; &lt;br /&gt;
  boot.kernelParams = [ &lt;br /&gt;
    &amp;quot;preempt=full&amp;quot; &lt;br /&gt;
    &amp;quot;threadirqs&amp;quot; &lt;br /&gt;
    &amp;quot;usbcore.autosuspend=-1&amp;quot; &lt;br /&gt;
    &amp;quot;processor.max_cstate=1&amp;quot; &lt;br /&gt;
  ];&lt;br /&gt;
&lt;br /&gt;
  powerManagement.cpuFreqGovernor = &amp;quot;performance&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  # 4. Essential Packages&lt;br /&gt;
  nixpkgs.config.allowUnfree = true; &lt;br /&gt;
  environment.systemPackages = with pkgs; [&lt;br /&gt;
    qpwgraph&lt;br /&gt;
    pavucontrol&lt;br /&gt;
    ardour&lt;br /&gt;
    reaper&lt;br /&gt;
    carla&lt;br /&gt;
    guitarix&lt;br /&gt;
    gxplugins-lv2&lt;br /&gt;
    lsp-plugins&lt;br /&gt;
    calf&lt;br /&gt;
    dragonfly-reverb&lt;br /&gt;
    neural-amp-modeler-lv2&lt;br /&gt;
    proteus&lt;br /&gt;
    kapitonov-plugins-pack&lt;br /&gt;
    tuxguitar&lt;br /&gt;
    hydrogen&lt;br /&gt;
    cpupower&lt;br /&gt;
  ];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Applying Changes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nixos-rebuild switch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Connection ==&lt;br /&gt;
&lt;br /&gt;
=== Audio Interface ===&lt;br /&gt;
&lt;br /&gt;
Standard PC line-ins are unsuitable for guitar. Use a dedicated interface with a &amp;#039;&amp;#039;&amp;#039;Hi-Z (Instrument)&amp;#039;&amp;#039;&amp;#039; input.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Verified compatible devices (2026):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Focusrite Scarlett Solo (4th Gen):&amp;#039;&amp;#039;&amp;#039; Plug-and-play, excellent Linux support.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Arturia MiniFuse 1:&amp;#039;&amp;#039;&amp;#039; Stable performance under PipeWire.&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
lsusb      # Confirm hardware connection&lt;br /&gt;
aplay -l   # Confirm ALSA sees the interface&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio Server Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Pro Audio Profile ===&lt;br /&gt;
&lt;br /&gt;
To achieve minimal latency, you must bypass standard software mixing:&lt;br /&gt;
# Open &amp;lt;nowiki&amp;gt;pavucontrol&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
# Go to &amp;#039;&amp;#039;&amp;#039;Configuration&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Set your interface profile to &amp;#039;&amp;#039;&amp;#039;Pro Audio&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Buffer Control ===&lt;br /&gt;
&lt;br /&gt;
You can change latency without rebuilding the system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Force a specific buffer size (quantum)&lt;br /&gt;
pw-metadata -n settings 0 clock.force-quantum 64&lt;br /&gt;
&lt;br /&gt;
# Verify current status&lt;br /&gt;
pw-metadata -n settings 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Software Hosts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Examples !! Best Use Case&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Standalone&amp;#039;&amp;#039;&amp;#039; || Guitarix || Quick practice, simple pedalboard&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Modular&amp;#039;&amp;#039;&amp;#039; || Carla || Flexible routing, loading Windows VSTs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;DAW&amp;#039;&amp;#039;&amp;#039; || Ardour, Reaper || Professional recording, lowest latency via ALSA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Plugin Ecosystem (March 2026 Status) ==&lt;br /&gt;
&lt;br /&gt;
=== Available in Nixpkgs ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Neural Amp Modeler (NAM):&amp;#039;&amp;#039;&amp;#039; &amp;lt;nowiki&amp;gt;neural-amp-modeler-lv2&amp;lt;/nowiki&amp;gt;. Current standard for high-fidelity amp captures.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;LSP Plugins:&amp;#039;&amp;#039;&amp;#039; Includes &amp;lt;nowiki&amp;gt;LSP Latency Meter&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Proteus:&amp;#039;&amp;#039;&amp;#039; Excellent for RNN-based captures.&lt;br /&gt;
&lt;br /&gt;
=== Unavailable / Alternatives ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ratatouille / AIDA-X:&amp;#039;&amp;#039;&amp;#039; Currently not in nixpkgs. Use &amp;#039;&amp;#039;&amp;#039;NAM&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Proteus&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MOD Desktop:&amp;#039;&amp;#039;&amp;#039; Use &amp;#039;&amp;#039;&amp;#039;Carla&amp;#039;&amp;#039;&amp;#039; for similar modular functionality.&lt;br /&gt;
&lt;br /&gt;
== Measuring Latency ==&lt;br /&gt;
&lt;br /&gt;
Never trust software reports. Always perform a physical loopback test:&lt;br /&gt;
# Connect a cable from your interface &amp;#039;&amp;#039;&amp;#039;Output&amp;#039;&amp;#039;&amp;#039; back into the &amp;#039;&amp;#039;&amp;#039;Input&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Open &amp;#039;&amp;#039;&amp;#039;LSP Latency Meter&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Measure the &amp;#039;&amp;#039;&amp;#039;Round-trip Latency (RTL)&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Latency !! Perception&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt; 5 ms || Professional / Imperceptible&lt;br /&gt;
|-&lt;br /&gt;
| 5-10 ms || Acceptable for practice&lt;br /&gt;
|-&lt;br /&gt;
| &amp;gt; 12 ms || Noticable &amp;quot;lag&amp;quot;, difficult to play&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Xruns (Audio Glitches):&amp;#039;&amp;#039;&amp;#039; Ensure &amp;lt;nowiki&amp;gt;powerManagement.cpuFreqGovernor = &amp;quot;performance&amp;quot;&amp;lt;/nowiki&amp;gt; is active.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;No Sound:&amp;#039;&amp;#039;&amp;#039; Check &amp;lt;nowiki&amp;gt;qpwgraph&amp;lt;/nowiki&amp;gt;. PipeWire does not always auto-connect.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;NVIDIA Latency:&amp;#039;&amp;#039;&amp;#039; Add &amp;lt;nowiki&amp;gt;nvidia.NVreg_EnablePowerManagement=0&amp;lt;/nowiki&amp;gt; to &amp;lt;nowiki&amp;gt;boot.kernelParams&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[PipeWire]]&lt;br /&gt;
* [https://github.com/musnix/musnix musnix] - Deep NixOS audio optimizations.&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Sound]]&lt;/div&gt;</summary>
		<author><name>Mr.Smith1970</name></author>
	</entry>
</feed>