A professional audio configuration tool for Linux systems that provides a simple graphical interface to manage PipeWire and ALSA audio settings. Finally, an easy way to configure sample rates, bit depths, and buffer sizes without digging through config files.
After 10 years of using Fedora and other Linux distributions, I realized we're still missing a fundamental tool: a simple, graphical way to configure professional audio settings. In 2025, manually editing configuration files shouldn't be the only option for adjusting basic audio parameters. If you wish to support me for future updates with some symbolical donation, BuyMeACoffe button.
All current features and running on different OSes are showcased in the Gallery
- Live Audio Level Meters: Visual monitoring of stereo channel output levels with real-time PipeWire integration
- Color-coded Visual Feedback: Safe (green), warning (yellow), and clipping (red) zones with blinking indicators
- Real System Audio Monitoring: Taps into PipeWire monitor sources for accurate system-wide audio level measurement
- Smooth Meter Animation: 10 FPS updates with proper threading for responsive UI performance
- DB Scale Display: Accurate decibel readings with peak and RMS calculations
- Auto-detection Fallback: Intelligent fallback to simulation mode when PipeWire isn't available
- Professional Metering: Studio-grade level monitoring with proper threshold matching industry standards
- Manual Reconnection: Reconnect button for monitoring recovery with multi-attempt strategy
- Service Health Checks: Automatic PipeWire service monitoring and restart capability
- Connection Management: Cleanup of stale monitor ports and PID change handling
- Device Detection: Automatically detects and displays current audio devices (PipeWire, ALSA, PulseAudio)
- Sample Rate Configuration: Support for rates from 44.1 kHz to 384 kHz
- Bit Depth Settings: 16-bit, 24-bit, and 32-bit audio formats
- Buffer Size Control: Adjustable buffer sizes from 128 to 8192 samples
- Professional Audio Support: Optimized for studio and high-quality audio applications
- Graphical Interface: Clean, intuitive GTK-based user interface
- No Terminal Required: Graphical interface that anyone can use
- Privilege Escalation: Secure privilege escalation for system-level audio configuration
- Separate Input/Output Configuration: Dedicated tabs for playback (output) and recording (input) devices
- Real-time Monitoring Tab: Dedicated monitoring interface with live audio meters
- Configuration Inspector Tab: Comprehensive view of all PipeWire/WirePlumber configuration files with active status
- Independent Settings Management: Configure input and output devices with different sample rates, bit depths, and buffer sizes
- Clear Visual Separation: Intuitive tabbed interface that clearly distinguishes between recording, playback, monitoring, and configuration inspection
- File System Scanning: Automatic discovery of all PipeWire and WirePlumber configuration files
- Active Status Detection: Identifies which configuration files are currently in use via pw-dump analysis
- User/System Separation: Clear distinction between user-specific and system-wide configuration files
- File Metadata Display: Shows file size, modification time, owner, and preview of configuration content
- Smart File Opening: Desktop environment-aware terminal detection for editing system files
- Visual Indicators: Checkmarks show which configuration files are currently active in PipeWire
- Refresh Capability: On-demand rescanning of configuration files and active PipeWire state
- Configuration Modes: Switch between Global System Settings and Exclusive Mode
- Professional Audio Settings: Fine-tune buffer size ranges, thread priorities, and memory locking
- Exclusive Mode: Direct hardware access for single applications (similar to ASIO/WASAPI exclusive mode)
- Latency Calculation: Real-time latency display based on buffer size and sample rate
- Hardware Optimization: Memory locking, device suspend prevention, and clock source selection
- Resampling Control: Adjust resampler quality or disable automatic resampling entirely
- Channel Management: Option to disable automatic channel remixing for professional workflows
- User-Specific Configuration: Apply settings only for the current user (default)
- System-Wide Configuration: Apply settings for all users on the system (requires admin privileges)
- Flexible Deployment: Choose between user-specific or system-wide configuration based on your needs
- Dedicated WirePlumber Configs: Separate configuration generators for input vs output devices
- Independent Signal Handlers: Each tab manages its own settings and apply operations
- Comprehensive Testing: Extensive test suite covering new input/output separation features
- Advanced configuration options ready for professional studio workflows
- Exclusive mode support for applications requiring ASIO-like direct hardware access
- Real-time performance tuning with thread priority and memory management
- PipeWire (primary)
- ALSA (fallback)
- PulseAudio (legacy support)
This tool is designed to grow with PipeWire and Linux audio:
- Extended buffer support ready for future PipeWire versions
- Modular architecture for easy addition of new audio backends
- Hardware-agnostic - works with any ALSA-compatible device
- Standards-based using industry-standard audio formats
- Extensible UI that can accommodate new settings and features
As audio companies improve their Linux driver support and PipeWire continues to evolve, this tool will be ready to leverage those advancements immediately.
- Real-time Audio Monitoring - Live level meters with PipeWire integration
- Manual Monitoring Reconnection - Recovery tools for audio monitoring
- Configuration Inspector - Comprehensive view of all audio configuration files
- Setting all available devices in one session
- Separate input/output configuration tabs
- User vs system-wide configuration scope
- Package manager support (RPM/DEB/Flatpak)
- Additional audio backends (JACK)
- Preset configurations
- Advanced audio routing
- Install rust and cargo:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # select 1
# sh/bash/zsh/dash/ash/pdksh etc
. "$HOME/.cargo/env" # for fish and nushell see output of rust install- Install dependencies for app building:
# Fedora/CentOS Stream/RHEL/Rocky
sudo dnf install pipewire-devel clang llvm-dev gtk3-devel
# Arch/EndeavourOS/Manjaro/arch-based
sudo pacman -S pipewire clang llvm gtk3 # pkg-config add in Manjaro
# Ubuntu/Debian/Mint/PopOS/ZorinOS
sudo apt install libpipewire-0.3-dev clang llvm-dev libgtk-3-devgit clone https://github.com/Peter-L-SVK/pro_audio_config # or download as zip manually and unzip
cd pro_audio_config
./install.sh- Clone the repository:
git clone https://github.com/Peter-L-SVK/pro_audio_config
cd pro_audio_config- Build and install:
cargo build --release --features pipewire-monitoring
sudo cp target/release/pro_audio_config /usr/local/bin/./uninstall.shRun the application from your application menu or terminal:
pro-audio-config- Output Tab: Configure playback devices (speakers, headphones, HDMI outputs)
- Input Tab: Configure recording devices (microphones, audio interfaces, line inputs)
The Configuration Inspector Tab provides comprehensive management of all audio configuration files:
- File Scanning: Automatically scans for all PipeWire and WirePlumber configuration files
- Active Status: Shows which configuration files are currently active with ✓ indicators
- User vs System: Clearly distinguishes between user and system configuration files
- File Operations: Double-click any file to open it with your default system editor
- Visual Preview: Shows first lines of configuration content for quick identification
- Refresh Functionality: Rescan configuration files and update active status
The Monitoring Tab provides live audio level monitoring with professional-grade features:
- Live Level Meters: Real-time stereo channel monitoring with accurate dB readings
- Color-coded Zones: Visual feedback with safe (green), warning (yellow), and clipping (red) indicators
- Manual Reconnection: Recovery button for re-establishing monitoring when PipeWire services restart
- Service Health: Automatic detection and recovery from PipeWire service interruptions
- Connection Verification: Ensures monitor ports are properly connected to the application
The Advanced Tab provides professional-grade audio configuration options:
- Global System Settings: Configure audio settings that apply to ALL applications system-wide
- Exclusive Mode: Provide direct hardware access to a SINGLE application, bypassing mixing and processing
- Buffer Size Range: Set minimum and maximum buffer sizes for dynamic adjustment
- Real-time Thread Priority: Control CPU scheduling priority for audio threads
- Memory Locking: Lock audio buffers in RAM to prevent swapping and reduce latency
- Device Suspend Prevention: Keep audio devices active even when idle
- Resampler Quality: Adjust the quality/performance tradeoff for sample rate conversion
- Clock Source Selection: Choose between system clock, monotonic, or real-time clock sources
- Application Targeting: Specify which application should receive exclusive audio access
- Direct Hardware Access: Bypass audio mixing for lowest possible latency
- Real-time Latency Display: See calculated latency based on your buffer size and sample rate
- Device Capability Checking: Automatic validation of device compatibility with exclusive mode
- Select "Exclusive Mode" from the Configuration Mode dropdown
- Enter the application name and process name (e.g., "Reaper" and "reaper")
- Select your audio device and desired buffer size/sample rate
- Click "Apply Exclusive Mode Settings"
- To return to standard shared mode, click "Disable Exclusive Mode"
Each tab maintains independent settings, allowing you to optimize input and output devices separately for your specific use case.
- User-Specific (Default): Settings apply only to your user account, stored in
~/.config/pipewire/ - System-Wide: Settings apply to all users, stored in
/etc/pipewire/(requires authentication) - Toggle Option: Use the "Apply system-wide" checkbox to switch between user and system configuration
- 44.1 kHz - CD Quality
- 48 kHz - Standard Audio
- 96 kHz - High Resolution
- 192 kHz - Studio Quality
- 384 kHz - Ultra High Resolution
- 16 bit - CD Quality
- 24 bit - High Resolution
- 32 bit - Studio Quality
- 128 samples (2.7ms @48kHz)
- 256 samples (5.3ms @48kHz)
- 512 samples (10.7ms @48kHz)
- 1024 samples (21.3ms @48kHz)
- 2048 samples (42.7ms @48kHz)
- 4096 samples (85.3ms @48kHz)
- 8192 samples (170.7ms @48kHz)
- Frontend: GTK3 with Rust bindings
- Audio Backend: PipeWire with ALSA fallback
- Configuration: WirePlumber for session management
- Privilege Escalation: pkexec for secure root access
- Multi-threaded UI: Non-blocking device detection and configuration
- Active Status Detection: Uses
pw-dumpJSON parsing to identify active configuration files - File System Crawling: Recursive scanning of standard PipeWire/WirePlumber directories
- Thread-safe Scanning: Background scanning with main-thread UI updates
- Desktop Integration: Smart terminal detection for editing system files across different desktop environments
- Service Health Monitoring: Periodic checks of PipeWire service status
- Connection Recovery: Automatic reconnection logic with exponential backoff
- PID Change Handling: Detection and recovery from audio daemon PID changes
- Thread Lifecycle Management: Proper cleanup and restart of monitoring threads
- User Configuration: Uses
~/.config/pipewire/pipewire.conf.d/directory - System Configuration: Uses
/etc/pipewire/pipewire.conf.d/directory - Preference Persistence: User preferences saved in
~/.config/proaudioconfig/preferences.toml - Authentication: Uses system's policy kit for secure privilege escalation
- 16-bit: S16LE
- 24-bit: S24LE
- 32-bit: S32LE
- Primary: PipeWire config fragments (highest priority)
- Fallback: WirePlumber JSON configuration
- Emergency: Direct modification of main pipewire.conf
See DEVELOPMENT file for details.
Contributions are welcome! Please feel free to submit pull requests, report bugs, or suggest new features.
See CONTRIBUTING file for details.
For contact please see my email in profile info or use GitHub's built-in communication tools.
Please open an issue or pull request for any:
- Bug fixes
- Feature suggestions
- Documentation improvements
For support and questions:
- Open an issue on GitHub
- Check the documentation
- Review existing issues for similar problems
- PipeWire (recommended) or PulseAudio
- pipewire-devel redhat based/ libpipewire-0.3-dev for debian/ubuntu based (for building the app)
- clang and llvm-dev (for building the app)
- WirePlumber
- ALSA utilities
- pkexec (for privilege escalation)
- Rust 1.85.0 or newer
- Cargo
- gtk3-devel (or equivalent for your distribution, on debian+ubuntu based: libgtk-3-dev)
- Fedora 42 Cinnamon (fully works)
- Fedora 43 Jam with KDE Plasma 6.5 (fully works)
- Mint MATE 22.2 Zara (fully works)
- Ubuntu MATE 24.04.03 LTS (fully works)
- Pop!_OS 24.04 LTS Cosmic desktop (live monitor isn't showing activity due to Cosmic UI differency, but configs and info showing works)
- Manjaro with Gnome 49 (fully works)
- EndeavourOS Ganymede with KDE Plasma 6.5 (fully works)
Note: Since this works on more conservative Ubuntu LTS based systems, newer non LTS Ubuntu OSes will defintelly work...
- PipeWire developers for the modern audio system
- GTK team for the GUI toolkit
- Rust community for excellent libraries and tools
This project is licensed under the MIT License - see the LICENSE file for details.
Stop fighting config files. Start making great audio.

