Skip to content

OSC documentation (V1)

Philippe Chaurand edited this page Jun 15, 2022 · 5 revisions

📦   THIS DOCUMENTATION IS ONLY FOR MILLUMIN V1

OSC documentation for latest Millumin is available here.

OSC documentation for Millumin V3 is available here.

OSC documentation for Millumin V2 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 send or receive orders : for TouchOSC layouts, or to create an application that collaborates with Millumin.
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 : /millumin/layer/opacity/0 75 to set the opacity to 75%


Managing layer properties

Every OSC messages concerning the layers must suffix the index of the target layer :

  • 0 to target the selected layer
  • 1, 2, 3, ... to target the 1st, 2nd, 3rd, ... layer

Here are some examples :

  • To change the opacity of the selected layer to 75%
    /millumin/layer/opacity/0 75

  • To change the opacity of the 1st layer to 40%
    /millumin/layer/opacity/1 40

  • To change the position of the 2nd layer (x=350, y=-200)
    /millumin/layer/xy/2 -200 350

  • To change the X of the 2nd layer
    /millumin/layer/x/2 150

  • To change the Y of the 2nd layer
    /millumin/layer/y/2 150

  • To change the rotation of the 3rd layer to 90°
    /millumin/layer/rotation/3 90

  • To change the scale of the 4th layer to 50%
    /millumin/layer/scale/4 50


Use the address /millumin/layer/addX or /millumin/layer/addY to make subtle moves. Examples :

  • To move the 2nd layer of 1 pixel right
    /millumin/layer/addX/2 1

  • To move the 3rd layer of 1 pixel down /millumin/layer/addY/3 -1


You can also select a layer :

  • To select the 1st layer
    /millumin/layer/select/1 1
  • To deselect the 1st layer
    /millumin/layer/select/1 0
  • To select the layer named "background"
    /millumin/action/selectLayerWithName "background"

If the layer has effects, you can control the parameters :

  • /millumin/layer/effect1/param1/0 0.5
  • /millumin/layer/effect3/param5/0 120
  • /millumin/layer/effect4/enabled/0 0

Managing media

You can assign a media to a layer with the address /millumin/layer/media
Please note that the address always ends with the index of the target layer. Examples :

  • To assign the 2nd media to the 3rd layer
    /millumin/layer/media/2/3 1

  • To stop stop the 3rd layer
    /millumin/layer/media/0/3 1


You can control the time position with /millumin/layer/media/time, /millumin/layer/media/timeInSeconds or the speed with /millumin/layer/media/speed
Examples :

  • To set at the middle, the time position of the selected layer's media
    /millumin/layer/media/time/0 0.5

  • To set at 10 seconds, the time position of the selected layer's media
    /millumin/layer/media/timeInSeconds/0 10

  • To set at 50%, the speed of the selected layer's media
    /millumin/layer/media/speed/0 50


When changing the layer's media, Millumin is sending a message to tell the media duration, example :

  • The current layer has a duration of 5 seconds
    /millumin/layer/currentMediaDuration/0 5000

If the media is a text, you can go to previous or next line :

  • /millumin/layer/media/text/prevLine/0
  • /millumin/layer/media/text/nextLine/0

If the media is a Quartz patch, you can control the parameters :

  • /millumin/layer/media/quartz/param1/0 0.5
  • /millumin/layer/media/quartz/param7/0 120

Mapping

To set one of the 4 map points, use the address /millumin/layer/mapPoint and a couple of float values.
Please note that the address always ends with the index of the target layer. Examples :

  • To set the position of the 1st map point in the 4th layer
    /millumin/layer/mapPoint/0/4 -350 450

  • To set the position of the 4th map point in the selected layer
    /millumin/layer/mapPoint/3/0 -310 -220


Use the address /millumin/layer/mapPointAddX or /millumin/layer/mapPointAddY to make subtle moves. Examples :

  • To move the 2nd map point of 1 pixel right
    /millumin/layer/mapPointAddX/1/0 1

  • To move the 3rd map point of 1 pixel down
    /millumin/layer/mapPointAddY/2/0 -1

Boards & Compositions

When some specific events happen, Millumin send the following messages :

  • when a column is launched (the last part of the address is the index of the column)
    /millumin/board/columnLaunched/4

  • When a column is stopped
    /millumin/board/columnStopped/3

  • When a cue point is reached
    /millumin/composition/cue "cue1"

Actions

You can launch or stop a specific column :

  • /millumin/action/launchOrStopColumn 4
  • /millumin/action/launchColumn 3
  • /millumin/action/stopColumn 2
  • /millumin/action/launchOrStopColumnWithName "name"

You can launch the previous or next column :

  • /millumin/action/launchPrevColumn
  • /millumin/action/launchNextColumn

You can change the board :

  • /millumin/action/selectBoard 3

You can start/stop the composition :

  • /millumin/action/composition/start
  • /millumin/action/composition/stop
  • /millumin/action/composition/startOrStop

You can stop all the media via :

  • /millumin/action/stopAll

You can fade to black via :

  • /millumin/action/fadeToBlack

You can exit or enter fullscreen via :

  • /millumin/action/fullscreen 0
  • /millumin/action/fullscreen 1

You can open or save a project via :

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

You can quit Millumin via :

  • /millumin/action/quit

You can use the 'ping' message to receive several OSC messages, that describe the state for all the layers :

  • /millumin/ping

Summary

Do not forget to suffix every /millumin/layer/... message with the layer's index (or 0 for the selected layer).
Here is the list of OSC addresses available :

  • /millumin/layer/opacity
  • /millumin/layer/xy
  • /millumin/layer/x
  • /millumin/layer/y
  • /millumin/layer/rotation
  • /millumin/layer/scale
  • /millumin/layer/addX
  • /millumin/layer/addY
  • /millumin/layer/select
  • /millumin/layer/effect1/param1
  • /millumin/layer/media
  • /millumin/layer/media/time
  • /millumin/layer/media/speed
  • /millumin/layer/media/text/prevLine
  • /millumin/layer/media/text/nextLine
  • /millumin/layer/media/quartz/param1
  • /millumin/layer/currentMediaDuration
  • /millumin/layer/mapPoint
  • /millumin/layer/mapPointAddX
  • /millumin/layer/mapPointAddY
  • /millumin/board/columnLaunched
  • /millumin/board/columnStopped
  • /millumin/composition/cue
  • /millumin/action/launchOrStopColumn
  • /millumin/action/launchColumn
  • /millumin/action/stopColumn
  • /millumin/action/launchOrStopColumnWithName
  • /millumin/action/launchPrevColumn
  • /millumin/action/launchNextColumn
  • /millumin/action/selectBoard
  • /millumin/action/selectLayerWithName
  • /millumin/action/composition/start
  • /millumin/action/composition/stop
  • /millumin/action/composition/startOrStop
  • /millumin/action/stopAll
  • /millumin/action/fadeToBlack
  • /millumin/action/fullscreen
  • /millumin/action/openProject
  • /millumin/action/saveProject
  • /millumin/action/quit
  • /millumin/ping
Clone this wiki locally