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 ...])
Dynamic controllers are those whose values change over time. They can be as basic as an envelope defining a breakpoint function whose (time, value) pairs are expressed as a list of lists, and more complex controllers can be those which read MIDI files, outputting several values (dimensions) at a time. Some controllers can also themselves be composed of (programming code) functions which look at what is happening in the synthesis and make decisions about how its values should change.
All controllers have the following (text-based) syntax in common:
(make-controller controller_type dimension ... )
The dimension value must be provided by the user, even if its value seems obvious. Specific information on the subsequent arguments and parameters for each controller type is found on the controllers' reference pages, themselves.
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.
The following controllers get information from an access, interaction or other point from the Modalys synthesis environment: