lpf18

lpf18 --  A 3-pole sweepable resonant lowpass filter.

Description

Implementation of a 3 pole sweepable resonant lowpass filter.

Syntax

ar lpf18 asig, kfco, kres, kdist

Performance

kfco -- the filter cutoff frequency in Hz. Should be in the range 0 to sr/2.

kres -- the amount of resonance. Self-oscillation occurs when kres is approximately 1. Shoujld usually be in the range 0 to 1, however, values slightly greater than 1 are possible for more sustained oscillation and an "overdrive" effect.

kdist -- amount of distortion. kdist = 0 gives a clean output. kdist > 0 adds tanh() distortion controlled by the filter parameters, in such a way that both low cutoff and high resonance increase the distortion amount. Some experimentation is encouraged.

lpf18 is a digital emulation of a 3 pole (18 dB/oct.) lowpass filter capable of self-oscillation with a built-in distortion unit. It is really a 3-pole version of moogvcf, retuned, recalibrated and with some performance improvements. The tuning and feedback tables use no more than 6 adds and 6 multiplies per control rate. The distortion unit, itself, is based on a modified tanh function driven by the filter controls.

NoteNote
 

This filter requires that the input signal be normalized to one.

Examples

Here is an example of the lpf18 opcode. It uses the files lpf18.orc and lpf18.sco.

Example 1. Example of the lpf18 opcode.

/* lpf18.orc */
/* Written by Kevin Conder, with help from Iain Duncan */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Instrument #1.
instr 1
  ; Generate a sine waveform.
  ; Note that its amplitude (kamp) ranges from 0 to 1.
  kamp init 1
  kcps init 440
  knh init 3
  ifn = 1
  asine buzz kamp, kcps, knh, ifn

  ; Filter the sine waveform.
  ; Vary the cutoff frequency (kfco) from 300 to 3,000 Hz.
  kfco line 300, p3, 3000
  kres init 0.8
  kdist init 0.3
  aout lpf18 asine, kfco, kres, kdist

  out aout * 30000
endin
/* lpf18.orc */
        
/* lpf18.sco */
/* Written by Kevin Conder, with help from Iain Duncan */
; Table #1, a sine wave.
f 1 0 16384 10 1

; Play Instrument #1 for four seconds.
i 1 0 4
e
/* lpf18.sco */
        

Credits

Author: Josep M Comajuncosas

Spain

December, 2000

New in Csound version 4.10

Thanks goes to Iain Duncan for helping with the lpf18 example.