lowpass2

lowpass2 — A resonant lowpass filter.

Description

Implementation of a resonant second-order lowpass filter.

Syntax

ares lowpass2 asig, kcf, kq [, iskip]

Initialization

iskip -- initial disposition of internal data space. A zero value will clear the space; a non-zero value will allow previous information to remain. The default value is 0.

Performance

asig -- input signal to be filtered

kcf -- cutoff or resonant frequency of the filter, measured in Hz

kq -- Q of the filter, defined, for bandpass filters, as bandwidth/cutoff. kq should be between 1 and 500

lowpass2 is a second order IIR lowpass filter, with k-rate controls for cutoff frequency (kcf) and Q (kq). As kq is increased, a resonant peak forms around the cutoff frequency, transforming the lowpass filter response into a response that is similar to a bandpass filter, but with more low frequency energy. This corresponds to an increase in the magnitude and "sharpness" of the resonant peak. For high values of kq, a scaling function such as balance may be required. In practice, this allows for the simulation of the voltage-controlled filters of analog synthesizers, or for the creation of a pitch of constant amplitude while filtering white noise.

Examples

Here is an example of the lowpass2 opcode. It uses the file lowpass2.csd.

Example 540. Example of the lowpass2 opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in
-odac             ;;;RT audio out
; For Non-realtime ouput leave only the line below:
;-o lpf18.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; by Sean Costello

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1

idur    = p3
ifreq   = p4
iamp    = p5 
iharms  = (sr*.4) / ifreq
asig    gbuzz .3, ifreq, iharms, 1, .9, 1           ; Sawtooth-like waveform
kfreq   linseg 1, idur * 0.5, 5000, idur * 0.5, 1   ; Envelope to control filter cutoff
afilt   lowpass2 asig,kfreq, 30
kenv    linseg 0, .1, iamp, idur -.2, iamp, .1, 0   ; Simple amplitude envelope
outs    afilt * kenv, afilt * kenv

endin

</CsInstruments>
<CsScore>
f1 0 8192 9 1 1 .25
;       frq     amp
i1 0 5  100     .15
i1 5 5  200     .12
e
</CsScore>
</CsoundSynthesizer>


Credits

Author: Sean Costello
Seattle, Washington
August 1999

New in Csound version 4.0