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