Upload
frank-burghardt
View
5.525
Download
6
Embed Size (px)
DESCRIPTION
This presentation discusses the use of OSC in Lighting Control.
Citation preview
OSC – Open Sound Control Protocol
A candidate for lighting applications?
Frank Burghardt, Markus Minini2010-Jan-23
www.DMXControl.org
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)
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
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
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
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
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!
www.DMXControl.de 20108
OSC applications
see: [3]
Quintet.net
VJing
VirtualDJ
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
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
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
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]
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
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 . . . ]
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
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
www.DMXControl.de 201017
OSC based (remote-)controler
Lemur
iPhone with OSC applications
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.
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.)
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
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
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
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.
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
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?
www.DMXControl.de 201026
Live demo
OSC-Apps (iPhone) WiiMote (via vvvv) Mouse2OSC (Windows)
Receiver is DMXControl with
OSC receiver plugin
vvvv
bluetooth
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
www.DMXControl.de 201028
Questions ?
www.DMXControl.org
Please send questions, comments and contributions toinfo [at] dmxcontrol.org
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
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)