
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) eb(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
- Apri DMXDesktop e vai su Impostazioni → Generale
- 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)
- 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.
- Scarica e installa TouchOSC sul tuo dispositivo:
- iOS: App Store
- Android: Google Play
- Desktop: Desktop
- 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)
- Utilizza la funzione di scoperta in TouchOSC per trovare automaticamente DMXDesktop sulla tua rete
- 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
- Sito Ufficiale OSC - Scopri di più sul protocollo OSC
- Documentazione TouchOSC - Guida dettagliata per TouchOSC
- Specifiche del Protocollo OSC - Dettagli tecnici del protocollo OSC
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 OSC | Parametri | Descrizione |
|---|---|---|
| CONTROLLI MASTER | ||
| /master/dimmer | float (0-1) | Controlla l'intensità del dimmer master |
| EFFETTI LIVE | ||
| /live/strobe/{on|off|pulse} | none | Controlla lo stato dello stroboscopio |
| /live/blackout/{on|off|pulse} | none | Controlla lo stato del blackout |
| /live/blinder/{on|off|pulse} | none | Controlla lo stato del blinder |
| /live/freeze/{on|off|pulse} | none | Controlla lo stato del freeze |
| /live/fog/{on|off|pulse} | none | Controlla lo stato della macchina del fumo |
| EFFETTI SPECIALI | ||
| /effects/{effect}/start | none | Avvia l'effetto specificato (wave, paparazzi, colorsweep, thunder, pulse, sparkle, random) |
| /effects/{effect}/stop | none | Ferma l'effetto speciale specificato |
| /effects/stop | none | Ferma tutti gli effetti speciali attualmente in esecuzione |
| /effects/bpm | float (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|toggle | Controlla lo stato della modifica live per nome |
| /live/edit/group/{action}/{name} | action: enable|disable|toggle | Controlla lo stato del gruppo di modifiche live per nome |
| /live/edit/disable-all | none | Disabilita tutte le modifiche live |
| CONTROLLI CUE | ||
| /cue/effect/play/{name} | string | Riproduce il cue effetto specifico per nome |
| /cue/effect/{action} | play|stop|next|prev | Controlla la navigazione della riproduzione del cue effetto |
| CONTROLLI DJ | ||
| /dj/app/{app} | musicplayer|virtualdj|traktor | Attiva/disattiva un'applicazione DJ specifica |
| /dj/deck{1|2}/{action} | play|stop|eject | Controlli di trasporto del deck |
| /dj/deck{1|2}/volume | float (0-1) | Controlla il volume del deck |
| /dj/crossfader | float (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}/clear | none | Cancella l'override del canale DMX |
| /dmx/clear | none | Cancella TUTTI gli override dei canali DMX |
| CONTROLLI STACK | ||
| /stack/{id}/go | none | Attiva il prossimo cue nello stack specificato |
| /stack/{id}/back | none | Torna al cue precedente |
| /stack/{id}/halt | none | Congela il crossfade attuale a metà transizione |
| /stack/{id}/stop | none | Ferma la riproduzione nello stack specificato |
| /stack/{id}/level | float (0-1) | Imposta il livello master dello stack |
| ESEGUIRE GRIGLIA | ||
| /execute/{row}/{col} | none | Attiva 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 OSC | Parametri | Descrizione |
|---|---|---|
| Live Wire | ||
| /livewire/mode/{band|dj|ambient} | nessuno | Cambia Live Wire in quella modalità e avvia Live Wire se non è già l'app audio in esecuzione |
| /livewire/hold/{on|off|toggle} | nessuno | Mantiene 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} | nessuno | Esegue 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|1Modifiche 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|1QuickShow - 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|1QuickShow - 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.
