ArchibaldOS: Lean Real-Time Audio NixOS Variant
Overview
ArchibaldOS is a customized, minimal NixOS distribution optimized for real-time (RT) audio production. It leverages Musnix for low-latency audio configurations, PipeWire for audio handling, and KDE Plasma 6 as the desktop environment. This variant is designed for musicians, audio engineers, and producers who need a stable, performant system for tools like DAWs (Digital Audio Workstations), synthesizers, and effects plugins.
Key principles:
- Minimalism: Stripped-down setup focusing on RT audio essentials, avoiding bloat.
- Oligarchy Philosophy: A "minimal oligarchy" approach—prioritizing a small set of elite, high-performance components (e.g., RT kernel, low-latency PipeWire) over broad compatibility.
- Branding: Custom DeMoD LLC branding, including boot splash, wallpapers, and optional ASCII art in the installer.
- Live ISO with Installer: Built as a bootable ISO with a graphical Calamares installer for easy deployment.
This project is built using Nix flakes for reproducibility and declarative configuration. It's based on NixOS 24.11, with inputs from Musnix (for RT audio) and Disko (for declarative disk partitioning during installation).
Features
Real-Time Audio Optimization
- Musnix Integration: Enables RT kernel (latest RT patches), ALSA sequencer, RTIRQ for interrupt prioritization, and DAS watchdog for stability.
- PipeWire Configuration: Low-latency setup with 32-sample quantum at 48kHz sample rate. Supports ALSA, PulseAudio emulation, and JACK for compatibility with pro-audio apps.
- Security Limits: PAM limits for the
audiogroup allow high RT priority (up to 95), unlimited memory lock, and high file descriptors. - Kernel Tweaks: Parameters like
threadirqs, CPU isolation (isolcpus=1-3), nohz_full for reduced latency, and performance governor. Swappiness set to 0, increased inotify watches. - Audio Hardware Support: Modules for USB audio/MIDI, with low-latency options. Graphics drivers for Intel (with AMD/NVIDIA options commented out).
- Pre-Installed Audio Tools: A curated set including:
- DAWs/Editors: Audacity, MuseScore, Zrythm, Carla, PureData, Cardinal, Helm.
- Synths/Effects: Surge, ZynAddSubFX, Guitarix, Dragonfly Reverb, Calf plugins.
- Utilities: QJackCtl, VMidi Keyboard (VMPK), QMidiNet, Faust (with ALSA/JACK/CSound backends), SuperCollider, CSound (with Qt GUI).
- MIDI/Soundfonts: FluidSynth, PortAudio, RtAudio.
Desktop Environment
- KDE Plasma 6: Lightweight, Wayland-enabled for better performance. SDDM display manager with auto-login in live mode.
- Basic Utilities: Vim, Kitty terminal, WirePlumber (PipeWire GUI), CAVA (audio visualizer), PlayerCtl (media controls).
- Fonts: JetBrains Mono for coding, Noto Emoji for broad support.
Installation and Usability
- Graphical Installer: Calamares with Plasma 6 interface for partitioning, user setup, and installation.
- Disko Support: Declarative disk management for reproducible installs.
- Live Mode: Boot into a live Plasma session as
nixosuser (auto-login). Test audio setup before installing. - Users:
nixos: Default live user with sudo access (initial password: "nixos" post-install).audio-user: Dedicated audio user with RT groups (audio,jackaudio,video,wheel). Home at/home/audio-user.
- Branding Options (configurable via Nix):
- ASCII art in TUI installer (optional, adds minor delay).
- Plymouth boot splash with DeMoD logo.
- Wallpapers: Deployed system-wide to
/usr/share/wallpapers/ArchibaldOS, with symlinks/scripts for Plasma, GNOME, XFCE, and fallback to~/Pictures/Wallpapers.
- System Utilities: USB tools, ALSA firmware, NetworkManager, dialog, mkpasswd for setup.
Performance Enhancements
- Disable Non-Essentials: Systemd service to stop NetworkManager and Bluetooth on boot (for RT purity; re-enable if needed).
- ASound Config: Defaults to 48kHz, 32-bit float, low buffer for pro-audio.
- Ardour Tweaks: Custom
ardour.rcfor 32-sample buffer at 48kHz. - Dev Shell: A Nix shell with audio tools for development/testing.
Requirements
- Hardware:
- x86_64 CPU (with at least 4 cores recommended for CPU isolation).
- Compatible audio interface (USB preferred; tested with ALSA/JACK).
- Graphics: Intel integrated (AMD/NVIDIA support via uncommented options).
- At least 4GB RAM (8GB+ for heavy audio workloads).
- Software:
- Nix with flakes enabled (
nix.settings.experimental-features = [ "nix-command" "flakes" ];).
- Nix with flakes enabled (
- Build Environment: Allow unfree packages (
nixpkgs.config.allowUnfree = true;) and permit insecure QtWebEngine for Calamares.
Building the ISO
-
Clone the repository:
git clone <repo-url> cd archibaldos -
Build the installer ISO:
nix build .#installer- This outputs
result/iso/archibaldos-<version>.iso. - The build includes all modules and branding.
- This outputs
-
(Optional) Enter dev shell for testing audio tools:
nix develop- This loads tools like Audacity, SuperCollider, etc.
Creating a Bootable USB
-
Use
dd(Linux/Mac):sudo dd if=result/iso/archibaldos-<version>.iso of=/dev/sdX bs=4M status=progress && syncReplace
/dev/sdXwith your USB device (uselsblkto identify). -
Or use tools like Rufus (Windows) or Etcher.
Installation Guide
-
Boot the ISO:
- Boot from USB/CD. Select the ISO in BIOS/UEFI.
- In live mode: Auto-logs in as
nixos(no password). Test audio with pre-installed tools (e.g., runqjackctlfor JACK setup).
-
Run the Installer:
- Launch Calamares from the desktop or menu.
- Partitioning: Use Disko/Calamares for guided or manual setup. Recommend EFI system if UEFI.
- Users: Set up passwords.
audio-useris pre-defined but disabled in live mode—enable post-install if needed. - Networking: Connect via NetworkManager if required.
- Proceed with installation.
-
Post-Install:
- Reboot into installed system.
- Login as
nixos(password: "nixos") oraudio-user(set during install). - For RT audio: Add users to
audiogroup if not already (sudo usermod -aG audio <user>). - Test latency: Run
jackdor PipeWire apps. Usertirq statusto check priorities. - Customize: Edit
/etc/nixos/configuration.nix(or flake) andnixos-rebuild switch.
Notes:
- In live mode,
audio-useris a system user (hidden from login) to satisfy assertions. - Wallpapers are auto-deployed; set in Plasma settings.
- For NVIDIA: Uncomment hardware options in
flake.nixand rebuild.
Usage Tips
-
Audio Testing:
- Run
/etc/live-audio-test.sh(if present) for a quick latency test. - Use QJackCtl to manage JACK sessions.
- For visualization: Run CAVA in terminal (
cava).
- Run
-
Customization:
- Branding: Disable via
branding.enable = false;in modules. - Kernel: Switch to non-RT via
musnix.kernel.realtime = false;. - Add Packages: Edit
audio.nixordesktop.nixand rebuild. - Wallpaper Paths: Add to
branding.wallpaperPathslist.
- Branding: Disable via
-
Troubleshooting:
- High latency? Check
cat /proc/interruptsfor IRQ conflicts; adjustisolcpus. - No sound? Ensure PipeWire is running (
systemctl --user status pipewire). - Build errors: Ensure
allowUnfreeand permitted insecure packages. - For AMD GPUs: Uncomment
amdvlkinflake.nix.
- High latency? Check
Contributing
- Fork and PR changes to modules or flake.
- Report issues: Include Nix version, hardware specs, and logs (e.g.,
dmesg | grep audio). - Suggestions: Focus on RT audio improvements or minimalism.
License
This project is licensed under the MIT License (or specify if different). DeMoD LLC branding assets are proprietary—contact for usage.
Built by DeMoD LLC | Version: Based on NixOS 24.11 | Last Updated: November 2025
For questions, reach out on X @demodllc or via repo issues.