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 51. 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 */