Skip to content

LuminLynx/Sound-Equalizer

Repository files navigation

Sound Equalizer for Linux (Debian)

CI Python License

A comprehensive guide and implementation for creating sound equalizers on Linux systems, specifically targeting Debian-based distributions.

Quick Links: Getting Started | Next Steps | Contributing | Roadmap

Overview

This project explores multiple approaches to implementing audio equalization on Linux systems. Sound equalizers allow users to adjust audio frequencies to enhance listening experience, compensate for hardware limitations, or achieve specific audio characteristics.

Approaches to Creating a Linux Sound Equalizer

1. PulseAudio with LADSPA Plugins

Description: PulseAudio is the default sound server on most modern Linux distributions. It supports LADSPA (Linux Audio Developer's Simple Plugin API) plugins for audio processing.

Advantages:

  • Native integration with most Linux desktop environments
  • Easy to configure and use
  • Wide plugin availability
  • Real-time audio processing
  • System-wide audio equalization

Requirements:

  • PulseAudio (pre-installed on most Debian systems)
  • LADSPA plugins (swh-plugins, cmt, etc.)
  • PulseAudio module: module-ladspa-sink

Installation:

sudo apt-get update
sudo apt-get install pulseaudio ladspa-sdk swh-plugins

Configuration: Load the LADSPA equalizer module:

pacmd load-module module-ladspa-sink sink_name=ladspa_output plugin=mbeq_1197 label=mbeq

2. ALSA with Plugins

Description: ALSA (Advanced Linux Sound Architecture) is the kernel-level sound system. It can be extended with plugins for equalization.

Advantages:

  • Low-level control
  • Lower latency
  • Works without PulseAudio
  • Direct hardware access

Requirements:

  • ALSA utilities
  • libasound2-plugins
  • alsaequal or caps LADSPA plugin

Installation:

sudo apt-get install alsa-utils libasound2-plugins

Configuration: Edit ~/.asoundrc to configure the equalizer pipeline.

3. JACK Audio Connection Kit

Description: JACK is a professional audio server designed for low-latency audio routing and processing.

Advantages:

  • Professional-grade audio processing
  • Extremely low latency
  • Flexible audio routing
  • Ideal for music production
  • Supports complex audio graphs

Requirements:

  • JACK audio server
  • JACK clients and plugins
  • QjackCtl (GUI control)

Installation:

sudo apt-get install jackd2 qjackctl

4. Python-Based Equalizer (PyAudio + NumPy)

Description: A custom equalizer built using Python libraries for audio processing.

Advantages:

  • Full control over implementation
  • Educational value
  • Customizable for specific needs
  • Cross-platform potential
  • Easy to extend and modify

Requirements:

  • Python 3.x
  • PyAudio
  • NumPy
  • SciPy

See the python-equalizer/ directory for implementation details.

5. PipeWire with Filter Chain

Description: PipeWire is the modern audio server that aims to replace both PulseAudio and JACK.

Advantages:

  • Modern architecture
  • Low latency
  • Compatible with PulseAudio and JACK applications
  • Built-in filter chain support
  • Future-proof solution

Requirements:

  • PipeWire
  • PipeWire filter chain plugins

Installation:

sudo apt-get install pipewire pipewire-audio-client-libraries

6. EasyEffects (formerly PulseEffects)

Description: A GUI application for audio effects including equalization, built on PipeWire.

Advantages:

  • User-friendly GUI
  • Multiple effects beyond equalization
  • Preset management
  • Real-time visualization

Installation:

sudo apt-get install easyeffects

Quick Start

Using the GUI (Recommended)

NEW! A graphical user interface is now available for easy equalizer control.

  1. Install dependencies:
pip install -r requirements.txt
  1. Launch the GUI:
cd python-equalizer
python3 equalizer_gui.py

Features:

  • 10-band equalizer with sliders
  • Real-time frequency response visualization
  • 8 built-in presets (Bass Boost, Treble Boost, Vocal, Rock, Jazz, etc.)
  • Save and load custom presets
  • Enable/disable toggle

See python-equalizer/README_GUI.md for detailed GUI documentation.

Using the Python Implementation (Command Line)

  1. Install dependencies:
pip install -r requirements.txt
  1. Run the equalizer:
python3 python-equalizer/equalizer.py

Using PulseAudio with Built-in Equalizer

  1. Install PulseEffects (for GUI):
sudo apt-get install pulseeffects
  1. Launch and configure:
pulseeffects

Project Structure

.
├── README.md                 # This file
├── LICENSE                   # MIT License
├── requirements.txt          # Python dependencies
├── equalizer_gui.spec        # PyInstaller spec for GUI executable
├── python-equalizer/         # Python implementation
│   ├── equalizer.py         # Main equalizer implementation
│   ├── equalizer_gui.py     # GUI application (NEW!)
│   ├── audio_processor.py   # Audio processing functions
│   ├── config.json          # Default configuration (10 bands)
│   └── README_GUI.md        # GUI documentation
├── docs/                     # Additional documentation
│   ├── pulseaudio-setup.md  # PulseAudio configuration guide
│   ├── alsa-setup.md        # ALSA configuration guide
│   ├── jack-setup.md        # JACK configuration guide
│   └── equalizer_gui_screenshot.png  # GUI screenshot
└── tests/                    # Test suite
    ├── test_equalizer.py    # Equalizer tests
    ├── test_audio_processor.py  # Audio processor tests
    └── test_gui.py          # GUI tests

Comparison of Approaches

Approach Difficulty Latency GUI Best For
PulseAudio + LADSPA Easy Medium Yes General desktop use
ALSA + Plugins Medium Low No Minimal systems
JACK Hard Very Low Yes Audio production
Python Custom Medium High Customizable Learning/Development
PipeWire Easy Low Yes Modern systems
EasyEffects Very Easy Low Yes End users

Contributing

Contributions are welcome! Please read our Contributing Guidelines for details on how to contribute to this project.

Want to help but not sure where to start? Check out NEXT_STEPS.md for a quick reference guide on what to work on next.

For the project roadmap and planned features, see ROADMAP.md.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Resources

Project Status

CI

This project is actively maintained. See ROADMAP.md for planned features and improvements.

Acknowledgments

  • The Linux audio development community
  • PulseAudio, ALSA, JACK, and PipeWire developers
  • LADSPA plugin developers

About

A Sound Equalizer

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •