zcy618 / biquad

Collection of alterable digital biquad filters for dynamic audio effect creation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Alterable biquad filters

language license pypi

This is a collection of digital biquad filters whose parameters f (frequency in Hz), g (gain in dB) and q (quality) can be varied at runtime. Following DF1 filter implementations are available:

  • Allpass
  • Bandpass
  • Highpass
  • Lowpass
  • Highshelf
  • Lowshelf
  • Notch
  • Peak

Basic usage

Filter with static configuration:

import biquad
import numpy as np

# load audio samples somehow
x, sr = np.zeros(...), 44100

# create a filter of your choice
f = biquad.bandpass(sr, f=sr/4, q=1)

# process all audio samples
y = f(x)

Filter with dynamic configuration:

import biquad
import numpy as np

# load audio samples somehow
x, sr = np.zeros(...), 44100

# create a filter of your choice
f = biquad.bandpass(sr)

# create parameter modifications as you like
myf = np.linspace(1, sr/4, len(x))
myq = np.linspace(2,  1/2, len(x))

# process all audio samples
y = f(x, f=myf, q=myq)

Keep in mind:

  • All filters have a default value for the persistent parameters g and q, which is set in the particular __init__ method.
  • Parameter f must be set either in the __init__ or in the __call__ method.
  • The optional instantaneous parameters f, g and q, if specified in the __call__ method, override the persistent ones.

References

  1. Cookbook formulae for audio EQ biquad filter coefficients by Robert Bristow-Johnson
  2. Introduction to Digital Filters with Audio Applications by Julius O. Smith III

License

github.com/jurihock/biquad is licensed under the terms of the MIT license. For details please refer to the accompanying LICENSE file distributed with it.

About

Collection of alterable digital biquad filters for dynamic audio effect creation

License:MIT License


Languages

Language:Python 97.6%Language:Makefile 2.4%