From b3548f90171f0be1ebfd7020f38f3d0acec65f8b Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 9 Aug 2012 20:14:02 +0100 Subject: initial commit --- sf_live/sf_live.pde | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 sf_live/sf_live.pde (limited to 'sf_live/sf_live.pde') diff --git a/sf_live/sf_live.pde b/sf_live/sf_live.pde new file mode 100644 index 0000000..8ba93fb --- /dev/null +++ b/sf_live/sf_live.pde @@ -0,0 +1,146 @@ +//modprobe snd-virmidi +//creates virtual midi interface + +import javax.sound.midi.*; +import java.io.File; +import ddf.minim.*; + +String midiFileName = "Sailing Architraves Tim Live.mid"; +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; + +void setup(){ + + + MidiDevice.Info[] devs=MidiSystem.getMidiDeviceInfo(); + if (devs.length>0) { + println("MIDI devices:"); + for (int i=0;i0) { + //draw the note + colorMode(HSB, 255); + fill(200-v,255,255); + colorMode(RGB, 255); + rect(i*pw,0,pw,ph); + } + } + + + //saveFrame("frames/img####.png"); + if (!audioPlayer.isPlaying()) exit(); +} + +//change rate of drop? +//veering?? + + +void startMidiFile(){ + InputStream midiFileStream = createInput(midiFileName); + + try { + s = MidiSystem.getSequencer(false); + s.setSequence(MidiSystem.getSequence(midiFileStream)); + + //Create a MidiReceiver that listens to NOTE ON and OFF events + Receiver midiReceiver = new MidiReceiver(); + Transmitter midiTransmitter = s.getTransmitter(); + midiTransmitter.setReceiver(midiReceiver); + + //Create a MetaEventListener that listens to the END OF TRACK event + metaListener = new MetaListener(); + s.addMetaEventListener(metaListener); + s.open(); + s.setTickPosition(0L); + s.start(); + } + catch(Exception e) { + println(e); + background(0, 100, 100); //red screen if erro + //stop(); + } + +} + + +void stop(){ + s.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; + } +} + + + -- cgit v1.2.3