30
OSC – Open Sound Control Protocol candidate for lighting application Frank Burghardt, Markus Minini 2010-Jan-23 www.DMXControl.org

OSC and DMXControl

Embed Size (px)

DESCRIPTION

This presentation discusses the use of OSC in Lighting Control.

Citation preview

Page 1: OSC and DMXControl

OSC – Open Sound Control Protocol

A candidate for lighting applications?

Frank Burghardt, Markus Minini2010-Jan-23

www.DMXControl.org

Page 2: OSC and DMXControl

www.DMXControl.de 20102

The OSC story – some examples(sound applications)

If you want the ultimate in external

control of Resolume, the Open Sound

Control (OSC) protocol is the answer.

OSC is becoming increasingly popular

and is used by programs like MAX/MSP,

VVVV and Reaktor (Native Instruments)

OSC can be seen as a successor of MIDI

and offers a much higher accuracy and

is more flexible because it can be sent

over a network including wifi. (Resolume

Manual)

Well, my wish has been granted, the latest AlgoScore supports OSC, and I'm a happy guy.

…most controllers have to

overcome a technical legacy,

namely MIDI. Because many

controllers can be connected

via USB, it is possible to use

protocols with higher

resolution, of course in

particular OSC.

OSC opens a new era in the field of real-time control and human-machine interfaces (Lumor Manual)

Page 3: OSC and DMXControl

www.DMXControl.de 20103

ContentWhat is OSC?

comparison of DMX, MIDI and OSC

popular uses of OSC

How OSC works?

example configurations

basic concepts: messages, addresses etc.

Where OSC is supported?

devices and tools supporting OSC

How to apply OSC in lighting?

discussion of OSC schemas for lighting control

Summary and live demo

Page 4: OSC and DMXControl

www.DMXControl.de 20104

What is OSC?

An alternative concept for:MIDI (focuses on sound))

MediaControl (focuses on video)

DMX (focuses on lighting control)

Sound synthesizer

Computer

other multimedia devices

IP

A protocol for communication between computers, sound synthesizers and other

multimedia devices

Page 5: OSC and DMXControl

www.DMXControl.de 20105

Comparison of MIDI, DMX and OSC

144 60 64 (MIDI Note-on)

/wii/ir/x 0.1503/play-note 15 0.9

MIDI DMX OSCname Musical Instruments

Digital InterfaceDigital Multiplex Open Sound Control

defined in 1983 1986-1990 2002-2004

protocol serial serial independent (e.g. UDP)

Speed/rate 31.25kB/sec 250 kbit/sec IP net depended

resolution 128 levels 256 levels arbitrary (e.g. float)extensions (IP) RFC4695 ArtNet Spec 2.0 in progress

comment predefined messages (byte code) derived from keyboard use

RDM improves functionality, but remains in low level concept

provides useful improvements, e.g. better resolution, standard network IF

Page 6: OSC and DMXControl

www.DMXControl.de 20106

What is Open Sound Control?A message oriented frame work,

but there are no predefined messages and features

-> flexible and open ... …benefit or drawback?

New properties:intuitive addressing schema, capability to schedule events in future variable data types

Works with embedded devices, PDA, iPhone, Wii, ... via internet.

OSC is not a physical transport mediumcan be based on arbitrary transport mediumOSI layer 6 “presentation”, uses mainly UDP

OSC doesn’t replace MIDI, due to missing automatic connect-and-play (or plug-and-play) concept

connected devices (via Ethernet, WLAN, Bluetooth etc) cannot scan each other and learn about each others capabilitiesA file format such as standard MIDI file for exchange of data does not exist

Page 7: OSC and DMXControl

www.DMXControl.de 20107

Popular uses of OSC

Sensor/Gesture-Based Electronic Musical InstrumentsMapping nonmusical data to soundMultiple-User Shared Musical ControlWeb interfacesNetworked LAN Musical PerformanceWAN performance and TelepresenceVirtual Reality, gamesWrapping Other Protocols inside OSC

Remote control: Transport of values from sliders, encoders, (drum) pads, fader wings and touch screen data for input

“command transfer” between tools Media control, VJing Table-top tangible user interfaces, see [TUIO]

from [1]

Control of light -> ??? -> missing!

Page 8: OSC and DMXControl

www.DMXControl.de 20108

OSC applications

see: [3]

Quintet.net

VJing

VirtualDJ

Page 9: OSC and DMXControl

www.DMXControl.de 20109

Configuration

Client ServerOSC packets via IP

Here the messagesare received

receives OSC messages from clientsexecutes methods, that are assigned to addresses

sends OSC messages to one or more serversaddress can contain wildcards one OSC message can trigger several methods on a server

data transfer in one direction (but OSC can be used in a bidirectional way)

packet can contain an OSC message or an OSC bundle packet includes info on the length of data as well as the data itself

Page 10: OSC and DMXControl

www.DMXControl.de 201010

Network concepts

Based on IP infra-structure and OSC routing mechanisms for message distribution

source: [2]

star architecture

mesh (decentralized)

OSC

Page 11: OSC and DMXControl

www.DMXControl.de 201011

Basics: messages, bundles, addresses

OSC address schema provides 3 important capabilities:

intuitive names for raised addresses,unrestricted number of name spaces,address areas within messages (incl. wildcards, patterns) are supported

addresses starts with /

often defined in hierarchical way (-> name space)can contain wildcardsrepresents one or several methods on a server

examples: /device/module/control-element

/fader/1/value

Page 12: OSC and DMXControl

www.DMXControl.de 201012

Leaves of tree aremethods on the server

/fader/1/1/fader/2/6/buttons/1/parsfront/buttons/2/parsback

examples for patterns:/fader/?/[1-3]/buttons/1/pars*

Other levels: container(-methods)Name space reflects object modelproper name space benefits for pattern matching

Basics: addresses

source: [1]

Page 13: OSC and DMXControl

www.DMXControl.de 201013

Basics: message

OSC message consists of:

OSC address

OSC type tag -> (integer, float, string ... [arrays])

-> data types of arguments

OSC arguments -> (values)

OSC arguments are optional

examples: /oscillator/4/frequency ,f 440 /layer1/clip2/video/effect ,ii 3 35 /track1/start

Page 14: OSC and DMXControl

www.DMXControl.de 201014

Basics: bundles

A Group of OSC messages, containing one or more OSC messages and a time tagOSC methods are called when the time tag is “reached” Hierarchical concept: bundle can contain other bundles

Processing of OSC messages occurs in sequence, as they are listed in the bundleBut quasi-simultaneous processing of messages in the bundle occurs

Open Sound Control Message:[ address type-tags (i,f,s,b) arguments . . . ]

Open Sound Control Bundle:[ “#bundle” timestamp integer-length packet-1 packet-2 . . . ]

Page 15: OSC and DMXControl

www.DMXControl.de 201015

Examples of OSC router

junXion © (Mac OS) is a software tool, processing data from USB devices (joysticks, touchscreens, mouse), MIDI / OSC messages, audio inputs, WiiRemote controllers, Arduino sensor boards and video image tracking. Output data (MIDI or OSC) can be routed to other MIDI/OSC controllers (SW or

HW).

OSCulator

GlovePie

Page 16: OSC and DMXControl

www.DMXControl.de 201016

Devices and applications with OSC

Audio-/video area:

Reaktor, MAX/MSP

Mirage, MADJack, Resolume

Traktor, Ableton, VirtualDJ

MXWendler, Ventuz, VVVV, VDMX

Hardware:Make Controller Kit, Monome, KISS Box

WiSE Box, uOSC

Lemur

Page 17: OSC and DMXControl

www.DMXControl.de 201017

OSC based (remote-)controler

Lemur

iPhone with OSC applications

Page 18: OSC and DMXControl

www.DMXControl.de 201018

OSC software tools

OSC Monitors:

http://www.frieder-weiss.de/OSC/index.html

http://sourceforge.net/projects/braun/

iPhone clients:

http://poly.share.dj/projects/#mrmr

http://hexler.net/software/touchosc

Other clients:Mouse2OSC

Development packages:Processing: osp5, Python: SimpleOSC

C# : Bespoke OSC, Open Sound Control for .NET (http://luvtechno.net)

C/C++: oscpack, OCS-Kit, etc.

Java: JavaOSC, NetUtil, etc.

Page 19: OSC and DMXControl

www.DMXControl.de 201019

Name space for lighting control

intended use to be clarified!definition of name space is required!

3 variants for discussion

elementary (DMX level) conceptcontrol oriented conceptabstract fixtures concept

Attention: concepts are intended as a software interface for controllers, not for input signaling of DMX fixtures! (OSC within lighting fixtures will need some more time, but would be possible.)

Page 20: OSC and DMXControl

www.DMXControl.de 201020

Examples for schemas

Typical OSC control elements:objects: deck, mixer, track, layer, composition, device, playlist, fader, rotary, button

parameters: value, direction, speed, mode, volume, position, pan, scale, rotate, opacity, size

operations: select, clear, solo, connect

• Hierarchical name space (vs. flat name space)address for volume of layer 1:

/layer1/audio/volume/values

first video effect of clip 2 in layer 1:/layer1/clip2/video/effect1

instruction, that the system sends a status update every 500 ms:/constraint/motor/force/magnitude/get 500

Page 21: OSC and DMXControl

www.DMXControl.de 201021

OSC name space for Lighting (1)- elementary level (DMX level) -

example OSC name space for OSC - MIDI mapping:/midi/out/noteOn [channel] [key] [velocity]/midi/out/noteOff [channel] [key] [velocity]

for DMX, the following name space on elementary level is conceivable, see [2]:

/dmx/out ,ii [chn] [val] - set channel [chn] to value [val] /dmx/in ,ii [chn] [val]

or:

/dmx/set ,ii  [chn] [val] - set channel [chn] to value [val] /dmx/fade ,iif  [chn] [val] [s] - fade channel [chn] to value [val] with

a period of [s] seconds

Disadvantage: too little abstraction “only” alternative representation for DMX-IN restricted use of OSC routing features

Page 22: OSC and DMXControl

www.DMXControl.de 201022

OSC name space for Lighting (2)- control oriented concept-

Definition on the level of remote controls:

– /dmxc/submaster/<number>/value– /dmxc/button/<number>/value– /dmxc/fader/<number>/value

generic concept, from the view of a remote controller (such as iPhone touchOSC)

server (DMX controller) is responsible for mapping to control logic

Disadvantage:

Clients are “stupid” -> “Faderwings”, no intelligence

Page 23: OSC and DMXControl

www.DMXControl.de 201023

OSC name space for Lighting (3)- abstract fixtures concept -

Definition on the level of HAL (“Hardware Abstraction Layer”):

/dmxc/group/devices/beam/“property“ groups: Moving Lights, Dimmer, Switch, <own groups> beam: fixtures can provide multiple beams properties: color, position, gobo, intensity

example: /dmxc/MovLights/*/beam?/color blue sets all Moving Lights to color “blue”

• Advantage:

– clients are able to take over intelligent tasks – good interworking by several components in distributed

control– DMX controller cares for mapping of logical view to

physical view (DMX values) and acts as OSC router for media control etc.

Page 24: OSC and DMXControl

www.DMXControl.de 201024

Extract of Lighting name space

/dmxc

/commands/cuelists/groups

/PARs/MovLights/<fixtures> /freeze/dmxin/select /start

/beam1

/<property> /color /gobo/position

/controls

/fader /button

/...

/... /.../...

abstract fixtures

concept

control oriented concept

elementary (DMX level) concept

Page 25: OSC and DMXControl

www.DMXControl.de 201025

SummaryUse of OSC in Lighting Control:

interesting alternative concept for remote control (OSC capable devices / input devices)

can be used in similar way as MIDI is applied today

OSC will not replace MIDI, but complement it, see [4]

promising concept for distributed control concepts

very helpful for multimedia interaction, if DMX controller works as OSC client

Problems from today’s point of view:

reliability (UDP/TCP), jitter and missing plug & play behavior

no standardized OSC name schema for control of DMX fixtures

Proposal:

start initiative for OSC name space for lighting control

Who joins?

Page 26: OSC and DMXControl

www.DMXControl.de 201026

Live demo

OSC-Apps (iPhone) WiiMote (via vvvv) Mouse2OSC (Windows)

Receiver is DMXControl with

OSC receiver plugin

vvvv

bluetooth

Page 27: OSC and DMXControl

www.DMXControl.de 201027

links / sources

[1] http://opensoundcontrol.org/[2] http://users.informatik.haw-hamburg.de/~ubicomp/arbeiten/diplom/sukale.pdf [3] http://www.slideshare.net/GamerSize/open-sound-control-as-middleware-for-games-accessibility-and-bodymovement-controlled-gaming[4] http://www.midi.org/aboutmidi/midi-osc.php[5] http://www.linuxjournal.com/content/introduction-osc[6] http://www.steim.org/steim/junxion_v4.htm

Page 28: OSC and DMXControl

www.DMXControl.de 201028

Questions ?

www.DMXControl.org

Please send questions, comments and contributions toinfo [at] dmxcontrol.org

Page 29: OSC and DMXControl

www.DMXControl.de 201029

Appendix: address patterns

Pattern Syntax:* – matches zero or more characters

? – matches any single character

[characters] – matches characters

Minus, e.g. [1-3] matches range of characters

Leading !, e.g. [!0-9] negates the match

{string1,string2,string3} – match a string in list

If more than one destination matches address pattern:Send copy of message arguments to each node

Fanout to unknown destinations

For example: control all “voices” with volume pedal

Page 30: OSC and DMXControl

www.DMXControl.de 201030

Appendix: acknowledgments

Thanks for support, contribution or encouragement:- Arne L., Mark A., kuni, Fabian E., Julian M., Matthias

D., - …- …- …- (will hopefully continued)