DMX lighting effects background

Apri il Controllo del Suono (OSC)

Invia comandi a DMXDesktop e ricevi trasmissioni di stato tramite OSC

Che cos'è l'OSC?

Open Sound Control (OSC) è un protocollo aperto, indipendente dal trasporto, basato su messaggi per la comunicazione tra computer, sintetizzatori audio, software di illuminazione e altri dispositivi multimediali. È stato creato da Matt Wright e Adrian Freed presso il CNMAT, Università della California, Berkeley, e la versione 1.0 è stata pubblicata nel marzo 2002. DMXDesktop implementa OSC in entrambe le direzioni: riceve comandi da controller esterni e trasmette cambiamenti di stato ad altre applicazioni.

Dove DMX512 invia un flusso fisso di slot numerati, OSC invia messaggi nominati. Questa è la differenza principale in una frase. Un messaggio OSC ha tre parti:

  • Un modello di indirizzo, una stringa di testo che inizia con una barra obliqua e si legge come un percorso URL, ad esempio /master/dimmer.
  • Una stringa di tag di tipo, una virgola seguita da una lettera per argomento. Ogni implementazione OSC supporta i (intero a 32 bit), f (float a 32 bit), s (stringa) e b (blob binario).
  • Gli argomenti stessi, nell'ordine in cui i tag di tipo dichiarano. Tutti i numeri sono in formato big-endian e ogni valore è riempito a un multiplo di 32 bit.

Due cose sorprendono le persone che arrivano da MIDI o DMX. Prima di tutto, OSC non ha un numero di porta ufficiale. La specifica è deliberatamente indipendente dal trasporto e non ne assegna nessuno, e non esiste nemmeno una porta OSC registrata presso l'IANA, quindi ogni applicazione sceglie la propria e la imposti su entrambi i lati. DMXDesktop ascolta sulla porta 8000 per impostazione predefinita e invia l'output sulla porta 9000.

In secondo luogo, i modelli di indirizzo OSC supportano caratteri jolly, quindi un messaggio può raggiungere più destinazioni contemporaneamente: ? corrisponde a qualsiasi singolo carattere, * corrisponde a qualsiasi sequenza di caratteri, [abc] corrisponde a qualsiasi carattere in un insieme, e {foo,bar} corrisponde a qualsiasi stringa in un elenco.

OSC ha anche bundle: diversi messaggi raggruppati insieme con un tag temporale a 64 bit in formato NTP, quindi un ricevitore li applica come un unico gruppo atomico, immediatamente o in un momento programmato. OSC trasporta il tag temporale ma non sincronizza gli orologi, quindi entrambe le macchine hanno bisogno del proprio orario corretto.

Una nota sulle versioni, perché può confondere: OSC 1.1 esiste, ma non esiste un documento di specifica 1.1. I suoi autori hanno pubblicato un articolo per NIME 2009 invece e lo hanno lasciato come riferimento. OSC 1.1 mantiene il formato del messaggio 1.0, promuove diversi tipi opzionali come True, False, Null e Impulse a richiesti, e aggiunge il // carattere jolly multi-livello. I messaggi scritti per 1.0 funzionano ancora con i ricevitori 1.1.

Come Funziona

DMXDesktop supporta sia l'Input che l'Output OSC. Il server OSC Input ascolta i messaggi in arrivo per controllare vari aspetti del software. OSC Output trasmette cambiamenti di stato ed eventi ad applicazioni esterne, consentendo la sincronizzazione in tempo reale con software video, visualizzatori e integrazioni personalizzate. Entrambi supportano il protocollo UDP per comunicazione a bassa latenza.

Iniziare

  1. Apri DMXDesktop e vai su Impostazioni → Generale
  2. Nella sezione OSC, troverai:
    • Interruttore per abilitare/disabilitare l'OSC Input
    • Selezione dell'interfaccia di rete
    • Numero di porta di input (predefinito: 8000)
    • Selezione del protocollo (UDP/TCP)
    • Interruttore per abilitare/disabilitare l'OSC Output
    • Host e Porta di output (predefinito: 127.0.0.1:9000)
  3. Il servizio di scoperta funziona sulla porta 9000 e consente alle app compatibili di trovare automaticamente DMXDesktop sulla rete

Collegamento con TouchOSC

TouchOSC è uno strumento popolare per controllare moltitudini di diversi tipi di applicazioni e può essere utilizzato per controllare DMXDesktop tramite il protocollo OSC.

Si prega di notare: TouchOSC è un software a pagamento, si prega di fare riferimento al sito ufficiale per dettagli.

  1. Scarica e installa TouchOSC sul tuo dispositivo:
  2. Apri TouchOSC e crea una nuova connessione:
    • Protocollo: OSC
    • Host: Indirizzo IP del tuo computer (mostrato nelle impostazioni di DMXDesktop)
    • Porta di invio: 8000 (predefinito)
    • Porta di ricezione: 9000 (per il servizio di scoperta)
  3. Utilizza la funzione di scoperta in TouchOSC per trovare automaticamente DMXDesktop sulla tua rete
  4. Crea il tuo layout utilizzando i percorsi OSC elencati nella tabella sottostante

Suggerimenti di Rete

  • Assicurati che il tuo dispositivo e computer siano sulla stessa rete
  • Se utilizzi un firewall, consenti le connessioni in entrata sulle porte 8000 e 9000
  • Per prestazioni ottimali, utilizza una rete dedicata o una connessione WiFi a 5GHz
  • Per l'OSC Output, configura l'IP e la porta dell'host di destinazione nelle Impostazioni

Risorse Aggiuntive

Comandi OSC Input

Invia questi comandi a DMXDesktop per controllare la tua illuminazione. Tutti i percorsi sono sensibili alle maiuscole.

Nota: L'input OSC richiede un abbonamento a pagamento e deve essere abilitato nelle Impostazioni. La porta di input predefinita è 8000.

Percorso OSCParametriDescrizione
CONTROLLI MASTER
/master/dimmerfloat (0-1)Controlla l'intensità del dimmer master
EFFETTI LIVE
/live/strobe/{on|off|pulse}noneControlla lo stato dello stroboscopio
/live/blackout/{on|off|pulse}noneControlla lo stato del blackout
/live/blinder/{on|off|pulse}noneControlla lo stato del blinder
/live/freeze/{on|off|pulse}noneControlla lo stato del freeze
/live/fog/{on|off|pulse}noneControlla lo stato della macchina del fumo
EFFETTI SPECIALI
/effects/{effect}/startnoneAvvia l'effetto specificato (wave, paparazzi, colorsweep, thunder, pulse, sparkle, random)
/effects/{effect}/stopnoneFerma l'effetto speciale specificato
/effects/stopnoneFerma tutti gli effetti speciali attualmente in esecuzione
/effects/bpmfloat (0-1)Imposta il BPM per il timing degli effetti speciali (mappa 0-1 a 60-200 BPM)
MODIFICHE LIVE
/live/edit/{action}/{name}action: enable|disable|toggleControlla lo stato della modifica live per nome
/live/edit/group/{action}/{name}action: enable|disable|toggleControlla lo stato del gruppo di modifiche live per nome
/live/edit/disable-allnoneDisabilita tutte le modifiche live
CONTROLLI CUE
/cue/effect/play/{name}stringRiproduce il cue effetto specifico per nome
/cue/effect/{action}play|stop|next|prevControlla la navigazione della riproduzione del cue effetto
CONTROLLI DJ
/dj/app/{app}musicplayer|virtualdj|traktorAttiva/disattiva un'applicazione DJ specifica
/dj/deck{1|2}/{action}play|stop|ejectControlli di trasporto del deck
/dj/deck{1|2}/volumefloat (0-1)Controlla il volume del deck
/dj/crossfaderfloat (0-1)Controlla la posizione del crossfader
CONTROLLO DMX DIRETTO
/dmx/{universe}/{channel}float (0-1)Imposta il valore del canale DMX (mappa 0-1 a 0-255)
/dmx/{universe}/{channel}/clearnoneCancella l'override del canale DMX
/dmx/clearnoneCancella TUTTI gli override dei canali DMX
CONTROLLI STACK
/stack/{id}/gononeAttiva il prossimo cue nello stack specificato
/stack/{id}/backnoneTorna al cue precedente
/stack/{id}/haltnoneCongela il crossfade attuale a metà transizione
/stack/{id}/stopnoneFerma la riproduzione nello stack specificato
/stack/{id}/levelfloat (0-1)Imposta il livello master dello stack
ESEGUIRE GRIGLIA
/execute/{row}/{col}noneAttiva il pulsante della griglia di esecuzione nella posizione specificata

Comandi Live Wire e Tempo

La modalità Live Wire, il Live Wire Hold e i controlli di tempo dimezzato e raddoppiato possono essere gestiti tramite OSC. Live Wire è una funzionalità Standard e Pro. Disponibile dalla v1.0.52

Percorso OSCParametriDescrizione
Live Wire
/livewire/mode/{band|dj|ambient}nessunoCambia Live Wire in quella modalità e avvia Live Wire se non è già l'app audio in esecuzione
/livewire/hold/{on|off|toggle}nessunoMantiene Live Wire nella modalità di standby, oppure lo rilascia per tornare in ascolto. Rifiutato quando la modalità in esecuzione non ha un aspetto di standby da mantenere
TEMPO
/live/tempo/{half|double|normal}nessunoEsegue il sistema a tempo dimezzato o raddoppiato, oppure lo riporta a normale. Dimezzato e raddoppiato si bloccano, quindi inviare lo stesso di nuovo riporta a normale

Un'impostazione di tempo, ovunque. Tempo dimezzato e raddoppiato è un'impostazione unica che la console, i pad MIDI, OSC e il telecomando mobile leggono e scrivono, quindi non possono disaccordarsi sulla velocità a cui il sistema sta funzionando.

OSC non può più silenziare l'audio su cui dipende una funzione in esecuzione. Live Wire ha bisogno di cattura audio dal vivo e rilevamento BPM, e un messaggio OSC potrebbe precedentemente disattivare uno dei due, lasciandolo abilitato ma sordo. Quei messaggi ora vengono rifiutati mentre una funzione in esecuzione dipende da essi.

Messaggi OSC Output

DMXDesktop trasmette stati ed eventi ad applicazioni esterne tramite OSC. Configura l'host e la porta di destinazione nelle Impostazioni. Disponibile dalla v1.0.46

Controlli Live

/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 (onda, tuono, ecc.)

Audio & BPM

/dmxdesktop/v1/bpm float (valore BPM)
/dmxdesktop/v1/beat float, int, int, float (bpm, ts_high, ts_low, confidenza)
/dmxdesktop/v1/audio/level float 0-1 (livello RMS)
/dmxdesktop/v1/audio/energy float 0-1 (livello di energia)

Effect Cues

/dmxdesktop/v1/cue/active string (nome del cue o "")
/dmxdesktop/v1/cue/name string (cue attuale)
/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 (nome del prossimo cue)

Cue Stacks

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

Modifiche Live & Sovrapposizioni

/dmxdesktop/v1/liveedit/{id} int 0|1
/dmxdesktop/v1/liveedit/group/{id} int 0|1
/dmxdesktop/v1/override/color string (ID palette o "")
/dmxdesktop/v1/override/position string (preset o "")

DJ Mode

/dmxdesktop/v1/dj/enabled int 0|1
/dmxdesktop/v1/dj/app string (nome dell'app o "")
/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 (Artista - Titolo)
/dmxdesktop/v1/dj/deck{1-4}/loaded int 0|1 (traccia caricata)
/dmxdesktop/v1/dj/deck{1-4}/loading int 0|1 (analizzando)
/dmxdesktop/v1/dj/deck{1-4}/showready int 0|1 (DMX show pronto)
/dmxdesktop/v1/dj/deck{1-4}/vu float (livello VU meter)

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 - Effetti Beam

/dmxdesktop/v1/quickshow/beam string (nome dell'effetto o "")
/dmxdesktop/v1/quickshow/beam/speed int (valore slider grezzo)
/dmxdesktop/v1/quickshow/beam/phase int (valore slider grezzo)
/dmxdesktop/v1/quickshow/beam/background int (valore slider grezzo)
/dmxdesktop/v1/quickshow/beam/spread int (valore slider grezzo)
/dmxdesktop/v1/quickshow/beam/intensity int (valore slider grezzo)

QuickShow - Effetti di Movimento

/dmxdesktop/v1/quickshow/move string (nome dell'effetto o "")
/dmxdesktop/v1/quickshow/move/speed int (valore slider grezzo)
/dmxdesktop/v1/quickshow/move/size int (valore slider grezzo)
/dmxdesktop/v1/quickshow/move/phase int (valore slider grezzo)
/dmxdesktop/v1/quickshow/move/fanning int (valore slider grezzo)
/dmxdesktop/v1/quickshow/move/direction int -1|0|1

QuickShow - Generale

/dmxdesktop/v1/quickshow/theme int (ID tema)
/dmxdesktop/v1/quickshow/themecount int (8|16|24|32)
/dmxdesktop/v1/quickshow/preset string (ID preset o "")
/dmxdesktop/v1/quickshow/groups string (array JSON)
/dmxdesktop/v1/quickshow/groups/move string (array JSON)
/dmxdesktop/v1/quickshow/stopall int 1 (evento di impulso)

QuickShow - Encoder

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

Gli ID degli encoder sono nel formato: beam_aux_{groupId}_{channelKey} o move_aux_{groupId}_{channelKey}

Nota: L'OSC Output richiede un abbonamento a pagamento e deve essere abilitato nelle Impostazioni. La porta predefinita è 9000.

I timestamp dei battiti sono suddivisi in due interi a 32 bit (ts_high, ts_low) poiché l'OSC non supporta valori a 64 bit.

Pronto a controllare le tue luci da remoto?

Scarica DMXDesktop