Implementation of a second-order band-pass Butterworth filter. This opcode can also be written as butbp.
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 butterbp opcode. It uses the files butterbp.orc and butterbp.sco.
Example 1. Example of the butterbp opcode.
/* butterbp.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, passing only 1950 to 2050 Hz.
abp butterbp asig, 2000, 100
out abp
endin
/* butterbp.orc */
/* butterbp.sco */
; Play Instrument #1 for two seconds.
i 1 0 2
; Play Instrument #2 for two seconds.
i 2 2 2
e
/* butterbp.sco */