A lightweight application for visualizing audio signals and experimenting with different audio filters.
This program was developed as a school project during the final year of an IT apprenticeship.
With denoise-lab, you can load a .wav file and explore its structure through three visual representations:
- Waveform
- Discrete Fourier Transform (DFT)
- Spectrogram
You can also apply various audio filters and immediately observe how they affect the signal.
The effect of each filter can be seen in the plots and heard after exporting the processed audio back into a .wav file.
The diagram below summarizes the core functionality of denoise-lab and the interactions available to the user:
All Python dependencies are listed in requirements.txt.
Clone the repository and install the dependencies:
git clone <repository-url>
cd denoise-lab
python -m venv .venv
source .venv/bin/activate # On Windows use: .venv\\Scripts\\activate
pip install --upgrade pip
pip install -r requirements.txtLaunch the GUI from the project root:
python src/main.pyWithin the app you can:
- Use File → Load file to load a
.wavfile. - Inspect the waveform, DFT, and spectrogram visualizations.
- Apply filters (bandpass, notch, denoiser, parametric EQ) and listen to the result by exporting to a new
.wavfile.
The project includes Pytest-based checks for the audio processing utilities. Run them from the repository root:
pytestsrc/main.py— entry point that launches the PyQt-based GUI.src/gui/— window, plotting, and control widgets used to drive the application.src/audio/— filter implementations such as bandpass, notch, denoiser, and parametric EQ.src/io/— audio loading and saving helpers.tests/— unit tests covering filter behaviour and audio file handling.

