Apresentação sobre OSC
Transcrição
Apresentação sobre OSC
Programação Multimédia 2006/2007 – http://teaching.jorgecardoso.org/pm Programação Multimédia Open Sound Control (OSC) 03-06-2007 Jorge Cardoso 1 Programação Multimédia 2006/2007 – http://teaching.jorgecardoso.org/pm Open Sound Control (OSC) • O que é o OSC? – “Open Sound Control (OSC) is an open, transportindependent, message-based protocol developed for communication among computers, sound synthesizers, and other multimedia devices.” – http://www.opensoundcontrol.org • Basicamente, serve para enviar mensagens de uma aplicação para outra – As aplicações podem estar em computadores diferentes 03-06-2007 Jorge Cardoso 2 Programação Multimédia 2006/2007 – http://teaching.jorgecardoso.org/pm OSC • Uma aplicação é identificada pelo endereço IP (identifica o computador) e por uma “porta” (identifica a aplicação) – 172.20.85.123:3000 • As aplicações podem receber e enviar mensagens OSC • Mensagens OSC: – Permitem-nos enviar • • • • 03-06-2007 inteiros floats strings ... Jorge Cardoso 3 Programação Multimédia 2006/2007 – http://teaching.jorgecardoso.org/pm OSC • Uma mensagem OSC pode conter vários valores – 26 “Jose” 70.45 • As mensagens têm um nome (começam sempre por ‘/’): – – – – – /idade (/idade 26) /nome (/nome “Jose”) /nomepeso (/nomepeso “Jose” 70.45) etc A aplicação pode receber vários tipos de mensagens diferentes 03-06-2007 Jorge Cardoso 4 Programação Multimédia 2006/2007 – http://teaching.jorgecardoso.org/pm OSC • Se um programa pretende receber mensagens de outro programa tem de conhecer os nomes das mensagens enviadas • As mensagens são especificadas através do nome e do tipo de parâmetros – /nome s • Mensagem “nome” com um parâmetro do tipo string – /nomepeso sf • Mensagem “nomepeso” com dois parâmetros; um do tipo string e outro do tipo float 03-06-2007 Jorge Cardoso 5 Programação Multimédia 2006/2007 – http://teaching.jorgecardoso.org/pm OSC em Processing • É necessário uma biblioteca (conjunto de métodos) externa ao Processing – oscP5 03-06-2007 Jorge Cardoso 6 Programação Multimédia 2006/2007 – http://teaching.jorgecardoso.org/pm oscP5 • Representado por um objecto – OscP5 • Construtor: oscP5 = new OscP5(this, 10000); 10000 é a porta em que o programa “escuta” as mensagens vindas de outros computadores 03-06-2007 Jorge Cardoso 7 Programação Multimédia 2006/2007 – http://teaching.jorgecardoso.org/pm Exemplo OSCReceive import oscP5.*; import netP5.*; OscP5 oscP5; void setup() { oscP5 = new OscP5(this, 10000); } void draw() { } void oscEvent(OscIn msg) { if(msg.checkAddrPattern("/mensagem")) { println("mensagem"); } } 03-06-2007 Jorge Cardoso 8 Programação Multimédia 2006/2007 – http://teaching.jorgecardoso.org/pm Exemplo OSCSend import oscP5.*; import netP5.*; OscP5 oscP5; NetAddress alvo; void setup() { oscP5 = new OscP5(this, 11000); alvo = new NetAddress("127.0.0.1",10000); } void draw() { } void mousePressed() { OscMessage mensagem = new OscMessage("/mensagem"); mensagem.add(123); oscP5.send(mensagem, alvo); } 03-06-2007 Jorge Cardoso 9 Programação Multimédia 2006/2007 – http://teaching.jorgecardoso.org/pm Exercício #1 1. Crie um programa que escute as seguintes mensagens OSC na porta 20000: – /pos ii • (x, y) 1. Quando receber uma mensagem o programa deve desenhar um rectângulo nas coordenadas recebidas 2. Crie outro programa que envie mensagens com o mesmo nome para a porta 20000 de cada vez que o rato é movido. 03-06-2007 Jorge Cardoso 10