resonxk — Control signal resonant filter stack.


resonxk is equivalent to a group of resonk filters, with the same arguments, serially connected. Using a stack of a larger number of filters allows a sharper cutoff.


kres resonxk ksig, kcf, kbw[, inumlayer, iscl, istor]


inumlayer - number of elements of filter stack. Default value is 4. Maximum value is 10

iscl (optional, default=0) - coded scaling factor for resonators. A value of 1 signifies a peak response factor of 1, i.e. all frequencies other than kcf are attenuated in accordance with the (normalized) response curve. A value of 2 raises the response factor so that its overall RMS value equals 1. (This intended equalization of input and output power assumes all frequencies are physically present; hence it is most applicable to white noise.) A zero value signifies no scaling of the signal, leaving that to some later adjustment (see balance). The default value is 0.

istor (optional, default=0) -- initial disposition of internal data space. Since filtering incorporates a feedback loop of previous output, the initial status of the storage space used is significant. A zero value will clear the space; a non-zero value will allow previous information to remain. The default value is 0.


kres - output signal

ksig - input signal

kcf - the center frequency of the filter, or frequency position of the peak response.

kbw - bandwidth of the filter (the Hz difference between the upper and lower half-power points)

resonxk is a lot faster than using individual instances in Csound orchestra of the old opcodes, because only one initialization and 'k' cycle are needed at a time, and the audio loop falls enterely inside the cache memory of processor.


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

Example 922. Example of the resonxk opcode.

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

; Select audio/midi flags here according to platform
-odac      ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o resonxk.wav -W ;;; for file output any platform

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

gisin ftgen 0, 0, 2^10, 10, 1

instr 1

ksig randomh  400, 1800, 150
aout poscil   .2, 1000+ksig, gisin
     outs     aout, aout

instr 2

ksig randomh  400, 1800, 150
kcf  line     1, p3, 1000		;vary high-pass
ilay = p4
ksig resonxk  ksig, kcf, 100, ilay
aout poscil   .2, 1000+ksig, gisin
asig interp   ksig			;convert k-rate to a-rate
aout balance  asig, aout		;avoid getting asig out of range
     outs     aout, aout

i 1 0  5
i 2 6  5 1	;number of filter stack = 1
i 2 12 5 5	;number of filter stack = 5

See also

Standard Filters: Control signal filters


Written by Gabriel Maldonado.

New in Csound 5 (Previously available only on CsoundAV)