Skip to main content

Professional-grade, high-fidelity real-time audio equalizer and spectrum analyzer

Project description

Real-time Audio Equalizer & Spectrum Analyzer

Installation

pip install speqtr

A professional-grade, high-fidelity audio analysis and equalization tool built with Python. This application captures real-time audio input, processes it through a 10-band peaking equalizer, and provides live visualizations of both the waveform and frequency spectrum.

✨ Features

  • Professional 10-Band EQ: Standardized bands (31Hz to 16kHz) with ±12dB gain control.
  • Accurate Spectrum Analysis: Real-time FFT with proper dBFS normalization.
  • Visual Overlays:
    • Live EQ Curve: See exactly how your filters are shaping the audio.
    • Peak Hold: Tracks and decays from maximum peaks for better level monitoring.
  • Audio Presets: Quick-access profiles like Bass Boost, Treble Boost, V-Shape, and Vocal.
  • Modern Dark UI: Sleek, high-contrast interface designed for professional environments.
  • Thread-Safe Core: Robust audio capturing using PyAudio and threading to ensure zero-flicker performance.

🛠️ Tech Stack

  • Language: Python 3.10+
  • Audio Engine: PyAudio (PortAudio wrapper)
  • DSP: NumPy & SciPy (Signal processing)
  • GUI: Tkinter (Themed with ttk)
  • Graphics: Matplotlib (High-performance plotting)

🚀 Getting Started

Prerequisites

You'll need Python installed. It is recommended to use a virtual environment.

Installation

Method 1: Via Pip (Recommended)

pip install speqtr

Method 2: Manual Clone (Development)

  1. Clone the repository:

    git clone https://github.com/Iyeba-Kallon/realtime-audio-equalizer-spectrum-analyzer.git
    cd realtime-audio-equalizer-spectrum-analyzer
    
  2. Install dependencies:

    pip install -r requirements.txt
    

    Note: On some systems, you may need to install portaudio development headers separately (e.g., sudo apt install libportaudio2 on Linux).

Running the App

Simply run the main script:

python main.py

📖 How it Works

  1. Capture: The AudioEngine opens a stream via PyAudio to capture system or microphone input.
  2. DSP Pipeline:
    • Audio is converted to normalized float32.
    • Each EQ band is a second-order IIR peaking filter (RBJ design).
    • Filters are applied in series to the incoming chunks.
  3. Analysis: An FFT (Fast Fourier Transform) is computed with a Hanning window to generate the magnitude spectrum.
  4. Visualization: The GUI thread pulls the processed data through a thread-safe lock and updates the Matplotlib plots at ~30 FPS.

🤝 Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request for new features (like recording, output playback, or more visualizer types).

📄 License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

speqtr-0.1.1.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

speqtr-0.1.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file speqtr-0.1.1.tar.gz.

File metadata

  • Download URL: speqtr-0.1.1.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for speqtr-0.1.1.tar.gz
Algorithm Hash digest
SHA256 867898159f79a2dd926cb9aeeb88b32ebc302e14e43e322e36046b052074324a
MD5 9224317fa371d6dde1e8236e9f42bb0d
BLAKE2b-256 864a126fac23b5a15e58898793be9994a817bc2fe34ddac66de6d189adae9d6e

See more details on using hashes here.

File details

Details for the file speqtr-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: speqtr-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for speqtr-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 85c189ab811a6fddd604e49ff1d7dae340aec568c81961f20bd46dc886a6b125
MD5 e496964c6efcd8757de0fe266eeabcda
BLAKE2b-256 133a095c7afd2c18b35da409a908e54f50953fcd7f3d25b54cd0f22ca26e7bb1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page