Skip to content

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

License

Notifications You must be signed in to change notification settings

CrescentonC/python-audio-effects

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pysndfx

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.

Install

Command:

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

Usage

First create an audio effects chain.

# 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.

infile = 'my_audio_file.wav'
outfile = 'my_processed_audio_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:

python -c "from pysndfx import AudioEffectsChain; AudioEffectsChain().reverb()(None, None)"

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%