Das "Open Sound Control" Protokoll würde speziell für die Kontrolle von Multimedia Installationen in einem lokalen Netzwerk entwickelt.
Tools
- OSCulator - Routing Applikation für OSX.
- TouchOSC - OSC Interfaces für iPad und iPhone.
- Resolume - Kontrollierbare VJ Software.
Processing Beispiel
Wenn Werte von Processing aus an weitere Applikationen (z.B. Max MSP) übergeben werden sollen, oder wenn in Processing Werte aus diesen Programmen empfangen werden sollen, verwenden wir die Processing Library oscP5 (http://www.sojamo.de/libraries/oscP5/). Diese muss ebenfalls heruntergeladen werden und dann im library Ordner von Processing platziert werden.
Um Werte nun per OSC an einen anderen Computer zu versenden müssen wir zunächst die Library initialisieren:
import oscP5.*; // oscP5 Library importieren import netP5.*; // netP5 Library importieren OscP5 oscP5; // Kontrollobjekt anlegen NetAddress remoteLocation; // Zieladresse anlegen
Im nächsten Schritt initialisieren wir die Library und setzen die Zieladresse:
void setup() { oscP5 = new OscP5(this, 12000); // Library starten und auf Port 12000 auf eingehende Nachrichten warten remoteLocation = new NetAddress("172.31.224.73", 12000); // Die IP Adresse sowie der Port des Empfänger }
Nun müssen wir nur noch Nachrichten erstellen und diese and die Zieladresse schicken:
void mousePressed() { OscMessage msg = new OscMessage("/test"); // Neue Nachricht mit "/test" als Adress-Muster msg.add(123); // Einfache Zahl anhängen oscP5.send(msg, remoteLocation); // Senden der Nachricht }
Um Nachrichten zu empfangen können wir folgenden Code hinzufügen:
void oscEvent(OscMessage msg) { println("### Neue Nachricht"); println("AddrPattern: " + msg.addrPattern()); // Ausgeben des Adress-Muster println("TypeTag: " + msg.typetag()); // Ausgeben des Type-Tag // Adress-Muster überprüfen if(msg.addrPattern().equals("/test")) { // Mitgesendete Zahl ausgeben println(msg.get(0).intValue()); } }