Filters its inputs by a second order IIR filter controlled by a set of five coefficients
The 'biquadratic-filter controller can be created using the following Lisp syntax:
(make-controller 'biquadratic-filter dimension period coef_controller input_controller)
The 'biquadratic-filter controller takes four arguments:
The number of dimensions should be the same as that of the input controller.
The coefficient controller should have 5 dimensions which represent the a0, a1, a2, b1 and b2 coefficients.
This filter implements a general second-order (two-pole two-zero) filter which can be used for a variety of purposes, including smoothing out envelopes, and filtering sound-file, signal or other controllers. The following example is shown in one of the graphs (with a 1 Hz cutoff) in the above image:
(setq sp (get-info 'sample-period))
(setq my-env (make-controller 'envelope 1
(list '(0 0.0) '(0.1 0) (list (+ 0.1 sp) 1) '(1.5 1) (list (+ 1.5 sp) 0)) ))
(setq cutoff 1)
(setq Q 0.707)
(setq w0 (* cutoff 2 pi sp))
(setq alpha (/ (sin w0) (* 2 Q)))
(setq cw (cos w0))
(setq b0 (/ 1 (+ 1 alpha)))
(setq a0 (* b0 (- 1 cw) 0.5))
(setq a1 (* b0 (- 1 cw)))
(setq a2 a0)
(setq b1 (* b0 (* -2 cw)))
(setq b2 (* b0 (- 1 alpha)))
(setq my-filtered-env (make-controller 'biquadratic-filter 1 (const a0 a1 a2 b1 b2) my-env))
You should probably consider using it or the biquadratic-filter, instead of the older filtering functions (because you can design any type of filter you want). However, you will first need to generate your own sets of coefficients from higher level parameters such as center/cutoff frequency, etc....
There are no special options for this controller.