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.