René Nyffenegger's collection of things on the web
René Nyffenegger on Oracle - Most wanted - Feedback

butterbp (Csound opcode)

Second order band pass Butterworth filter.
ar butterbp asig, kfreq, kband[, iskip]
asig: Input signal to be filtered.
kfreq: Center frequency. (That is the intervalic, not mathematical, center).
kband: Bandwidth
iskip: Skip initialization if present and non zero


This demonstration is similar to the one of the reson filter which produces almost the same output.
The following score on orchestra file can be used to show how butterbp filters frequencies. a440 is a signal that oscilates with 440 Hz. kfrq220_660 is the center frequency for butterbp and moves from 220 Hz up to 660 Hz. The filtered signal (afiltered) is sent to one channel while a440 is sent to the other channel. The filtered signal reaches the same amplitude as a440 after a second (when kfrq220_660 is 440 Hz) and is otherwise attenuated.
sr     = 44100
kr     = 4410
nchnls = 2

instr 1

  ilen = p3

  a440          oscili   10000, 440, 1

  kfrq220_660   line     220, ilen, 660

  afiltered     butterbp    a440, kfrq220_660, 110

  outs          a440, afiltered
f1 0 2048 10 1

i1 0 2 
This produces the following output:
The upper 'channel' is the unfiltered signal (a440) while the lower 'channel' is the filtered signal (afiltered). The entire signal passes the filter when the filter frequency correspondends to the signal's frequency; the more the filter frequency is away from the signal frequency, the more the signal is attenuated.


This opcode is used for the following instruments: