From bf52a0005522435363bc6e8b2a20e401a14ac2d8 Mon Sep 17 00:00:00 2001 From: matsfunk Date: Sun, 4 Dec 2016 09:50:34 +0100 Subject: [PATCH] packaged MIDI example as Processing example added midibus library fixed MIDI example variables --- .../EventRecorder/MidiExample/MidiExample.pde | 81 ++++++++++++++++++ .../MidiExample/code/themidibus.jar | Bin 0 -> 13167 bytes test/tools/TestMIDI.java | 12 +-- 3 files changed, 87 insertions(+), 6 deletions(-) create mode 100644 dist/oocsi/examples/Tools/EventRecorder/MidiExample/MidiExample.pde create mode 100644 dist/oocsi/examples/Tools/EventRecorder/MidiExample/code/themidibus.jar diff --git a/dist/oocsi/examples/Tools/EventRecorder/MidiExample/MidiExample.pde b/dist/oocsi/examples/Tools/EventRecorder/MidiExample/MidiExample.pde new file mode 100644 index 0000000..d52c27d --- /dev/null +++ b/dist/oocsi/examples/Tools/EventRecorder/MidiExample/MidiExample.pde @@ -0,0 +1,81 @@ +import javax.sound.midi.MidiChannel; +import nl.tue.id.oocsi.EventRecorder; +import nl.tue.id.oocsi.OOCSI; +import nl.tue.id.oocsi.OOCSIEvent; +import processing.core.PApplet; +import processing.core.PVector; +import themidibus.MidiBus; + +// reference to local OOCSI +OOCSI oocsiPlayer; +EventRecorder oocsiLooper; +PVector pos = new PVector(); +MidiChannel channel; +private MidiBus mb; +private int lastPitch = 0; + +public void setup() { + size(200, 200); + noStroke(); + + // connect to OOCSI server running on the same machine (localhost) + // with the ID "sequencer" for the looper + OOCSI oocsiSequencer = new OOCSI(this, "sequencer", "localhost"); + oocsiLooper = new EventRecorder(oocsiSequencer, "sequelChannel"); + oocsiLooper.play(); + oocsiLooper.startRecording(); + + // register a second OOCSI client on the same server that can send events and receive recorded events back + oocsiPlayer = new OOCSI(this, "player", "localhost"); + oocsiPlayer.subscribe("sequelChannel"); + + // MIDI sub system + MidiBus.list(); + mb = new MidiBus(this, -1, "Bus 1"); +} + +public void sequelChannel(OOCSIEvent event) { + // event received from looper + pos.x = event.getInt("x", 0); + pos.y = event.getInt("y", 0); + + // plot it out + drawEvent(pos.x, pos.y); +} + +public void draw() { + + // fade previous screen + fill(0, 10); + rectMode(CORNER); + rect(0, 0, width, height); + + // restart looper (trigger start and record at the same time) + if (frameCount % 360 == 0) { + oocsiLooper.startRecording(); + oocsiLooper.play(); + } +} + +public void mousePressed() { + // draw new event + drawEvent(mouseX, mouseY); + + // save new event to loop + oocsiPlayer.channel("sequelChannel").data("x", mouseX).data("y", mouseY).send(); +} + +private void drawEvent(float x, float y) { + + int channel = 1; + int pitch = (int) map(x, 0, width, 40, 90); + int velocity = 80; + mb.sendNoteOff(channel, lastPitch, velocity); + mb.sendNoteOn(channel, pitch, velocity); + lastPitch = pitch; + + // yellow fill for rectangle to plot out + fill(255, 255, 0, 120); + rectMode(CENTER); + rect(x, y, 10, 10); +} \ No newline at end of file diff --git a/dist/oocsi/examples/Tools/EventRecorder/MidiExample/code/themidibus.jar b/dist/oocsi/examples/Tools/EventRecorder/MidiExample/code/themidibus.jar new file mode 100644 index 0000000000000000000000000000000000000000..c9bd69a7d24bc084583ebac95b0c79f23b1d80c7 GIT binary patch literal 13167 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 literal 0 HcmV?d00001 diff --git a/test/tools/TestMIDI.java b/test/tools/TestMIDI.java index a840bfd..bfe99cc 100644 --- a/test/tools/TestMIDI.java +++ b/test/tools/TestMIDI.java @@ -12,7 +12,7 @@ public class TestMIDI extends PApplet { // reference to local OOCSI - OOCSI oocsi2; + OOCSI oocsiPlayer; EventRecorder oocsiLooper; PVector pos = new PVector(); MidiChannel channel; @@ -25,14 +25,14 @@ public void setup() { // connect to OOCSI server running on the same machine (localhost) // with the ID "sequencer" for the looper - OOCSI oocsi = new OOCSI(this, "sequencer", "localhost"); - oocsiLooper = new EventRecorder(oocsi, "sequelChannel"); + OOCSI oocsiSequencer = new OOCSI(this, "sequencer", "localhost"); + oocsiLooper = new EventRecorder(oocsiSequencer, "sequelChannel"); oocsiLooper.play(); oocsiLooper.startRecording(); // register a second OOCSI client on the same server that can send events and receive recorded events back - oocsi2 = new OOCSI(this, "player", "localhost"); - oocsi2.subscribe("sequelChannel"); + oocsiPlayer = new OOCSI(this, "player", "localhost"); + oocsiPlayer.subscribe("sequelChannel"); // MIDI sub system MidiBus.list(); @@ -68,7 +68,7 @@ public void mousePressed() { drawEvent(mouseX, mouseY); // save new event to loop - oocsi2.channel("sequelChannel").data("x", mouseX).data("y", mouseY).send(); + oocsiPlayer.channel("sequelChannel").data("x", mouseX).data("y", mouseY).send(); } private void drawEvent(float x, float y) {