Conectando PD ao Processing via OSC
Passos iniciais:
- Baixar a lib oscP5.
- Estude os examples da lib, é importante ter uma noção inicial.
- Coloque os arquivos na pasta libraries do Processing.
- Reinicie o Processing
O tratamento que a lib faz para o OSC é simples, fiz um exemplo abaixo que pode facilitar:
import oscP5.*;
import netP5.*;
OscP5
? oscP5;
NetAddress
? myRemoteLocation;
void setup() {
size(600,400);
background(255);
oscP5 = new OscP5(this,12000);
myRemoteLocation = new NetAddress("127.0.0.1",12000); // servidor local na porta 12000.
}
void draw() {
if(mousePressed==true) {
background(random(255),random(255),random(255));
}
}
// aqui ele faz o tratamento do OSC recebido...
void oscEvent(OscMessage theOscMessage) {
println(" saida do PD: "+theOscMessage.get(0).intValue());
int captura = theOscMessage.get(0).intValue(); // recebe os sendOSC :) -> como receber mais de um?
fill(random(captura/2),random(captura*2),random(captura*2),random(captura));
if(captura==0) {
background(random(255),random(255),random(255));
}
smooth();
noStroke();
ellipse(random(captura,width),random(captura,height), captura*2,captura*2);
rect(random(captura*2),random(captura/2),captura*2,captura*2);
}
Coloque este código no Processing e inicie (CTRL + R).
Para receber os OSCs você precisa ligar o PD e criar um sendOSC. Para facilitar, novamente, segue um exemplo:
Faça um s captura em alguma lib qualquer, ex: pdp_scanxy~ (webcam) e comece a brincar de pintar no Processing com a Webcam, ou então ligue o adc~ e capture a frequencia ambiente, pinte até com o
Toscolão
Aprimoramentos
- Como receber mais de um OSC e em variáveis diferentes?
- Como utilizar isso para fazer mapeamentos em realtime de dados recebidos pela internet?
Estudos
- Este trabalho faz parte de estudos na tentativa de pesquisar e criar novas ferramentas livres para produção multimídia. Colabore.