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.

Última alteração: 02/10/2007 às 04:26, por: rbrazileiro