summaryrefslogtreecommitdiff
path: root/sf_live
diff options
context:
space:
mode:
Diffstat (limited to 'sf_live')
-rw-r--r--sf_live/MidiReceiver.pde17
-rw-r--r--sf_live/Pianola.pde9
-rw-r--r--sf_live/sf_live.pde59
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;
+
}
}