diff options
| author | Tim Redfern <tim@eclectronics.org> | 2012-08-16 16:51:19 +0100 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2012-08-16 16:51:19 +0100 |
| commit | 7edbb64e6fb9ee4e3f449d8d168f3aa94fb6ec4d (patch) | |
| tree | 8840ebacf45bda209a7a3d1f91ad8192bca4e174 /sf_live | |
| parent | b3548f90171f0be1ebfd7020f38f3d0acec65f8b (diff) | |
simple vis
Diffstat (limited to 'sf_live')
| -rw-r--r-- | sf_live/MidiReceiver.pde | 17 | ||||
| -rw-r--r-- | sf_live/Pianola.pde | 9 | ||||
| -rw-r--r-- | sf_live/sf_live.pde | 59 |
3 files changed, 23 insertions, 62 deletions
diff --git a/sf_live/MidiReceiver.pde b/sf_live/MidiReceiver.pde index 4b204a2..25d3e1c 100644 --- a/sf_live/MidiReceiver.pde +++ b/sf_live/MidiReceiver.pde @@ -8,18 +8,19 @@ class MidiReceiver implements Receiver{ void send(MidiMessage message, long lTimeStamp){ switch(message.getStatus()){ - case 144: //note on - println(message.getStatus()+" "+message.getMessage()[1]+" "+message.getMessage()[2]); - - notes[message.getMessage()[1]-NOTE_LOW].velocity = message.getMessage()[2]; //set to velocity - //keys[message.getMessage()[1]].downColor= color(random(0, 360), 70, 100); + case 144: //note on chan 1 + midiOut.sendNoteOn(0, message.getMessage()[1], message.getMessage()[2]); + //println(message.getStatus()+" "+message.getMessage()[1]+" "+message.getMessage()[2]); break; - case 128: //note off - notes[message.getMessage()[1]-NOTE_LOW].velocity = 0; //clear - break; + case 128: //note off chan 1 + midiOut.sendNoteOff(0, message.getMessage()[1], message.getMessage()[2]); + break; + case 176: //control change chan 1 + midiOut.sendController(0, message.getMessage()[1], message.getMessage()[2]); default: break; } + //nb can be if >127<144 note off (status-127) } } diff --git a/sf_live/Pianola.pde b/sf_live/Pianola.pde deleted file mode 100644 index b2c3952..0000000 --- a/sf_live/Pianola.pde +++ /dev/null @@ -1,9 +0,0 @@ -class Note{ - int velocity; - - Note(){ - velocity=0; - } - -} - diff --git a/sf_live/sf_live.pde b/sf_live/sf_live.pde index 8ba93fb..aa8406f 100644 --- a/sf_live/sf_live.pde +++ b/sf_live/sf_live.pde @@ -10,41 +10,37 @@ String audioFileName = "Sailing Architraves Tim Live.mp3"; Sequencer s; MetaListener metaListener; -int NOTE_LOW = 36, NOTE_HIGH = 100; -int NUM_NOTES=NOTE_HIGH-NOTE_LOW; -Note[] notes = new Note[NUM_NOTES]; - Minim minim; AudioPlayer audioPlayer; int pw,ph; -PImage sc; //=createImage(width,height); -MidiDevice midiOut; +import rwmidi.*; +MidiOutput midiOut; void setup(){ - MidiDevice.Info[] devs=MidiSystem.getMidiDeviceInfo(); + rwmidi.MidiDevice[] devs=RWMidi.getOutputDevices(); + /* if (devs.length>0) { println("MIDI devices:"); for (int i=0;i<devs.length;i++) { - println(str(i)+": "+devs[i].getName()); + println(str(i)+": "+devs[i]); } } + */ + + midiOut= RWMidi.getOutputDevices()[0].createOutput(); - //midiOut=MidiSystem.getMidiDevice(devs[0]); - Receiver receiver=MidiSystem.getReceiver(); + println("opened "+devs[0]+" for output"); size(300, 110, P3D); - pw=width/NUM_NOTES; - ph=pw; + frameRate(15); - for(int i = 0; i < NUM_NOTES; i++){ - notes[i]=new Note(); - } + //load audio file minim = new Minim(this); audioPlayer = minim.loadFile(audioFileName, 2048); @@ -60,28 +56,12 @@ void setup(){ colorMode(RGB, 255); - //app=new PlayApp(this,"localhost","Backing & Veering","Sunken Foal",153f); - swidth=width-2; - soffset=1; + } -int swidth; -int soffset; + float time=0; void draw(){ time+=(1f/(153f*25)); - - - - for(int i = 0; i < NUM_NOTES; i++){ - int v=notes[i].velocity; - if(v>0) { - //draw the note - colorMode(HSB, 255); - fill(200-v,255,255); - colorMode(RGB, 255); - rect(i*pw,0,pw,ph); - } - } //saveFrame("frames/img####.png"); @@ -127,18 +107,7 @@ void stop(){ void keyPressed() { switch(key){ - case 'q': - swidth-=1; - break; - case 'w': - swidth+=1; - break; - case 'e': - soffset-=1; - break; - case 'r': - soffset+=1; - break; + } } |
