MultiCtrl
Created by Panaiotis
© 2001 by Panaiotis. All rights reserved.
General
Allows several user interface controllers to be used simultaneously in such
a way that any can be used and others are updated. E.g. a number box and a slider
control can be linked so that both will control output and when one is changed,
the other changes accordingly without sending Max into stack overflow. MultiCtrl
seems to deal fairly well with floats except that they are treated
as integers.
Input
|
bang |
in leftmost inlet: sends the current internal value out the leftmost outlet. |
|
int in leftmost inlet |
sets the current internal value, updates all controllers attached to MultiCtrl
and sends the value out the leftmost outlet. Repeated values are sent through
the leftmost outlet only. |
|
int in all other inlets |
updates the internal value. The offset for that inlet is subtracted from
the input and the result becomes the internal value. All controllers are
updated and the internal value is sent through the leftmost outlet. If the
resulting value is equal to the internal value, the input is ignored. |
|
update |
sends current internal values to all outlets except the leftmost. |
Arguments
|
ints |
an offset value for each controller (up to 8 for a total of nine inlets).
The offset can be 0. MultiCtrl creates inlets and outlets for each
controller for which there is an offset except the leftmost inlet/outlet
pair, for which there is no offset. |
Output
|
leftmost |
current value |
|
others |
current + offset value for associated controller. Output only if MultiCtrl
internal value has been changed. When output does occur, all outlets are
sent updated values except the one associated with the inlet that initiated
the change. |
Examples
 |
User can enter a MIDI control value, click and move the slider,
or enter a distance from center panning. In all cases, all user interface
objects are updated to reflect changes, and Max does not go into a tailspin. |