Realtime control of device parameters
The live.remote~ object allows to remotely control Lives DeviceParameter objects in realtime.
The DeviceParameter object is selected using live.path and its id is put into the right inlet of live.remote~. An example path of a DeviceParameter is .
Integer or float values are send into left inlet of live.remote~, as messages or as an audio signal. The values are applied sample-precise (if sent by the audio thread of Max) with a constant latency of a single audio buffer.
A device parameter is disabled in Live while it is controlled by a live.remote~, just as if it controlled by a Macro parameter (but without the green dot). This means that the automation of the parameter is disabled and the value in the Live set is not changed, no undo steps are created. The envelopes are active, though. To stop controlling a device parameter and to reenable it, send to the right inlet of live.remote~.
Set the ramp time that is used for each incoming event. This also performs an automatic downsampling of any signal you send in. For example, a smoothing value of 1 ms will downsample the signal to 1 ms and send ramp events which output a linear approximation of the initial signal. This attribute defaults to 1 ms.
Common Box Attributes
Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.
background [int] (default: 0)
Adds or removes the object from the patcher's background layer.adds the object to the background layer, removes it. Objects in the background layer are shown behind all objects in the default foreground layer.
color [4 floats]
Sets the color for the object box outline.
Sets the type style used by the object. The options are:
0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'
Sets the object's font.
Sets the object's font size (in points).
hidden [int] (default: 0)
Toggles whether an object is hidden when the patcher is locked.
Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.
ignoreclick [int] (default: 0)
Toggles whether an object ignores mouse clicks in a locked patcher.
patching_rect [4 floats] (default: 0. 0. 100. 0.)
Sets the position and size of the object in the patcher window.
position [2 floats]
Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.
presentation [int] (default: 0)
Sets whether an object belongs to the patcher's presentation.
presentation_rect [4 floats] (default: 0. 0. 0. 0.)
Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.
rect [4 floats]
Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).
size [2 floats]
Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.
Sets the color for the object's text in RGBA format.
0 = 'left'
1 = 'center'
2 = 'right'
means no object, i.e. the remote stops controlling the DeviceParameter. This is also the initial state.
The live.remote~ object has a special entry in its inspector labelled "Use Persistent Mapping". This setting, when enabled, causes the associated with the object to persist when the Live document is saved and restored, and when the Max Device is moved between the Live application and the Max editor, or within the Live Set. Beginning in Live 8.2.2, Live API ids remain persistent between launches of Live, which in conjunction with the feature of live.object, live.observer and live.remote~, makes it possible to create simpler devices which retain their association with elements in the Live user interface.
|Live API Overview||Live API Overview|
|Live Object Model||LOM - The Live Object Model|
|live.object||Perform operations on Live objects|
|live.observer||Monitor changes in Live objects|
|live.path||Navigate to objects in the Live application|
|Using the Live API||Creating Devices that use the Live API|