Implementation of a second-order band-reject Butterworth filter. This opcode can also be written as butbr.
These filters are Butterworth second-order IIR filters. They are slightly slower than the original filters in Csound, but they offer an almost flat passband and very good precision and stopband attenuation.
asig -- Input signal to be filtered.
kfreq -- Cutoff or center frequency for each of the filters.
kband -- Bandwidth of the bandpass and bandreject filters.
Here is an example of the butterbr opcode. It uses the files butterbr.orc and butterbr.sco.
Example 15-1. Example of the butterbr opcode.
/* butterbr.orc */
; Initialize the global variables.
sr = 22050
kr = 2205
ksmps = 10
nchnls = 1
; Instrument #1 - an unfiltered noise waveform.
instr 1
; White noise signal
asig rand 22050
out asig
endin
; Instrument #2 - a filtered noise waveform.
instr 2
; White noise signal
asig rand 22050
; Filter it, cutting 2000 to 6000 Hz.
abr butterbr asig, 4000, 2000
out abr
endin
/* butterbr.orc */
/* butterbr.sco */
; Play Instrument #1 for two seconds.
i 1 0 2
; Play Instrument #2 for two seconds.
i 2 2 2
e
/* butterbr.sco */