Entradas etiquetadas con ipod

iPod, nuevos modelos

1

El miércoles 1ro de septiembre se llevo a cabo el keynote de Apple, en el cual se presentaron las actualizaciones de varios de sus productos, ademas de mejoras en el iOS. En concreto se dio a conocer la actualización de los iPod’s en todas sus versiones, veamos sus nuevas especificaciones y precios en Mexico.

La actualización del iPod touch tuvo una mejora en hardware, se le agrego una cámara trasera que graba en HD (720p) y una cámara frontal para uso con la aplicación Face Time, ademas de la increíble pantalla Retina con resolución de 960×640 y un incremento de velocidad, gracias a que ahora integra el procesador A4 de Apple.
iTouch2010 (más…)

Popularity: 16%

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.

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);
  }
}

Popularity: 11%

Ir arriba