DMX lighting effects background

Open Sound Control (OSC)

Senden Sie Befehle an DMXDesktop und empfangen Sie Statusübertragungen über OSC

Was ist OSC?

Open Sound Control (OSC) ist ein offenes, transportunabhängiges, nachrichtenbasiertes Protokoll zur Kommunikation zwischen Computern, Klangsynthetisierern, Lichtsoftware und anderen Multimedia-Geräten. Es wurde von Matt Wright und Adrian Freed am CNMAT, University of California, Berkeley, entwickelt, und die Version 1.0 wurde im März 2002 veröffentlicht. DMXDesktop implementiert OSC in beide Richtungen: Es empfängt Befehle von externen Controllern und sendet Statusänderungen an andere Anwendungen.

Während DMX512 einen festen Stream nummerierter Slots sendet, sendet OSC benannte Nachrichten. Das ist der ganze Unterschied in einem Satz. Eine OSC-Nachricht besteht aus drei Teilen:

  • Ein Adressmuster, eine Textzeichenfolge, die mit einem Schrägstrich beginnt und wie ein URL-Pfad aussieht, zum Beispiel /master/dimmer.
  • Eine Typ-Tag-Zeichenfolge, ein Komma gefolgt von einem Buchstaben pro Argument. Jede OSC-Implementierung unterstützt i (32-Bit-Ganzzahl), f (32-Bit-Gleitkommazahl), s (Zeichenfolge) und b (binärer Blob).
  • Die Argumente selbst, in der Reihenfolge, die die Typ-Tags deklarieren. Alle Zahlen sind big-endian und jeder Wert wird auf ein Vielfaches von 32 Bit aufgefüllt.

Zwei Dinge überraschen Menschen, die von MIDI oder DMX kommen. Erstens, OSC hat keine offizielle Portnummer. Die Spezifikation ist absichtlich transportunabhängig und weist keine zu, und es gibt auch keinen registrierten OSC-Port bei IANA, sodass jede Anwendung ihren eigenen wählt und du ihn an beiden Enden einstellst. DMXDesktop hört standardmäßig auf Port 8000 und sendet Ausgaben an Port 9000.

Zweitens unterstützen OSC-Adressmuster Platzhalter, sodass eine Nachricht mehrere Ziele gleichzeitig erreichen kann: ? entspricht einem beliebigen einzelnen Zeichen, * entspricht einer beliebigen Zeichenfolge, [abc] entspricht einem beliebigen Zeichen in einer Menge, und {foo,bar} entspricht einer beliebigen Zeichenfolge in einer Liste.

OSC hat auch Bundles: mehrere Nachrichten, die mit einem 64-Bit-Zeitstempel im NTP-Format gruppiert sind, sodass ein Empfänger sie als eine atomare Gruppe anwendet, entweder sofort oder zu einem geplanten Zeitpunkt. OSC trägt den Zeitstempel, synchronisiert jedoch die Uhren nicht selbst, sodass beide Maschinen ihre eigene korrekte Zeit benötigen.

Ein Hinweis zu den Versionen, da es die Leute verwirrt: OSC 1.1 existiert, aber es gibt kein Spezifikationsdokument für 1.1. Seine Autoren veröffentlichten stattdessen ein Papier für NIME 2009 und ließen es als Referenz stehen. OSC 1.1 behält das 1.0-Nachrichtenformat bei, fördert mehrere optionale Typen wie True, False, Null und Impulse zu erforderlichen und fügt das // Mehrfachplatzhalter hinzu. Nachrichten, die für 1.0 geschrieben wurden, funktionieren weiterhin mit 1.1-Empfängern.

So funktioniert es

DMXDesktop unterstützt sowohl OSC-Eingang als auch -Ausgang. Der OSC Input Server lauscht auf eingehende Nachrichten, um verschiedene Aspekte der Software zu steuern. OSC Output überträgt Statusänderungen und Ereignisse an externe Anwendungen, was eine Echtzeitsynchronisation mit Videosoftware, Visualisierern und benutzerdefinierten Integrationen ermöglicht. Beide unterstützen das UDP-Protokoll für eine latenzarme Kommunikation.

Erste Schritte

  1. Öffnen Sie DMXDesktop und navigieren Sie zu Einstellungen → Allgemein
  2. Im OSC-Bereich finden Sie:
    • Aktivieren/Deaktivieren des OSC Input-Buttons
    • Auswahl der Netzwerk-Schnittstelle
    • Portnummer für den Eingang (Standard: 8000)
    • Protokollauswahl (UDP/TCP)
    • Aktivieren/Deaktivieren des OSC Output-Buttons
    • Ausgabe-Host und Port (Standard: 127.0.0.1:9000)
  3. Der Entdeckungsdienst läuft auf Port 9000 und ermöglicht es kompatiblen Apps, DMXDesktop automatisch im Netzwerk zu finden

Verbindung mit TouchOSC

TouchOSC ist ein beliebtes Tool zur Steuerung einer Vielzahl von Anwendungen und kann verwendet werden, um DMXDesktop über das OSC-Protokoll zu steuern.

Bitte beachten Sie: TouchOSC ist kostenpflichtige Software, bitte besuchen Sie die offizielle Website für Details.

  1. Laden Sie TouchOSC auf Ihr Gerät herunter und installieren Sie es:
  2. Öffnen Sie TouchOSC und erstellen Sie eine neue Verbindung:
    • Protokoll: OSC
    • Host: Die IP-Adresse Ihres Computers (angezeigt in den DMXDesktop-Einstellungen)
    • Sendepot: 8000 (Standard)
    • Empfangsport: 9000 (für den Entdeckungsdienst)
  3. Verwenden Sie die Entdeckungsfunktion in TouchOSC, um DMXDesktop automatisch in Ihrem Netzwerk zu finden
  4. Erstellen Sie Ihr Layout mit den OSC-Pfaden, die in der Tabelle unten aufgeführt sind

Netzwerktipps

  • Stellen Sie sicher, dass Ihr Gerät und Computer im selben Netzwerk sind
  • Wenn Sie eine Firewall verwenden, erlauben Sie eingehende Verbindungen auf den Ports 8000 und 9000
  • Für optimale Leistung verwenden Sie ein dediziertes Netzwerk oder eine 5GHz-WLAN-Verbindung
  • Für OSC Output konfigurieren Sie die Ziel-Host-IP und den Port in den Einstellungen

Zusätzliche Ressourcen

OSC Eingabebefehle

Sendet diese Befehle an DMXDesktop, um eure Beleuchtung zu steuern. Alle Pfade sind groß-/kleinschreibungsempfindlich.

Hinweis: OSC Input erfordert ein kostenpflichtiges Abonnement und muss in den Einstellungen aktiviert werden. Der Standard-Eingangsport ist 8000.

OSC PfadParameterBeschreibung
MASTER STEUERUNGEN
/master/dimmerfloat (0-1)Steuert die Intensität des Master-Dimmers
LEBENDE EFFEKTE
/live/strobe/{on|off|pulse}keineSteuert den Zustand des Stroboskoplichts
/live/blackout/{on|off|pulse}keineSteuert den Zustand des Blackouts
/live/blinder/{on|off|pulse}keineSteuert den Zustand des Blinders
/live/freeze/{on|off|pulse}keineSteuert den Zustand des Freeze
/live/fog/{on|off|pulse}keineSteuert den Zustand der Nebelmaschine
SPEZIAL EFFEKTE
/effects/{effect}/startkeineStartet den angegebenen Effekt (Welle, Paparazzi, Farbenwechsel, Donner, Puls, Funkeln, Zufall)
/effects/{effect}/stopkeineStoppt den angegebenen Spezialeffekt
/effects/stopkeineStoppt alle aktuell laufenden Spezialeffekte
/effects/bpmfloat (0-1)Setzt BPM für die Zeitsteuerung der Spezialeffekte (ordnet 0-1 auf 60-200 BPM zu)
LIVE BEARBEITUNGEN
/live/edit/{action}/{name}action: enable|disable|toggleSteuert den Zustand der Live-Bearbeitung nach Name
/live/edit/group/{action}/{name}action: enable|disable|toggleSteuert den Zustand der Live-Bearbeitungsgruppe nach Name
/live/edit/disable-allkeineDeaktiviert alle Live-Bearbeitungen
CUE STEUERUNGEN
/cue/effect/play/{name}stringSpielt den spezifischen Effekt-Cue nach Name
/cue/effect/{action}play|stop|next|prevSteuert die Wiedergabenavigation des Effekt-Cues
DJ STEUERUNGEN
/dj/app/{app}musicplayer|virtualdj|traktorWechselt die spezifische DJ-Anwendung
/dj/deck{1|2}/{action}play|stop|ejectDeck-Transportsteuerungen
/dj/deck{1|2}/volumefloat (0-1)Steuert die Deck-Lautstärke
/dj/crossfaderfloat (0-1)Steuert die Position des Crossfaders
DIREKTE DMX STEUERUNG
/dmx/{universe}/{channel}float (0-1)Setzt den DMX-Kanalwert (ordnet 0-1 auf 0-255 zu)
/dmx/{universe}/{channel}/clearkeineLöscht die DMX-Kanal-Übersteuerung
/dmx/clearkeineLöscht ALLE DMX-Kanal-Übersteuerungen
STACK STEUERUNGEN
/stack/{id}/gokeineFeuert den nächsten Cue im angegebenen Stack
/stack/{id}/backkeineGeht zurück zum vorherigen Cue
/stack/{id}/haltkeineStoppt den aktuellen Crossfade mitten im Übergang
/stack/{id}/stopkeineStoppt die Wiedergabe im angegebenen Stack
/stack/{id}/levelfloat (0-1)Setzt die Master-Ebene des Stacks
EXECUTE GRID
/execute/{row}/{col}keineAuslösen des Execute-Grid-Buttons an der angegebenen Position

Live Wire und Tempo-Befehle

Der Live Wire-Modus, Live Wire Hold und die Halb- und Doppeltempo-Steuerungen können alle über OSC gesteuert werden. Live Wire ist eine Standard- und Pro-Funktion. Verfügbar ab v1.0.52

OSC-PfadParameterBeschreibung
Live Wire
/livewire/mode/{band|dj|ambient}keineWechselt Live Wire in diesen Modus und startet Live Wire, wenn es nicht bereits die laufende Audio-App ist
/livewire/hold/{on|off|toggle}keineHält Live Wire im Standby-Look des Modus oder gibt es zurück zum Hören. Wird abgelehnt, wenn der laufende Modus keinen Standby-Look hat, den man halten kann
TEMPO
/live/tempo/{half|double|normal}keineFührt die Anlage mit halber oder doppelter Geschwindigkeit aus oder gibt sie auf normal zurück. Halb und doppelt sind festgelegt, sodass das erneute Senden des gleichen Befehls auf normal zurückkehrt

Eine Tempoeinstellung, überall. Halb- und Doppeltempo ist eine einzelne Einstellung, die das Pult, MIDI-Pads, OSC und die mobile Fernbedienung alle lesen und schreiben, sodass sie sich nicht über die Geschwindigkeit, mit der die Anlage läuft, uneinig sein können.

OSC kann Audio, von dem eine laufende Funktion abhängt, nicht mehr stummschalten. Live Wire benötigt eine Live-Audioaufnahme und BPM-Erkennung, und eine OSC-Nachricht konnte zuvor entweder beides darunter ausschalten, sodass es aktiviert, aber taub blieb. Diese Nachrichten werden jetzt abgelehnt, solange eine laufende Funktion von ihnen abhängt.

OSC-Ausgabemeldungen

DMXDesktop überträgt Status und Ereignisse an externe Anwendungen über OSC. Konfigurieren Sie den Zielhost und den Port in den Einstellungen. Verfügbar ab v1.0.46

Live-Kontrollen

/dmxdesktop/v1/master float 0-1 (0-100%)
/dmxdesktop/v1/blackout int 0|1
/dmxdesktop/v1/strobe int 0|1
/dmxdesktop/v1/blinder int 0|1
/dmxdesktop/v1/freeze int 0|1
/dmxdesktop/v1/fog int 0|1
/dmxdesktop/v1/effect int 0|1
/dmxdesktop/v1/specialeffect/{name} int 0|1 (wave, thunder, etc.)

Audio & BPM

/dmxdesktop/v1/bpm float (BPM-Wert)
/dmxdesktop/v1/beat float, int, int, float (bpm, ts_high, ts_low, confidence)
/dmxdesktop/v1/audio/level float 0-1 (RMS-Level)
/dmxdesktop/v1/audio/energy float 0-1 (Energielevel)

Effect Cues

/dmxdesktop/v1/cue/active string (Cue-Name oder "")
/dmxdesktop/v1/cue/name string (aktueller Cue)
/dmxdesktop/v1/cue/action string (play|stop)
/dmxdesktop/v1/cue/lifecycle string (fadeIn/OutStarted/Finished)
/dmxdesktop/v1/cue/lifecycle/duration int (ms)
/dmxdesktop/v1/cue/lifecycle/newCue string (nächster Cue-Name)

Cue-Stapel

/dmxdesktop/v1/stack/{id}/step int (Schrittindex)
/dmxdesktop/v1/stack/{id}/fading int 0|1
/dmxdesktop/v1/stack/{id}/paused int 0|1

Live-Bearbeitungen & Überschreibungen

/dmxdesktop/v1/liveedit/{id} int 0|1
/dmxdesktop/v1/liveedit/group/{id} int 0|1
/dmxdesktop/v1/override/color string (Palette-ID oder "")
/dmxdesktop/v1/override/position string (Preset oder "")

DJ Mode

/dmxdesktop/v1/dj/enabled int 0|1
/dmxdesktop/v1/dj/app string (App-Name oder "")
/dmxdesktop/v1/dj/master int 1-4 (Master-Deck)
/dmxdesktop/v1/dj/crossfader float 0-1
/dmxdesktop/v1/dj/deck{1-4}/playing int 0|1
/dmxdesktop/v1/dj/deck{1-4}/paused int 0|1
/dmxdesktop/v1/dj/deck{1-4}/track string (Künstler - Titel)
/dmxdesktop/v1/dj/deck{1-4}/loaded int 0|1 (Track geladen)
/dmxdesktop/v1/dj/deck{1-4}/loading int 0|1 (analysiere)
/dmxdesktop/v1/dj/deck{1-4}/showready int 0|1 (DMX-Show bereit)
/dmxdesktop/v1/dj/deck{1-4}/vu float (VU-Meter-Level)

Live Wire

/dmxdesktop/v1/livewire/mode/active string (band|dj|ambient, or "")
/dmxdesktop/v1/livewire/hold/state string (held|listening|unavailable)
/dmxdesktop/v1/livewire/mode string (mode selected)
/dmxdesktop/v1/livewire/hold int 0|1

QuickShow - Beam Effects

/dmxdesktop/v1/quickshow/beam string (Effektname oder "")
/dmxdesktop/v1/quickshow/beam/speed int (roher Schiebereglerwert)
/dmxdesktop/v1/quickshow/beam/phase int (roher Schiebereglerwert)
/dmxdesktop/v1/quickshow/beam/background int (roher Schiebereglerwert)
/dmxdesktop/v1/quickshow/beam/spread int (roher Schiebereglerwert)
/dmxdesktop/v1/quickshow/beam/intensity int (roher Schiebereglerwert)

QuickShow - Bewegungseffekte

/dmxdesktop/v1/quickshow/move string (Effektname oder "")
/dmxdesktop/v1/quickshow/move/speed int (roher Schiebereglerwert)
/dmxdesktop/v1/quickshow/move/size int (roher Schiebereglerwert)
/dmxdesktop/v1/quickshow/move/phase int (roher Schiebereglerwert)
/dmxdesktop/v1/quickshow/move/fanning int (roher Schiebereglerwert)
/dmxdesktop/v1/quickshow/move/direction int -1|0|1

QuickShow - Allgemein

/dmxdesktop/v1/quickshow/theme int (Thema-ID)
/dmxdesktop/v1/quickshow/themecount int (8|16|24|32)
/dmxdesktop/v1/quickshow/preset string (Preset-ID oder "")
/dmxdesktop/v1/quickshow/groups string (JSON-Array)
/dmxdesktop/v1/quickshow/groups/move string (JSON-Array)
/dmxdesktop/v1/quickshow/stopall int 1 (Pulse-Ereignis)

QuickShow - Encoder

/dmxdesktop/v1/quickshow/encoder/beam/{id} int 0-255 (DMX-Wert)
/dmxdesktop/v1/quickshow/encoder/move/{id} int 0-255 (DMX-Wert)

Encoder-IDs haben das Format: beam_aux_{groupId}_{channelKey} oder move_aux_{groupId}_{channelKey}

Hinweis: OSC Output erfordert ein kostenpflichtiges Abonnement und muss in den Einstellungen aktiviert werden. Der Standardport ist 9000.

Beat-Zeitstempel werden in zwei 32-Bit-Ganzzahlen (ts_high, ts_low) aufgeteilt, da OSC keine 64-Bit-Werte unterstützt.

Bereit, Ihre Lichter aus der Ferne zu steuern?

DMXDesktop herunterladen