Open Sound Control is a protocol that was originally developed for communication between synthesizers, musical instruments, and other multimedia devices but has transformed into a popular tool for interactive installations, particularly as an alternative for MIDI. Lightform devices can be controlled through OSC to create interactive experiences. The information and tables on this page include all the information you need to know when mapping OSC controls with other applications.
The first two things to know when working with OSC are the IP Address and Port.
- IP Address: This is the IP address of your Lightform device. You can find this by going to the Control page in Lightform Creator and it is listed as Hostname.
- Port: The port for all Lightform devices is 8000
To control a specific property such as switching to the next slide or increasing the speed of an effect, you need to know some information about it so you can control it by sending an OSC message from another application.
OSC Messages can consist of three parts:
- Address Pattern: an OSC-string beginning with the character '/' (forward slash)
- Type Tag: Lightform properties use the following type:
- f : float (a number that has a decimal place)
- Argument: The actual value you want to set, which is a number within a range
For example, to decrease the brightness of the projection to half, you would send the message: /brightness f 0.5
Please Note:
It is not currently possible to both playback a project and stream at the same time on LFC.
Example: Sending Commands through sendosc
sendosc is a command line tool for sending OSC messages. You can learn more about it here.
A sendosc command requires: sendosc + <IP address of your Lightform device> + 8000 (port info) + OSC message
For example, to switch to the next slide, the command will be:
sendosc 192.168.0.21 8000 /next
To increase the amount of noise in the Depth Trace effect on Slide 2, the command will be:
sendosc 192.168.0.21 8000 "/Slide 2/noise" f 1.0
Note: If your OSC address has spaces, you need to surround the path with quotes, like in the above example "/Slide 2/noise".
Global Controls
The following table includes information about Global properties that can be controlled through OSC.
Please Note:
Global properties can be controlled simply by sending a message with just the address pattern except for brightness and set slide, those require a type tag and argument as well.
Name |
OSC Message |
---|---|
next slide | /next |
pause | /pause |
play | /play |
previous slide | /prev |
brightness | /brightness f [0.0-1.0] |
set slide |
/slide f 0.0 (first slide) |
stop | /stop |
Effect & Generator Controls
The following table includes information about Effect and Generator parameters that can be controlled through OSC. The slide number will be part of the address path, for example, to change the zoom on Slide 2 will be '/Slide1/zoom'.
Please Note:
Slide numbering starts at 0 so the first slide just /Slide, second is /Slide1, third is /Slide2 etc.
Effect and Generator supported properties are of three types:
- 1D float (one float argument) = f 0.3
- 2D float (two float arguments) = f 0.5 f 0.7
- 4D float (four float arguments) = f 0.2 f 1.0 f 0.5 f 0.5
For example, the OSC message for changing the thickness on Slide 3 would be:
/Slide2/thickness f 0.8
1D Controls
Name | Category | Default Address Path | Type Tag | Argument Range | Default Argument |
---|---|---|---|---|---|
3d_wiggle | Effect | /WiggleIntensity | f | 0.0 - 1.0 | 0.66 |
bass_drop | Effect | /amplitude | f | 0.0 - 1.0 | 0.3 |
bass_drop | Effect | /zoom | f | 0.0 - 1.0 | 0.1 |
bass_drop | Effect | /blend | f | 0.1 - 1.0 | 0.0 |
bass_drop | Effect | /angle | f | 0.0 - 1.0 | 0.0 |
box_flip | Effect | /grid_size | f | 0.0 - 1.0 | 0.5 |
chroma | Generator | /speed | f | 0.0 - 1.0 | 1.0 |
chromatic | Effect | /strip | f | 0.0 - 1.0 | 0.5 |
chromatic | Effect | /glitchAmount | f | 0.0 - 1.0 | 0.5 |
circles | Generator | /zoom | f | 0.0 - 1.0 | 0.75 |
circles | Generator | /thickness | f | 0.0 - 1.0 | 0.5 |
circles | Generator | /threshold | f | 0.0 - 1.0 | 0.2 |
color_lines | Generator | /colorStrobeSpeed | f | 0.0 - 20.0 | 7.0 |
color_lines | Generator | /zoom | f | 0.0 - 1.0 | 0.5 |
color_lines | Generator | /lineWidth | f | 0.0 - 1.0 | 0.2 |
crystals | Generator | /zoom | f | 0.0 - 1.0 | 0.3 |
depth_trace | Effect | /noise | f | 0.0 - 1.0 | 0.5 |
directional_light | Effect | /diffuse | f | 0.0 - 1.0 | 1.0 |
directional_light | Effect | /specular | f | 0.0 - 1.0 | 0.2 |
directional_light | Effect | /shininess | f | 0.0 - 1.0 | 0.5 |
disasphere | Generator | /SphereSize | f | 0.0 - 1.0 | 0.2 |
disasphere | Generator | /LightXAngle | f | 0.0 - 1.0 | 0.5 |
disasphere | Generator | /LightYAngle | f | 0.0 - 1.0 | 1.0 |
disasphere | Generator | /LightZAngle | f | 0.0 - 1.0 | 1.0 |
fill | Effect | /angle | f | 0.0 - 1.0 | 0 |
fire | Generator | /count | f | 0.0 - 1.0 | 1.0 |
fire | Generator | /uniformity | f | 0.0 - 1.0 | 1.0 |
fire | Generator | /shape | f | 0.0 - 1.0 | 0.8 |
fire | Generator | /height | f | 0.0 - 1.0 | 1.0 |
fold | Effect | /speed | f | 0.0 - 1.0 | 0.3 |
fold | Effect | /oscillations | f | 0.0 - 1.0 | 0.1 |
fold | Effect | /start | f | 0.0 - 1.0 | 0.7 |
fold | Effect | /fold_shadow | f | 0.0 - 1.0 | 0.5 |
ganzfield | Effect | /colorBanding | f | 0.0 - 1.0 | 0.5 |
ganzfield | Effect | /hueCycle | f | 0.0 - 1.0 | 0.0 |
ganzfield | Effect | /rainbowGradientAmount | f | 0.0 - 1.0 | 0.33 |
glassy_lens | Effect | /sphereSize | f | 0.0 - 1.0 | 0.75 |
hue_picker | Effect | /hueRadius | f | 0.0 - 0.5 | 0.25 |
hue_picker | Effect | /saturationRadius | f | 0.0 - 0.5 | 0.25 |
hue_picker | Effect | /animation | f | 0.0 - 1.0 | 1.0 |
iridescent_edges | Effect | /Saturation | f | 0.0 - 1.0 | 0.75 |
iridescent_edges | Effect | /BandingDistortion | f | 0.0 - 1.0 | 1.0 |
iridescent_edges | Effect | /DrawThreshold | f | 0.0 - 1.0 | 0.1 |
iso_bands | Effect | /basisType | f | 0.0 - 1.0 | 0.5 |
iso_bands | Effect | /bands | f | 0.0 - 1.0 | 0.5 |
iso_bands | Effect | /isoValue | f | 0.0 - 1.0 | 0.5 |
iso_bands | Effect | /isoValueRadius | f | 0.0 - 1.0 | 0.5 |
iso_shading | Effect | /isoValue | f | 0.0 - 1.0 | 0.5 |
iso_shading | Effect | /isoValueRadius | f | 0.0 - 1.0 | 0.5 |
light_house | Effect | /edge_width | f | 0.0 - 1.0 | 0.5 |
light_house | Effect | /light_span | f | 0.0 - 1.0 | 0.3 |
light_house | Effect | /slope | f | 0.0 - 1.0 | 0.5 |
light_tunnel | Generator | /Palette | f | 0.0 - 1.0 | 0.4 |
light_tunnel | Generator | /lines | f | 1.0 - 1000.00 | 300.0 |
light_tunnel | Generator | /line_width | f | 1.0 - 10.0 | 1.0 |
looney_tunes | Effect | /ShadowMix | f | 1.0 - 10.0 | 0.3 |
looney_tunes | Effect | /numberOfStripes | f | 1.0 - 64.0 | 16.0 |
meshify | Effect | /GridSize | f | 0.0 - 1.0 | 0.5 |
meshify | Effect | /Amplification | f | 0.0 - 1.0 | 0.5 |
meshify | Effect | /LineThickness | f | 0.0 - 1.0 | 0.25 |
neon_loops | Effect | /LoopWiggle | f | 0.0 - 1.0 | 0.0 |
oil_sheen | Generator | /Banding | f | 0.0 - 1.0 | 0.4 |
oil_sheen | Generator | /Saturation | f | 0.0 - 1.0 | 0.4 |
palette_trip | Effect | /stripeBanding | f | 0.0 - 1.0 | 0.4 |
palette_trip | Effect | /LinesThreshold | f | 0.01 - 1.0 | 0.01 |
palette_trip | Effect | /GradientThreshold | f | 0.01 - 1.0 | 0.01 |
palette_trip | Effect | /LinesPalette | f | 0.0 - 1.0 | 1.0 |
palette_trip | Effect | /GradientPalette | f | 0.0 - 1.0 | 0.3 |
pixel_fade | Effect | /pixel_size | f | 0.0 - 1.0 | 0.5 |
pixellate | Effect | /pixel_size | f | 0.0 - 1.0 | 0.3 |
point_light | Effect | /lightDistanceOffSurface | f | 0.0 - 0.5 | 0.1 |
point_light | Effect | /animationRange | f | 0.0 - 1.0 | 0.5 |
rainbow_edges | Effect | /edgeWidth | f | 0.0 - 1.0 | 0.8 |
rainbow_tiles | Generator | /zoom | f | 0.0 - 1.0 | 0.5 |
ripple | Effect | /amplitude | f | 0.0 - 1.0 | 0.5 |
ripple | Effect | /range | f | 0.0 - 1.0 | 0.4 |
scan | Generator | /numPatterns | f | 1.0 - 12.0 | 8.0 |
scan | Generator | /progress | f | 0.0 - 1.0 | 0.0 |
sonar | Generator | /sharpness | f | 0.0 - 1.0 | 0.2 |
sonar | Generator | /spread | f | 0.0 - 1.0 | 0.75 |
sonar | Generator | /strength | f | 0.0 - 1.0 | 0.5 |
sonar | Generator | /beamMultiplier | f | 1.0 - 20.0 | 1.0 |
stripify | Effect | /DistortionAmplitude | f | 0.0 - 1.0 | 0.25 |
stripify | Effect | /LineDistance | f | 0.0 - 1.0 | 0.65 |
stripify | Effect | /Dispersion | f | 0.0 - 1.0 | 0.4 |
stripify | Effect | /LineWiggle | f | 0.0 - 1.0 | 0.0 |
sunrise_sunset | Generator | /Saturation | f | 0.0 - 1.0 | 0.25 |
swirl | Effect | /radius | f | 0.0 - 1.0 | 0.2 |
swirl | Effect | /angle | f | 0.0 - 1.0 | 0.5 |
swirl | Effect | /animation_speed | f | 0.0 - 1.0 | 0.5 |
swirl | Effect | /animation_radius | f | 0.0 - 1.0 | 0.1 |
tie_dye | Generator | /radiusIntensity | f | 0.0 - 1.0 | 0.05 |
tie_dye | Generator | /angleIntensity | f | 0.0 - 1.0 | 1.0 |
tie_dye | Generator | /spiralChoice | f | 0.0 - 1.0 | 0.7 |
traffic_jam | Effect | /edge_length | f | 0.0 - 1.0 | 1.0 |
traffic_jam | Effect | /edge_width | f | 0.0 - 1.0 | 1.0 |
traffic_jam | Effect | /stripeBanding | f | 0.0 - 1.0 | 0.25 |
traffic_jam | Effect | /dotBanding | f | 0.0 - 1.0 | 0.65 |
traffic_jam | Effect | /blending | f | 0.0 - 1.0 | 0.25 |
traffic_jam | Effect | /dotMovement | f | 0.0 - 1.0 | 0.75 |
traffic_jam | Effect | /stripeGrowth | f | 0.0 - 1.0 | 0.5 |
traffic_jam | Effect | /stripeTechnicolor | f | 0.0 - 1.0 | 0.0 |
traffic_jam | Effect | /dotTechnicolor | f | 0.0 - 1.0 | 0.0 |
tron | Effect | /edge_length | f | 0.0 - 1.0 | 0.5 |
tron | Effect | /edge_width | f | 0.0 - 1.0 | 0.5 |
tron | Effect | /secondaryColorBlend | f | 1.0 - 10.0 | 2.0 |
water | Generator | /sparkle | f | 0.01 - 1.0 | 0.6 |
2D Controls
Name | Category | Default Address Path | Type Tag | Argument Range | Default Argument |
---|---|---|---|---|---|
bass_drop | Effect | /center | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
chromatic | Effect | /direction | f | [0.0, 0.0] - [1.0, 1.0] | [0.6, 0.6] |
color_flood | Effect | /primaryColor | f | [0.0, 0.0] - [1.0, 1.0] | [0.6, 0.7] |
color_flood | Effect | /secondaryColor | f | [0.0, 0.0] - [1.0, 1.0] | [0.9, 0.8] |
color_lines | Generator | /center | f | 0.0 - 20.0 | 7.0 |
depth_trace | Effect | /direction | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
digital_fade | Effect | /primaryColor | f | [0.0, 0.0] - [1.0, 1.0] | [0.6, 0.7] |
digital_fade | Effect | /secondaryColor | f | [0.0, 0.0] - [1.0, 1.0] | [0.9, 0.8] |
directional_light | Effect | /lightDirection | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
directional_light | Effect | /viewerDirection | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
dissolve | Effect | /direction | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
ganzfield | Effect | /center | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
ghost_flash | Effect | /primaryColor | f | [0.0, 0.0] - [1.0, 1.0] | [0.0, 0.0] |
ghost_flash | Effect | /secondaryColor | f | [0.0, 0.0] - [1.0, 1.0] | [0.0, 0.5] |
glassy_lens | Effect | /position | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
gradient | Generator | /positionEnd | f | [0.0, 0.0] - [1.0, 1.0] | [0.7, 0.7] |
hue_picker | Effect | /hueSaturationPicker | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
iso_bands | Effect | /center | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
iso_shading | Effect | /lightDirection | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
light_house | Effect | /edge_color | f | [0.0, 0.0] - [1.0, 1.0] | [0.9, 0.8] |
light_tunnel | Generator | /Center | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.4] |
looney_tunes | Effect | /Center | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
oil_sheen | Generator | /position | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
point_light | Effect | /lightPosition | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
rainbow_edges | Effect | /hueSaturation | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 1.0] |
ripple | Effect | /center | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
sonar | Generator | /center | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
swirl | Effect | /center | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
tie_dye | Generator | /center | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 0.5] |
tron | Effect | /primary_color | f | [0.0, 0.0] - [1.0, 1.0] | [0.5, 1.0] |
tron | Effect | /secondary_color | f | [0.0, 0.0] - [1.0, 1.0] | [0.8, 1.0] |
4D Controls
Name | Category | Default Address Path | Type Tag | Argument Range | Default Argument |
---|---|---|---|---|---|
3d_wiggle | Effect | /StaticLineColor | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.2, 0.1, 0.8, 1.0 |
3d_wiggle | Effect | /WiggleLineColor | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.9, 0.3, 0.1, 1.0 |
gradient | Generator | /colorBegin | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 1.0, 0.0, 1.0, 1.0 |
gradient | Generator | /colorEnd | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.0, 1.0, 1.0, 1.0 |
hue_picker | Effect | /colorValue | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 1.0, 1.0, 1.0, 1.0 |
iridescent_edges | Effect | /PlasmaColor | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.92, 0.5, 0.05, 1.0 |
neon_loops | Effect | /LoopColor | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.2, 0.1, 0.4, 1.0 |
scan | Generator | /color1 | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 1.0, 1.0, 1.0, 1.0, |
scan | Generator | /color2 | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.0, 0.0, 0.0, 1.0, |
solid_color | Generator | /color | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.949, 0.788, 0.298, 1.0 |
sonar | Generator | /color | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 1.0, 1.0, 1.0, 1.0, |
sunrise_sunset | Generator | /SkyColor | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.3, 0.5, 1.0, 1.0 |
traffic_jam | Effect | /dotColor | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.0, 0.0, 1.0, 1.0 |
water | Generator | /backgroundColor | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.0, 0.35, 0.5, 1.0 |
water | Generator | /foregroundColor | f | [0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0] | 0.9, 0.9, 0.9, 1.0 |
3d_wiggle | Effect | /edge_length | f | 0.0 - 1.0 | 1.0 |
3d_wiggle | Effect | /edge_width | f | 0.0 - 1.0 | 1.0 |