And what is that like?
Thanks, rely enjoyed the second link but when I put in processing "z = (int)(word(pos, posc));" it says the function does not exists
pedroply:
Thanks, rely enjoyed the second link but when I put in "z = (int)(word(pos, posc));" it says the function does not exists
What function doesn't exist? If you're trying to compile some code, and you get an error, not posting the entire code and the entire error is less than unhelpful.
Here is the code:
import processing.serial.*;
import oscP5.*;
import netP5.*;
Serial arduinoPort;
OscP5 oscP5;
float redAmount = 0.0f;
float greenAmount = 0.0f;
float blueAmount = 0.0f;
byte pos = 0;
byte posc = 0;
int z;
void setup(){
size(320, 480);
background(0);
oscP5 = new OscP5(this, 8000);
arduinoPort = new Serial(this, "COM3", 9600);
}
void draw(){
background(redAmount, greenAmount, blueAmount);
fill(0);
//red rect
stroke(255,0,0);
rect(34,39,67,255);
fill(50,40,40);
rect(34,39+255,67,-redAmount);
//green rect
fill(0);
stroke(0,255,0);
rect(124,39,67,255);
fill(40,50,40);
rect(124,39+255,67,-greenAmount);
//blue rect
fill(0);
stroke(0,0,255);
rect(216,39,67,255);
fill(40,40,50);
rect(216,39+255,67,-blueAmount);
}
void oscEvent(OscMessage theOscMessage){
String addr = theOscMessage.addrPattern();
float val = theOscMessage.get(0).floatValue();
if(addr.equals("/1/red")){ redAmount = val;}
if(addr.equals("/1/green")){ greenAmount = val;}
if(addr.equals("/1/blue")){ blueAmount = val;}
pos = byte(blueAmount);
posc = byte(redAmount);
z = (int)(word(pos, posc));
arduinoPort.write(z);
}
and here is the error:
the fuction word(byte, byte) does not exist.
That's Processing. The example in the linked thread was a general idea about how to work with bytes and ints with the Arduino. You'll notice a couple posts down, there is a better, more portable way to do it.