
PDE Download: Test03vSwissCross3Dc.pde
JAVA Download: Test03vSwissCross3Dc.java
Click on anar+ terms to get the documentation.
import processing.opengl.*;
import anar.*;
import promidi.*;
/*
* Example for Anar library by Guillaume LaBelle + Julien Nembrini
* http://anar.ch
*/
Obj myObj;
Param w1 = new Param(50,20,100);
Param w2 = new Param(50,20,100);
MidiIO midiIO;
void setup(){
size(300,300,OPENGL);
Anar.init(this);
Anar.scene.lights = false;
Anar.scene.autoRotateZ = .01f;
Anar.scene.autoRotateX = .0041f;
midiIO = MidiIO.getInstance(this);
println("printPorts of midiIO");
midiIO.printDevices();
// midiIO.openInput(8,0);
midiIO.plug(this,"noteOn",0,0);
midiIO.plug(this,"noteOff",0,0);
midiIO.plug(this,"controllerIn",0,0);
midiIO.plug(this,"programChange",0,0);
Anar.sliders(w1);
Anar.sliders(w2);
initForm();
}
void initForm(){
myObj = new Obj();
Obj swissCross3D = new SwissCross3D(w1,w2);
swissCross3D.fill(new RenderFaceNoStroke(new AColor(255)));
myObj.add(swissCross3D);
// println(swissCross3D.toObjExporter());
}
void draw(){
// updateParam();
background(215,0,0);
myObj.draw();
if(key==' '){
w1.setRatio(mouseX/(float)width);
w2.setRatio(mouseY/(float)height);
}
}
void noteOn(Note note){
int vel = note.getVelocity();
int pit = note.getPitch();
println("noteON");
}
void noteOff(Note note){
int pit = note.getPitch();
println("noteOff");
}
void controllerIn(Controller controller){
int num = controller.getNumber();
int val = controller.getValue();
int val2 = controller.getCommand();
byte[] raw = controller.getMessage();
println(num+"|"+val+"|"+val2+"|"+raw[0]+"|"+raw[1]+"|"+raw[2]);
if(num==1)
w1.setMidi(val);
if(num==2)
w2.setMidi(val);
}
void programChange(ProgramChange programChange){
int num = programChange.getNumber();
println("progChange");
}
void updateParam(){
w2.set(100*sin(frameCount/10f));
w1.set(100*sin(frameCount/33f));
println(w2);
}

|