Noise (Band-Limited Impulse) Controller
Description
Outputs a random series of band-limited impulses. The cutoff, random delay time range and output value range can all be dynamically controlled using other controllers.
(make-controller 'noise ... )
Lisp Syntax and Default Values
The 'noise controller can be created using the following Lisp syntax:
(make-controller 'noise dimension period (list cutoff delmin delmax outmin outmax) taps)
Parameters
The 'noise controller takes four arguments, the third of which is a list of 5 controllers:
- dimension: number of dimensions of the output controller.
- period: sampling period (seconds).
- cutoff: a controller specifying the cutoff frequency (in Hz.).
- delmin: controller specifying the minimum entry delay in seconds.
- delmax: controller specifying the maximum entry delay in seconds.
- outmin: controller specifying the minimum output value.
- outmax: controller specifying the maximum output value.
- taps: integer number of taps used in the smoothing filter (an even integer not less than 4).
The period is used to define the time between the updates of the controller. If zero is given then it updates every sample.
The list of 5 controllers (cutoff, delmin, delmax, outmin and outmax) must be provided in list format.
The cutoff frequency is a controller and therefore can be dynamically variable. For single-sample clicks you can give a cutoff euqal to the sampling rate.
The delmin and delmax parameters let you choose the timing between impulses. If these values are the same the impulses will be generated in a regular rhythm, otherwise the entries of each impulse will be randomly chosen within the range provided.
The outmin and outmax parameters let you similarly control the output range for the amplitude of the impulses.
The number of filter taps for the smoothing function can be chosen. This parameter has an effect on the quality of the smoothing (but remember that the computation time increases with the square of taps). A good "clean" value for taps is 30, but anyway this is noise, so taking it down to 10 probably would not affect the sound that much for most uses. The minimum value for this parameter is 4.
Note also that using a higher value for the filter taps parameter may sometimes result in controller values that slightly exceed the -1 to 1 range. The random values themselves are within range, but bandlimiting and smoothing process will cause them to exceed these limits slightly.
Discussion
The Modalys 'noise controller can output a wide variety of sounds, from metronomic bleeps to white noise. Here are some practical examples that should help you understand how it works. The graph shown in the image, above, outputs a series of impulses which get increasingly farther apart over 2 seconds:
(make-controller 'noise 1 0
(list (const 1000)
(make-controller 'envelope 1 '((0 0.001) (2 0.1)))
(make-controller 'envelope 1 '((0 0.01) (2 0.5)))
(const -1)
(const 1))
10)
(make-controller 'noise 1 0
(list (const 44100)
(const 0)
(const 0)
(const -1)
(const 1))
10)
(make-controller 'noise 1 0
(list (const 44100)
(const 0.1)
(const 0.1)
(const -1)
(const 1))
10)
(make-controller 'noise 1 0
(list (const 1760)
(const 0.018)
(const 0.022)
(const 1)
(const 1))
30)
★