audio_filters.butterworth_filter¶
Functions¶
|
Validate arguments shared by the Butterworth filter factories. |
|
Creates an all-pass filter |
|
Creates a band-pass filter |
|
Creates a band-pass filter with constant 0 dB peak gain. |
|
Creates a high-pass filter |
|
Creates a high-shelf filter |
|
Creates a low-pass filter |
|
Creates a low-shelf filter |
|
Creates a notch (band-reject) filter that strongly attenuates a narrow band |
|
Creates a peak filter |
Module Contents¶
- audio_filters.butterworth_filter._validate_frequency(frequency: int, samplerate: int, q_factor: float) None¶
Validate arguments shared by the Butterworth filter factories.
>>> _validate_frequency(1000, 48000, 1 / sqrt(2)) >>> _validate_frequency(0, 48000, 1 / sqrt(2)) Traceback (most recent call last): ... ValueError: frequency must be a positive integer >>> _validate_frequency(24000, 48000, 1 / sqrt(2)) Traceback (most recent call last): ... ValueError: frequency must be less than half the samplerate >>> _validate_frequency(1000, 0, 1 / sqrt(2)) Traceback (most recent call last): ... ValueError: samplerate must be a positive integer >>> _validate_frequency(1000, 48000, 0) Traceback (most recent call last): ... ValueError: q_factor must be positive
- audio_filters.butterworth_filter.make_allpass(frequency: int, samplerate: int, q_factor: float = 1 / sqrt(2)) audio_filters.iir_filter.IIRFilter¶
Creates an all-pass filter
>>> filter = make_allpass(1000, 48000) >>> filter.a_coeffs + filter.b_coeffs [1.0922959556412573, -1.9828897227476208, 0.9077040443587427, 0.9077040443587427, -1.9828897227476208, 1.0922959556412573]
- audio_filters.butterworth_filter.make_bandpass(frequency: int, samplerate: int, q_factor: float = 1 / sqrt(2)) audio_filters.iir_filter.IIRFilter¶
Creates a band-pass filter
>>> filter = make_bandpass(1000, 48000) >>> filter.a_coeffs + filter.b_coeffs [1.0922959556412573, -1.9828897227476208, 0.9077040443587427, 0.06526309611002579, 0, -0.06526309611002579]
- audio_filters.butterworth_filter.make_bandpass_peak(frequency: int, samplerate: int, q_factor: float = 1 / sqrt(2)) audio_filters.iir_filter.IIRFilter¶
Creates a band-pass filter with constant 0 dB peak gain.
Unlike
make_bandpass(), whose skirt (edge) gain is held constant so the peak gain grows withq_factor, this variant normalises the response so the peak always reaches 0 dB regardless of the chosenq_factor. Both forms come from the RBJ Audio EQ Cookbook.https://en.wikipedia.org/wiki/Band-pass_filter
>>> filter = make_bandpass_peak(1000, 48000) >>> filter.a_coeffs + filter.b_coeffs [1.0922959556412573, -1.9828897227476208, 0.9077040443587427, 0.09229595564125725, 0, -0.09229595564125725]
- audio_filters.butterworth_filter.make_highpass(frequency: int, samplerate: int, q_factor: float = 1 / sqrt(2)) audio_filters.iir_filter.IIRFilter¶
Creates a high-pass filter
>>> filter = make_highpass(1000, 48000) >>> filter.a_coeffs + filter.b_coeffs [1.0922959556412573, -1.9828897227476208, 0.9077040443587427, 0.9957224306869052, -1.9914448613738105, 0.9957224306869052]
- audio_filters.butterworth_filter.make_highshelf(frequency: int, samplerate: int, gain_db: float, q_factor: float = 1 / sqrt(2)) audio_filters.iir_filter.IIRFilter¶
Creates a high-shelf filter
>>> filter = make_highshelf(1000, 48000, 6) >>> filter.a_coeffs + filter.b_coeffs [2.2229172136088806, -3.9587208137297303, 1.7841414181566304, 4.295432981120543, -7.922740859457287, 3.6756456963725253]
- audio_filters.butterworth_filter.make_lowpass(frequency: int, samplerate: int, q_factor: float = 1 / sqrt(2)) audio_filters.iir_filter.IIRFilter¶
Creates a low-pass filter
>>> filter = make_lowpass(1000, 48000) >>> filter.a_coeffs + filter.b_coeffs [1.0922959556412573, -1.9828897227476208, 0.9077040443587427, 0.004277569313094809, 0.008555138626189618, 0.004277569313094809]
- audio_filters.butterworth_filter.make_lowshelf(frequency: int, samplerate: int, gain_db: float, q_factor: float = 1 / sqrt(2)) audio_filters.iir_filter.IIRFilter¶
Creates a low-shelf filter
>>> filter = make_lowshelf(1000, 48000, 6) >>> filter.a_coeffs + filter.b_coeffs [3.0409336710888786, -5.608870992220748, 2.602157875636628, 3.139954022810743, -5.591841778072785, 2.5201667380627257]
- audio_filters.butterworth_filter.make_notch(frequency: int, samplerate: int, q_factor: float = 1 / sqrt(2)) audio_filters.iir_filter.IIRFilter¶
Creates a notch (band-reject) filter that strongly attenuates a narrow band of frequencies around
frequencywhile leaving the rest of the spectrum unchanged. It is the complement of the band-pass filter and is commonly used to remove a single tone such as 50/60 Hz mains hum.https://en.wikipedia.org/wiki/Band-stop_filter
>>> filter = make_notch(1000, 48000) >>> filter.a_coeffs + filter.b_coeffs [1.0922959556412573, -1.9828897227476208, 0.9077040443587427, 1.0, -1.9828897227476208, 1.0]
- audio_filters.butterworth_filter.make_peak(frequency: int, samplerate: int, gain_db: float, q_factor: float = 1 / sqrt(2)) audio_filters.iir_filter.IIRFilter¶
Creates a peak filter
>>> filter = make_peak(1000, 48000, 6) >>> filter.a_coeffs + filter.b_coeffs [1.0653405327119334, -1.9828897227476208, 0.9346594672880666, 1.1303715025601122, -1.9828897227476208, 0.8696284974398878]