OSC documentation

Joe edited this page Apr 25, 2018 · 33 revisions

(OSC documentation for Millumin V1 is available here)

OSC is a communication protocol that works over the network. It is easy-to-read and very versatile.
Millumin uses OSC messages to receive orders : for TouchOSC layouts, or to create an application that collaborates with Millumin. It also sends messages (see feedback section). Creating an OSC message is simple, please refer to the Developer-Kit to get examples in many technologies.

In brief, an OSC message has 2 parts : the /address and the [arguments].
Example to set the opacity to 75%, of the layer named "test" :

/millumin/test/opacity [0.75]


This protocol is supported by several application on computers or mobile devices.
For example, on TouchOSC : see this tutorial
Here is a direct link to download the templates for TouchOSC



You can launch or stop a specific column :

  • /millumin/action/launchOrStopColumn [index or "name"]
  • /millumin/action/launchColumn [index or "name"]
  • /millumin/action/stopColumn

For example :

  • /millumin/action/launchColumn [11] to launch the 11th column
  • /millumin/action/launchColumn ["test"] to launch the column named "test"

To launch the previous or next column :

  • /millumin/action/launchPreviousColumn
  • /millumin/action/launchNextColumn

To play/pause the timeline that you are editing :

  • /millumin/action/playTimeline
  • /millumin/action/pauseTimeline
  • /millumin/action/playOrPauseTimeline
  • /millumin/action/goToTimelineSegment ["name"]

To select a board :

  • /millumin/action/selectBoard [index or "name"]

To select an element :

  • /millumin/action/selectLayer [index or "name"]
  • /millumin/action/selectLight [index or "name"]

To enter/exit fullscreen :

  • /millumin/action/enterFullscreen
  • /millumin/action/exitFullscreen

To open/save a project :

  • /millumin/action/openProject ["/path/to/my/project.millumin"]
  • /millumin/action/saveProject
  • /millumin/action/saveProject ["/path/to/my/project.millumin"]

You can quit Millumin via :

  • /millumin/action/quit

To send a 'ping', so Millumin returns multiple OSC messages, that describe the state for all the layers :

  • /millumin/ping

Managing Elements

To manage an element (layer, light, ...), your OSC address must identify it. You have different alternative, depending on how you manage your elements :

  • /millumin/myElementName/... to target the element named "myElementName"
  • /millumin/layer:myLayerName/... to target the layer named "myLayerName"
  • /millumin/light:myLightName/... to target the light named "myLightName"
  • /millumin/index:99/... to target the element at index 99 (see Preferences to display the indexes)
  • /millumin/selectedLayer/... to target the selected layer in the interface (in orange)
  • /millumin/selectedLight/... to target the selected light in the interface (in orange)

OSC messages are case insensitive ("selectedLayer" is the same as "selectedlayer")

Here are the properties that can be used for layers :

  • /millumin/selectedLayer/opacity [0.75] to update opacity at 75%
  • /millumin/selectedLayer/position/xy [12,21] to move at [12,21] (short form is /selectedLayer/xy)
  • /millumin/selectedLayer/position/x [12] to move on X at 12px (short form is /selectedLayer/x)
  • /millumin/selectedLayer/position/y [21] to move on Y at 21px (short form is /selectedLayer/y)
  • /millumin/selectedLayer/rotation [90] to rotate at 90°
  • /millumin/selectedLayer/scale [0.5] to scale at 50%

To move mapping corners :

  • /millumin/selectedLayer/mapping/topLeft [12,21] to move corner at [12,21]
  • /millumin/selectedLayer/mapping/topLeft/x [12] to move corner on X at 12px
  • /millumin/selectedLayer/mapping/topLeft/y [21] to move corner on Y at 21px
  • /millumin/selectedLayer/mapping/topRight [12,21]
  • /millumin/selectedLayer/mapping/bottomRight [12,21]
  • /millumin/selectedLayer/mapping/bottomLeft [12,21]

To change an effect parameter (the effect is identified by its index) :

  • /millumin/selectedLayer/effect1/red [0.1] to change 'red' parameter of first effect
  • /millumin/selectedLayer/effect3/blue [0.1] to change 'blue' parameter of third effect

To change the intensity of a light :

  • /millumin/selectedLight/intensity [0.8] to update intensity at 80%

To work relatively (add a number to a value), use the suffix /+ or /- :

  • /millumin/selectedLayer/position/x/+ [10] to make a subtle move on X by 10px
  • /millumin/selectedLayer/scale/- [0.01] to lower the scale of 1%

To select a layer through a property-mecanism :

  • /millumin/layer:myLayerName/selected [1] to select layer named "myLayerName"
  • /millumin/layer:myLayerName/selected [0] to deselect layer named "myLayerName"

Managing media

Media can be targeted directly by their name, or by identifying the layer first :

  • /millumin/Movie.mov/... to target the media named "Movie.mov"
  • /millumin/selectedLayer/media/... to target current media of selected layer

Here are the properties that can be used with movies :

  • /millumin/Movie.mov/time [10] to move playhead at 10 seconds
  • /millumin/selectedLayer/media/time [10] to move playhead at 10 seconds
  • /millumin/selectedLayer/media/normalizedTime [0.5] to move playhead in the middle of the movie
  • /millumin/selectedLayer/media/speed [0.5] to change speed to 50%

To update Quartz patch inputs :

  • /millumin/selectedLayer/media/myQuartzInput [0.5] to update Quartz input named "myQuartzInput" to 0.5

To start/pause/stop a media :

  • /millumin/selectedLayer/startMedia to restart current media
  • /millumin/selectedLayer/startMedia [7] to start media at 7th column
  • /millumin/selectedLayer/startMedia ["Movie.mov"] to start media named "Movie.mov"
  • /millumin/selectedLayer/pauseMedia to pause current media
  • /millumin/selectedLayer/startOrPauseMedia to start/pause current media
  • /millumin/selectedLayer/stopMedia to stop current media


Millumin sends OSC messages, so third-party application can catch them. Be sure it is activated : open the Device manager (CMD+K), then select the "OSC" tab, and check that feedback is switched on in "Millumin API".

When a column is launched/stopped, Millumin sends :

  • /millumin/board/launchedColumn [index,"name"] (last argument is absent if column has no name)
  • /millumin/board/stoppedColumn [index,"name"] (last argument is absent if the column has no name)

When a media is started/paused/stopped, Millumin sends :

  • /millumin/layer:myLayer/mediaStarted [index,"name",duration] (last argument is absent if media has no duration)
  • /millumin/index:99/mediaStarted [index,"name",duration] (last argument is absent if media has no duration)
  • /millumin/layer:myLayer/mediaPaused [index,"name"]
  • /millumin/index:99/mediaPaused [index,"name"]
  • /millumin/layer:myLayer/mediaStopped [index,"name"]
  • /millumin/index:99/mediaStopped [index,"name"]

Following properties are tracked : opacity, xy, rotation, scale, mapping/topLeft, mapping/topRight, mapping/bottomRight, mapping/bottomLeft, intensity So when a property is updated, Millumin sends :

  • /millumin/layer:myLayerName/opacity [0.8] to notify that opacity was updated to 80%
  • /millumin/index:99/... [value]
  • /millumin/light:myLightName/intensity [0.5] to notify that intensity was updated to 50%

Specifically for media :

  • /millumin/selectedLayer/media/time [value,duration]
  • /millumin/selectedLayer/media/normalizedTime[value]`
  • /millumin/selectedLayer/media/speed[value]`

When selection is changed, Millumin sends :

  • /millumin/layer:myLayerName/selected to notify that layer named "myLayerName" was selected
  • /millumin/light:myLightName/selected to notify that light named "myLightName" was selected
  • /millumin/index:99/selected to notify that element at index 99 was selected

Via the suffix /?, you can ask Millumin to send you feeback about a specific property :

  • /millumin/myElementName/opacity/? to ask about opacity for the element named "myElementName"
  • /layer:myLayerName/position/? to ask about position for the layer named "myLayerName"
  • /light:myLightName/intensity/? to ask about rotation for the light named "myLightName"
  • /index:99/scale/? to ask about scale for the element at index 99
  • /selectedLayer/mapping/topLeft/? to ask about top-left corner for the selected layer
  • /selectedLight/intensity/? to ask about intensity for the selected light


Addresses :

  • /millumin/action/launchOrStopColumn
  • /millumin/action/launchColumn
  • /millumin/action/stopColumn
  • /millumin/action/launchPrevColumn
  • /millumin/action/launchNextColumn
  • /millumin/action/playTimeline
  • /millumin/action/pauseTimeline
  • /millumin/action/playOrPauseTimeline
  • /millumin/action/goToTimelineSegment
  • /millumin/action/selectBoard
  • /millumin/action/selectLayer
  • /millumin/action/selectLight
  • /millumin/action/enterFullscreen
  • /millumin/action/exitFullscreen
  • /millumin/action/openProject
  • /millumin/action/saveProject
  • /millumin/action/quit
  • /millumin/ping
  • /millumin/myElementName/opacity
  • /millumin/layer:myLayerName/position
  • /millumin/light:myLightName/intensity
  • /millumin/index:99/rotation
  • /millumin/selectedLayer/scale
  • /millumin/selectedLight/intensity
  • /millumin/selectedLayer/mapping/topLeft
  • /millumin/selectedLayer/mapping/topRight
  • /millumin/selectedLayer/mapping/bottomRight
  • /millumin/selectedLayer/mapping/bottomLeft
  • /millumin/selectedLayer/effect1/myParameterName
  • /millumin/layer:myLayerName/selected
  • /millumin/MyMedia.mov/time
  • /millumin/selectedLayer/media/time
  • /millumin/selectedLayer/media/normalizedTime
  • /millumin/selectedLayer/media/speed
  • /millumin/selectedLayer/media/myQuartzInput
  • /millumin/selectedLayer/startMedia
  • /millumin/selectedLayer/pauseMedia
  • /millumin/selectedLayer/startOrPauseMedia
  • /millumin/selectedLayer/stopMedia
  • /millumin/board/columnLaunched
  • /millumin/board/columnStopped
  • /millumin/selectedLayer/mediaStarted
  • /millumin/selectedLayer/mediaPaused
  • /millumin/selectedLayer/mediaStopped

Suffixes :

  • /+
  • /?

Discontinued addresses (available in Millumin V1) :

  • /millumin/layer/...
  • /millumin/layer/addX
  • /millumin/layer/addY
  • /millumin/layer/mapPoint
  • /millumin/layer/mapPointAddX
  • /millumin/layer/mapPointAddY
  • /millumin/layer/media
  • /millumin/layer/media/text/prevLine
  • /millumin/layer/media/text/nextLine
  • /millumin/layer/media/quartz/param1
  • /millumin/layer/select
  • /millumin/layer/currentMediaDuration
  • /millumin/action/launchOrStopColumnWithName
  • /millumin/action/composition/start
  • /millumin/action/composition/stop
  • /millumin/action/composition/startOrStop
  • /millumin/action/fullscreen
  • /millumin/action/stopAll
  • /millumin/action/selectLayerWithName
  • /millumin/action/fadeToBlack
  • /millumin/composition/cue
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.