This document exists to catalog the full set of OSC messages used for control and display between the Knobbler4 Max for Live device and a physical interface, such as an app or TouchOSC running on an iPad. Because the standard OSC protocol is used, you are free to develop alternative interfaces to interact with Knobbler4.
Sets the value of Slot N, as a float between 0 and 1, inclusive. If Slot N is already mapped, Knobbler will then quietly update the assigned parameter in the Live set with the value. If Slot N is not mapped and there is a selected parameter in the Live Set, then that parameter will be mapped to Slot N and resulting name, color, and value messages will be sent to update the tablet.
Removes the mapping for Slot N. Has side effects of messages sent from Knobbler to tablet to update name, color, and value to unassigned values.
Sets the value of the parameter mapped to Slot N to its default value. Does so in a way to trigger an update back to the tablet.
Switch the Live display to the track corresponding to Slot N.
Updates the device name for Slot N.
Updates the parameter name for Slot N.
The automation state for the parameter in Slot N.
Updates the track name for Slot N.
Updates the slider for Slot N to the given value.
Updates the color of the slider for Slot N to the one given. Must be a hexidecimal string in the form RRGGBBAA.
Updates the string representation of Slot N's mapped parameter value, e.g. (-6db or 2.5KHz).
Sets the value of Slot N, as a float between 0 and 1, inclusive. Knobbler will then quietly update the corresponding parameter in the selected device in the Live set with the value.
Sets the value of the parameter mapped to Slot N to its default value. Does so in a way to trigger an update back to the tablet.
Go to bank index N.
If not looking at the first bank, has the effect of switching the Tablet to the previous bank of parameters. Causes a full update of slot names and values.
If more banks of parameters are available, then switch the Tablet to the next bank of parameters. Causes a full update of slot names and values.
For shortcut button N, will map the button if it is not yet mapped. If mapped already, it will focus the Live UI on the mapped device.
For shortcut button N, will unmap the button.
Updates the current track / device name in the display.
Updates the text that indicates the current bank, e.g. "Bank 2 of 6".
Updates the parameter name for Slot N.
The automation state for the parameter in Slot N.
Updates the slider for Slot N to the given value.
Updates the color of the slider for Slot N to the one given. Must be a hexidecimal string in the form RRGGBBAA.
Updates the string representation of Slot N's mapped parameter value, e.g. (-6db or 2.5KHz).
Updates the shortcut button N to the given color value (RRGGBBAA).
Updates the device name displayed beneath the shortcut button N.
Live object ID number for the currently selected track.
JSON-stringified array of track array objects. See the source file src/consts.ts
to see the field ID definitions. e.g.
[
[0,3,"1-MIDI","FFF034",0],
[0,10,"2-MIDI","99724B",0],
[0,11,"3-Audio","F7F47C",0],
[0,12,"4-Audio","FFA529",0],
[2,13,"A-Reverb","10A4EE",0],
[2,14,"B-Delay","00BFAF",0],
[3,15,"Main","19E9FF",0]
]
Live object ID number for the currently selected device, a.k.a. live_set appointed_device
. This only has a value if a compatible control surface is chosen in the MIDI settings.
JSON-stringified array of device objects. See the source file src/consts.ts
to see the field ID definitions. e.g.
[
[5,8,"Knobbler4-v26","FFF034",0]
]
JSON-stringified list of color values for the 12 possible return tracks. e.g.
[
"#10A4EE","#00BFAF","#990000",
"#990000","#990000","#990000",
"#990000","#990000","#990000",
"#990000","#990000","#990000"
]
Indicates the type of track - normal, group, return, or main. See src/consts.ts
for the track type definitions.
Indicates whether the track is armed for recording.
Indicates whether input is enabled for the current track.
The track volume level. 0.85
is 0.0db.
The pan position for the track.
The crossfader value for the track. 0 = A, 1 = none, 2 = B.
The amount to send to return track N, with N being a value from 1-12.
The number of return tracks.
Indicates if the A or B crossfader buttons are selected for the given track.
Indicates the Solo state of the track.
Indicates the Mute state of the track.
The color of the current track, in integer form ((r<<16) + (g<<8) + b)
Indicates whether the track has audio output. Controls the enabled state of some mixer components, e.g. the volume slider.
String value of the current track volume level. Displayed above the volume slider in the mixer.
Indicates if the arrangement overdub button is engaged.
Indicates if the session automation record button is engaged.
Indicates that automation has been overridden, and is available to be re-enabled.
Indicates whether the metronome is enabled.
Indicates if Live is playing.
Indicates if Live is recording.
The current tempo value.
Response to a /syn
message to facilitate, e.g. for feedback in setting up the tablet-computer connection.
Update the "active" state of the Toggle Input interface button.
Number of detected control surfaces.
If the currently selected track has active input routing (i.e. has a value other than "None" selected under the "MIDI From" or "Audio From" dropdowns), then the input routing selection will be stored internally in the device and the track will be set to None
.
If the track input is currently set to None
, then if the prior input setting was stored it will be restored, otherwise the first input will be chosen.
This is useful when recording automation over existing MIDI clips, since the recording state of a MIDI/Instrument track cannot be disabled. Simply disable the input with this message, record your automation overdub, then re-enable the inputs when needed. The underlying MIDI clips will not be modified.
Sent out as part of the network startup sequence to detect network loops (e.g. the send and receive destination being the same). If /loop
is received, then network communication is halted until the host
or port
values are changed.
A request for an /ack
response to facilitate a UX feedback loop when configuring the connections.