audio_dspy is a Python package for audio signal processing tools.
Current tools include:
- EQ filter design
- Nonlinear Processors
- Sine Sweep Tools
- Plotting Frequency Responses and Static Curves
- Converting transfer functions to minimum or linear phase
- Prony's method, and Prony's method with frequency warping
- Modal modelling tools
Install using pip
:
pip install audio-dspy
import audio_dspy as adsp
import matplotlib.pyplot as plt
# Plot nonlinear static curves
adsp.plot_static_curve (lambda x : adsp.hard_clipper (x), range=2.5)
adsp.plot_static_curve (lambda x : adsp.soft_clipper (x), range=2.5)
plt.title ('Comparing Nonlinearities')
plt.legend (['Hard Clipper', 'Soft Clipper'])
# Design and plot EQ filters
fs = 44100
b, a = adsp.design_lowshelf (800, 2.0, 2, fs)
adsp.plot_magnitude_response (b, a, fs=fs)
plt.title ('Low Shelf Filter')
# Perform level detection
from scipy.io import wavfile
fs, x = wavfile.read('drums.wav')
x = adsp.normalize(x[:,0]) # only take left channel, normalize
plt.plot(x, label='input')
for mode in ['peak', 'rms', 'analog']:
y = adsp.level_detect(x, fs, mode=mode)
plt.plot(y, label=mode)
plt.title('Level Detection Example')
plt.xlabel('Time [samples]')
plt.legend()