Real-time audio equalizer and spectrum analyzer
Project description
Real-time Audio Equalizer & Spectrum Analyzer
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
PyAudioandthreadingto ensure zero-flicker performance.
🛠️ Tech Stack
- Language: Python 3.10+
- Audio Engine:
PyAudio(PortAudio wrapper) - DSP:
NumPy&SciPy(Signal processing) - GUI:
Tkinter(Themed withttk) - Graphics:
Matplotlib(High-performance plotting)
🚀 Getting Started
Prerequisites
You'll need Python installed. It is recommended to use a virtual environment.
Installation
-
Clone the repository:
git clone https://github.com/Iyeba-Kallon/realtime-audio-equalizer-spectrum-analyzer.git cd realtime-audio-equalizer-spectrum-analyzer
-
Install dependencies:
pip install -r requirements.txt
Note: On some systems, you may need to install
portaudiodevelopment headers separately (e.g.,sudo apt install libportaudio2on Linux).
Running the App
Simply run the main script:
python main.py
📖 How it Works
- Capture: The
AudioEngineopens a stream viaPyAudioto capture system or microphone input. - 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.
- Audio is converted to normalized
- Analysis: An FFT (Fast Fourier Transform) is computed with a Hanning window to generate the magnitude spectrum.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file speqtr-0.1.0.tar.gz.
File metadata
- Download URL: speqtr-0.1.0.tar.gz
- Upload date:
- Size: 8.2 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9af3143ac759c2ffeeebc1d8c53796ae9a3083e8620a5ef2bd7f86cd668afd9
|
|
| MD5 |
979fea9fb9628395977412d656b30389
|
|
| BLAKE2b-256 |
5ab6d158b0fda8f8c540862a63e8dce9aaeccdd1eab8d807391ee885bbfda4cc
|
File details
Details for the file speqtr-0.1.0-py3-none-any.whl.
File metadata
- Download URL: speqtr-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.4 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3cadb49f89ef9160caf62badfa5502d7a9139be4cc1ecce35fa188290735fb8
|
|
| MD5 |
7b6da29484a6d1d9904203bcd485972b
|
|
| BLAKE2b-256 |
5379bbf1ba2ccdd7cd5a1c087322ac35d432e433c36aa122e5b2e59860fd13b5
|