1. Upload Standard Firmata to Arduino 2. Processing code

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

Serial port;  // Create object from Serial class
OscP5 oscP5;
NetAddress myRemoteLocation;
Arduino arduino;

//  Serial Variables
String buff = "", temp = " ";
int NEWLINE = 10, temporary, counter;
int analog0;
int lineHeight = 25;

void setup() {
  frameRate(24);
  size(1440, 980);
  oscP5 = new OscP5(this,57120);
  myRemoteLocation = new NetAddress("127.0.0.1",57121);
  println(Arduino.list());
  arduino = new Arduino(this, Arduino.list()[0], 57600);
  arduino = new Arduino(this, "/dev/tty.usbmodemfa131", 57600);
  for (int i = 0; i <= 13; i++)
    arduino.pinMode(i, Arduino.INPUT);
}

void draw() {
  sendOSC();
  fill(0,10);
  rect(0,0,1440,980);

  fill(255);
  ellipse(width/2, height/2, arduino.analogRead(0), arduino.analogRead(1));

}

void sendOSC()  {
  OscMessage an = new OscMessage("analog0");
  an.add(arduino.analogRead(0));
  oscP5.send(an, myRemoteLocation);
}

3. SuperCollider code

OSCFunc.trace(true)

p = Platform.resourceDir +/+ "sounds/a11wlk01.wav";
b = Buffer.read(s, p);
(
SynthDef(\foubuf, {| out = 0, bufnum = 1, rate = 1, trigger = 1,
                   loop = 1, pos = 0, level = 1|
	Out.ar(out,
		Pan2.ar(
			PlayBuf.ar(1,
				bufnum,
				rate,
				trigger,
				0,
				loop
			),
			pos,
			level
		)
	)
}).send(s);
)
x = Synth(\foubuf);

//:OSC Responders
OSCresponder(nil, "analog0", { |t, r, msg| x.set(\rate, 0.01*msg[1]);}).add;//Responder

x.set(\bufnum, 1)
x.set(\loop, 0)
x.set(\level, 0.3)
x.set(\pos, -1)

Links

blog comments powered by Disqus