Menu

Tree [78df5e] main /
 History

HTTPS access


File Date Author Commit
 LICENSE 6 days ago szabiz szabiz [9386bf] Initial commit
 LICENSE-THIRD-PARTY.txt 6 days ago szabiz szabiz [ec557f] Add third-party license notices for bundled lib...
 PopFilterPo_1.jpg 3 days ago szabiz szabiz [c85ac6] Add files via upload
 PopFilterPo_2.jpg 3 days ago szabiz szabiz [2cf658] Add files via upload
 PopFilterPro.spec 6 days ago szabiz szabiz [b29eed] Add PopFilterPro.spec for application packaging
 README.md 3 days ago szabiz szabiz [78df5e] Add images to README for visual reference
 app.py 6 days ago szabiz szabiz [694a88] Update print statement from 'Hello' to 'Goodbye'
 cli.py 6 days ago szabiz szabiz [235dea] Add CLI for pop filter audio processing
 icon.ico 6 days ago szabiz szabiz [5109aa] Add files via upload
 pop_core.py 6 days ago szabiz szabiz [061e73] Add Pop Filter Pro Application source code

Read Me

Pop Filter Pro

An intelligent, memory-efficient pop-noise (microphone "plosive") removal
engine and GUI for WAV audio files. Features a custom native Canvas-based
waveform engine and a Cubic Spline curve editor.

Copyright © 2026 szabiz — Soli Deo Gloria

License: GPLv3


Project Structure

PopFilterPro/
├── app.py                  # GUI application code (GPLv3)
├── cli.py                  # CLI interface code (GPLv3)
├── pop_core.py             # Core filter engine (GPLv3)
├── PopFilterPro.spec       # Spec file
├── icon.ico                # Application icon
├── LICENSE                 # Main project license: GNU General Public License v3.0
├── LICENSE-THIRD-PARTY.txt # Third-party dependency legal notices
└── README.md               # Project description and usage guide

Running from Source

Requirements

  • Python 3.13+
  • The following packages:
pip install numpy scipy sounddevice

(tkinter usually ships with most Windows/macOS Python installations by
default; on Linux you may need to install it separately, e.g.
sudo apt install python3-tk)

Launch

python app.py

Building Your Own .exe (PyInstaller)

# Create isolated build environment
python -m venv .venv_build

# Install required build packages
.\.venv_build\Scripts\python.exe -m pip install numpy scipy sounddevice pyinstaller

# Build executable package
.\.venv_build\Scripts\pyinstaller.exe --noconfirm --onedir --windowed --add-data "icon.ico;." app.py

The resulting build is created in the dist/app/ folder (app.exe +
the _internal/ folder). These two must always be distributed together.

Key Features

  • Band-limited, threshold-sensitive pop detection (adjustable frequency
    band and dB threshold)
  • Chunked processing — no freezing or crashing even on long (30+ minute)
    files, low RAM footprint
  • Real-time original / filtered preview, "Delta mode" (listen to only the
    removed noise)
  • Custom region selection with Cubic Spline curve fine-tuning
  • Audacity-compatible label export
  • Save/load presets

License

This project is licensed under the GNU General Public License v3.0
(GPLv3)
— see the LICENSE file.

This means you are free to use, modify, and distribute it (including for
commercial purposes), but any distributed modified version must also
remain open source, released under GPLv3.

The third-party libraries bundled into the compiled .exe (NumPy, SciPy,
sounddevice/PortAudio, Tcl/Tk, etc.) are listed with their licenses in
THIRD-PARTY-LICENSES.txt. All of them are
permissive (BSD/MIT/PSF) licenses, compatible with GPLv3.

Contributing

Pull requests and issues are welcome. Since the project is licensed under
GPLv3, any contributed changes will also fall under the same license.

Acknowledgments

Thanks to the NumPy, SciPy, and sounddevice development teams, as well as
the researchers behind HPSS (Harmonic-Percussive Source Separation) and
Wiener filtering, without whom this software could not have been created.

Első kép
Második kép