by carlthome

Apply audio effects such as reverb and EQ directly to audio files or NumPy ndarrays.

237 Stars 36 Forks Last release: about 2 months ago (0.3.7) MIT License 139 Commits 22 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


GitHub Workflow Status PyPI PyPI license

Apply audio effects such as reverb and EQ directly to audio files or NumPy ndarrays.

This is a lightweight Python wrapper for SoX - Sound eXchange. Supported effects range from EQ and compression to phasers, reverb and pitch shifters.



pip install pysndfx
The system must also have SoX installed.

For Debian-based operating systems:

apt install sox

For Anaconda:

conda install -c conda-forge sox


First create an audio effects chain. ```python

Import the package and create an audio effects chain function.

from pysndfx import AudioEffectsChain

fx = ( AudioEffectsChain() .highshelf() .reverb() .phaser() .delay() .lowshelf() )

Then we can call the effects chain object with paths to audio files, or directly with NumPy ndarrays.
python infile = 'myaudiofile.wav' outfile = 'myprocessedaudio_file.ogg'

Apply phaser and reverb directly to an audio file.

fx(infile, outfile)

Or, apply the effects directly to a ndarray.

from librosa import load y, sr = load(infile, sr=None) y = fx(y)

Apply the effects and return the results as a ndarray.

y = fx(infile)

Apply the effects to a ndarray but store the resulting audio to disk.

fx(x, outfile)

There's also experimental streaming support. Try applying reverb to a microphone input and listening to the results live like this:
sh python -c "from pysndfx import AudioEffectsChain; AudioEffectsChain().reverb()(None, None)" ```

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.