General purpose filter example¶
Worked Example¶
Steps in this example:
Set the stereo USB output to listen to the stereo USB input (loopback, skipping audio processing pipeline completely)
Apply a stereo 500Hz high-pass and 4kHz low-pass cascaded biquad filter
The 500Hz high-pass filter coefficients are:
a1 = -1.90748889a2 = 0.91158173b0 = 0.95476766b1 = -1.90953531b2 = 0.95476766The 4kHz low-pass filter coefficients are:
a1 = -1.27958194a2 = 0.47753396b0 = 0.04948800b1 = 0.09897601b2 = 0.04948800Hear the effect filtered signals when the filters are enabled
This example assumes that the input and output sample rate is 48kHz.
First, connect the USB output to the USB input:
vfctrl_usb SET_IO_MAP 0 7 # (USB output left outputs USB input left)
vfctrl_usb SET_IO_MAP 1 8 # (As above for right channel)
Now configure the filter:
vfctrl_usb SET_FILTER_INDEX 2 (USB output left filter)
vfctrl_usb SET_FILTER_COEFF -1.90748889 0.91158173 0.95476766 -1.90953531 0.95476766 -1.27958194 0.47753396 0.04948800 0.09897601 0.04948800
vfctrl_usb SET_FILTER_INDEX 3 (USB output right filter)
vfctrl_usb SET_FILTER_COEFF -1.90748889 0.91158173 0.95476766 -1.90953531 0.95476766 -1.27958194 0.47753396 0.04948800 0.09897601 0.04948800
Now enable the filter:
vfctrl_usb SET_FILTER_INDEX 0
vfctrl_usb SET_FILTER_BYPASS 0
vfctrl_usb SET_FILTER_INDEX 1
vfctrl_usb SET_FILTER_BYPASS 0
Play a white noise source from the USB device and record the input. Use a spectrogram to show the band limited signal due to the effect of the filters. The effect should also be audible.