SamanaTleilax
YaBB Newbies
Offline
Posts: 2
Create New Object Every Second
Oct 2nd , 2008, 10:42pm
Hi all, I've been playing with an example script within the proMIDI library which sends MIDI data in accordance to some bouncing balls in a square. I'd like to modify this code so that the number of balls increases by 1 every second. Here is the code: import processing.opengl.*; import promidi.*; MidiIO midiIO; MidiOut midiOut; Bowl[] bowl; void setup(){ size(128*5,128*5); background(0); smooth(); //get an instance of MidiIO midiIO = MidiIO.getInstance(this); //print a list with all available devices midiIO.printDevices(); //open an midiout using the third device and the first channel midiOut = midiIO.getMidiOut(0,2); bowl = new Bowl[1]; for(int i = 0;i < bowl.length;i++){ bowl[i] = new Bowl(i); } noStroke(); } void draw(){ background(0); for(int i = 0;i < bowl.length;i++){ bowl[i].move(); bowl[i].paint(); } } class Bowl{ float xSpeed; float ySpeed; float xPos; float yPos; Note note; color col; int myNumber; Bowl(int number){ xSpeed = random(2,20); ySpeed = random(2,20); note = new Note(0,0,0); col = color( random(0,255), random(0,255), random(0,255) ); myNumber = number; } void move(){ xPos += xSpeed; yPos += ySpeed; midiOut.sendController( new Controller(myNumber, int(xPos/6)+2) ); if(xPos > width || xPos < 0){ xSpeed = -xSpeed; xPos += xSpeed; playNote(); } if(yPos > width || yPos < 0){ ySpeed = -ySpeed; yPos += ySpeed; playNote(); midiOut.sendProgramChange( new ProgramChange(myNumber) ); } } void playNote(){ note = new Note(int(xPos/5f),int(yPos/10f)+60,int(random(1000))); midiOut.sendNote(note); } void paint(){ fill(col); ellipse(xPos,yPos,20,20); } } I don't have a great deal of experience, and while I appreciate that this may well be a beginners question I did spend a long time trying to find a way myself before bothering you guys! Thanks very much, All the best >> Samana Tleilax