Skip to content

RitzDaCat/pipewire-gui

Repository files navigation

PipeWire GUI

A modern Qt-based GUI application for configuring PipeWire audio settings on Linux, with a focus on latency optimization.

Features

  • Real-time Latency Control: Adjust quantum (buffer size) from 16-8192 samples
  • Visual Feedback: See active vs desired settings with color-coded indicators
  • Persistent Configuration: Save settings that survive system reboots
  • Quick Presets: Ultra Low (64), Low (128), Normal (256), Safe (512), Default (1024), High (2048)
  • Live Latency Calculator: Shows latency in milliseconds as you adjust settings
  • Service Control: Built-in PipeWire restart functionality
  • Verification System: Check if settings are properly applied

Requirements

  • Linux with PipeWire audio system
  • Python 3.6+
  • PyQt6
  • PipeWire and WirePlumber

Installation

Install Dependencies

On Arch Linux (including CachyOS):

sudo pacman -S python-pyqt6 pipewire wireplumber

On Ubuntu/Debian:

sudo apt install python3-pyqt6 pipewire wireplumber

Install the Application

# Clone the repository
git clone https://github.com/yourusername/pipewire-gui.git
cd pipewire-gui

# Install to application menu
./install.sh

Usage

Launch from Terminal

python3 pipewire_gui.py

Launch from Application Menu

After installation, find "PipeWire GUI" in your application launcher under Audio/Settings.

Understanding Quantum Settings

  • Quantum: The buffer size in samples. Lower = lower latency but higher CPU usage
  • Latency Calculation: (quantum ÷ sample_rate) × 1000 = latency in ms

Common Quantum Values at 48kHz:

  • 64: 1.33ms - Ultra-low latency for professional audio
  • 128: 2.67ms - Low latency for music production
  • 256: 5.33ms - Balanced for general use
  • 512: 10.67ms - Safe for most systems
  • 1024: 21.33ms - Default, conservative setting
  • 2048: 42.67ms - High latency, lowest CPU usage

Configuration

Settings can be applied in two modes:

  1. Runtime Only: Temporary settings for testing (reset on restart)
  2. Save to Config: Creates persistent configuration files in:
    • ~/.config/pipewire/pipewire.conf.d/99-quantum.conf
    • ~/.config/wireplumber/wireplumber.conf.d/51-alsa-quantum.conf

Tips

  • Start with quantum 256 for a good balance of latency and stability
  • If you experience audio crackling, increase the quantum value
  • Use "Force Quantum" to lock the buffer size for consistent latency
  • Set Maximum Quantum to 512 to prevent excessive latency under load

Troubleshooting

Audio crackling/dropouts: Increase quantum value or uncheck "Force Quantum"

Settings not persisting: Choose "Save to Config" and restart PipeWire

Settings not applying: Click "Restart PipeWire" after saving to config

License

MIT License

Author

Created for CachyOS/Arch Linux KDE Plasma users who want better control over PipeWire audio latency.

Contributing

Pull requests are welcome! Please test changes thoroughly with different quantum values.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors