A Guide to Modalys Controllers
Controllers - Managing Modalys Objects, Accesses and Connections in Time
Any information in a Modalys synthesis which can be changed over time by the user is specified by controllers. This is very important to the modular construction of Modalys because, after having created a complicated instrument, one can put the majority of detailed information in a “black box” and simply turn the knobs of certain controllers in order to make a sound. Controllers vary in dimension and “intelligence.” Single-dimension controllers are used to control a single value, whereas multi-dimensional controllers are needed to control more complex parameters, such as the (x, y) location of an access on a plate, just to give one practical example.
There are two general categories of controllers in Modalys: constant and dynamic.
Constant controllers are the simplest type of controller. They represent a “knob” or “slider” (or an array of them) which remains in one fixed position (a constant value) throughout an entire synthesis. In some cases constant controllers can be replaced with single numerical values as arguments. Generally, though, if a Modalys function calls for a controller, it is best to use a constant controller to set a fixed value for that controller. Some examples are shown on the constant controller's reference page.
Constant controllers are usually created with the following shorthand syntax:
(const value1 [value2 value3 ...])
All controllers have the following (text-based) syntax in common:
(make-controller controller_type dimension ... )
The following pages contain the individual Modalys controller reference pages. The controllers are organized thematically in categories ranging roughly from basic to complex instead of being ordered alphabetically.
Basic Controllers
The following are the most basic and commonly used controllers:
Modalys Environment Controllers
The following controllers get information from an access, interaction or other point from the Modalys synthesis environment:
- Access Speed Controller
- Access Position Controller
- Access Force Controller
- Connection State Controller
- Last Sample Controller (appears to be broken - does not cause errors, but outputs zero)
Controllers from Files
Run-Time and Real-Time Controllers
- Dynamic Controller
- Send Message (used with the Dynamic Controller)
- Set Breakpoint (used with the Dynamic Controller) (semi-deprecated)
- Signal Controller
Math and Programming Controllers
- Lua Controller
- Expression Controller
- Scale Controller
- Arithmetic Controller
- Foreign Call Controller (only available in the Lisp interface to Modalys)
Signal Generator Controllers
- Sine Controller
- Random Controller (i.e. White Noise Controller)
- Band-Limited Noise Controller
- Noise Controller (i.e. Band-Limited Impulse Controller)
Delay and Filtering Controllers
- Delay Controller
- Bilinear Filter (First Order IIR Filter)
- Biquadratic Filter (Second Order IIR FIlter)
- Constant Bandpass Filter Controller (appears to be broken...)
- Variable Bandpass Filter Controller
Managing Multi-Dimensional Controllers
Controller Utilities
- (get-info 'value ... ) - obtain the current value of a controller