Processing

Que es Processing??

8

Processing
Processing es un lenguaje de programación open source (código abierto) y un ambiente de trabajo para personas que quieran programar imagenes, animaciones e interacciones. Es usado por estudiantes, artistas, diseñadores y aficionados para el aprendizaje, creación de prototipos y producción. Está creado para enseñar los fundamentos de programación dentro de un contexto visual y para servir como un cuaderno de bocetos de software y una herramienta de producción profesional.
(más…)

Pruebas processing + touchosc

7

He estado haciendo pruebas con el protocolo OSC en processing, usando la libreria OSCP5 y la aplicación touchosc en el ipod touch, con esto podemos comunicar el ipod con la pc por medio de wifi, lo interesante de esto es que puedes disponer de muchos botones e incluso crear tu propio layout para el ipod, se me ocurren bastantes proyectos donde implementar esto, y lo primero que hare sera una lampara RGB, cuanto la termine la subo por acá.

Y el video de las pruebas, es un sketch donde cambia el valor del background obteniendo los valores de 3 elementos rotary.

” frameborder=”0″ allowfullscreen>

Y este es el código que se usó, para que funcione se debe tener la libreria OSCP5 dentro de la carpeta de library en processing. Se usa un layout de touchOSC personalizado hecho con el editor de touchOSC para mac.


Tambien se adjunta la clase para el layout beatmachine. Para que funcione correctamente la pc como el ipod/iphone deben estar conectados en la misma red.


import oscP5.*;
import netP5.*;
import processing.serial.*; 

OscP5 oscP5;
RGBLamp layout;
//Serial serial;

void setup() {
  size(800,600);
  frameRate(25);

  oscP5 = new OscP5(this,12000);
  layout= new RGBLamp();
  //serial = new Serial(this, Serial.list()[0], 9600);
  layout.printAddr();
}

void draw() {
  background(layout.Data[0]*255,layout.Data[1]*255,layout.Data[2]*255);
}

void mousePressed() {
  layout.printData();
}

void oscEvent(OscMessage theOscMessage) {
  layout.check(theOscMessage);
  theOscMessage.print();
}

//Layout RGBLamp custom para touchOsc probado en version 1.2/1.4 y Processing 1.0.9
//Libreria oscP5

class RGBLamp {

  String[] Addr= {
    "/1/rotary1",
    "/1/rotary2",
    "/1/rotary3",
  };

  float[] Data= new float[Addr.length];

  String Typetag="f";

  void check(OscMessage theOscMessage) {

    for (int i = 0; i < Addr.length; i++) {
      if(theOscMessage.checkAddrPattern(Addr[i])==true) {
        if(theOscMessage.checkTypetag(Typetag)) {
          Data[i] = theOscMessage.get(0).floatValue();
          println(Addr[i]+" "+ Data[i]);
        }
      }
    }
  }

  void printData() {
    println(Data);
  }

  void printAddr() {
    println(Addr);
  }
}

Esta clase se puede usar con la plantilla beatmachine que viene por default en el touchOSC.

//Layout Beatmachine para touchOsc probado en version 1.2/1.4 y Processing 1.0.9
//Libreria oscP5
class Beatmachine {

  String[]  Addr= {
    "/1/fader1",
    "/1/fader2",
    "/1/toggle1",
    "/1/toggle2",
    "/1/push1",
    "/1/push2",
    "/1/push3",
    "/1/push4",
    "/1/push5",
    "/1/push6",
    "/1/push7",
    "/1/push8",
    "/1/push9",
    "/1/push10",
    "/1/push11",
    "/1/push12",
    "/2/multifader/1",
    "/2/multifader/2",
    "/2/multifader/3",
    "/2/multifader/4",
    "/2/multifader/5",
    "/2/multifader/6",
    "/2/multifader/7",
    "/2/multifader/8",
    "/2/multifader/9",
    "/2/multifader/10",
    "/2/multifader/11",
    "/2/multifader/12",
    "/2/multifader/13",
    "/2/multifader/14",
    "/2/multifader/15",
    "/2/multifader/16",
    "/3/rotary1",
    "/3/rotary2",
    "/3/rotary3",
    "/3/rotary4",
    "/3/rotary5",
    "/3/rotary6",
    "/3/toggle1",
    "/3/toggle2",
    "/3/toggle3",
    "/3/toggle4",
    "/3/toggle5",
    "/4/toggle1",
    "/4/toggle2",
    "/4/toggle3",
    "/4/toggle4",
    "/4/toggle5",
    "/4/xy"
  };

  float[] Data= new float[Addr.length -1];

  float x,y;
  String Typetag="f";

  void check(OscMessage theOscMessage) {

    for (int i = 0; i < Addr.length; i++) {
      if(theOscMessage.checkAddrPattern(Addr[i])==true) {
        if(theOscMessage.checkTypetag(Typetag)) {
          Data[i] = theOscMessage.get(0).floatValue();
          println(Addr[i]+" "+ Data[i]);
        }
        else {
          x = theOscMessage.get(0).floatValue();
          y = theOscMessage.get(1).floatValue();
          println(Addr[i]+" x="+x+" , y="+y) ;
        }
      }
    }
  }

  void printData() {
    println(Data);
    println("[x] "+x);
    println("[y] "+y);
  }

  void printAddr() {
    println(Addr);
  }
}

Flame – Creando arte con processing

0
flame

Flame es un programa creado en Processing (del cual hablaremos despues) por Peter Blaskovic, con el cual podras dibujar tu mismo imagenes de ese estilo, puedes modificar varios parametros, como el color, tamaño del pincel, ruido, enfoque y el caos deseado. En la pagina oficial se encuentra el applet con el cual podras crear tu propio arte.

Pagina oficial | Flame
Via | Make en español

Ir arriba