From 5243d6c8455f469f944098f9583852c0d4a97908 Mon Sep 17 00:00:00 2001 From: Jakob Bak Date: Thu, 6 Jun 2013 16:39:18 +0200 Subject: [PATCH] Fixed? a problem with MIDI when running Processing sketch Music_Controls and playing notes from sequencer program (like Ableton Live) at the same time. --- .../Music/Music_Controls/knobValues.txt | Bin 19 -> 0 bytes .../Music/Music_Controls/saving_loading.pde | 112 -------- .../Controller_Functions.pde | 241 ++++++++++++------ .../Music_Controls_4.pde} | 12 +- .../Music/Music_Controls_4/knobValues.txt | Bin 0 -> 22 bytes .../midi_handling.pde | 8 +- .../Music/Music_Controls_4/saving_loading.pde | 124 +++++++++ software/lib/MMM/Music.h | 3 + 8 files changed, 304 insertions(+), 196 deletions(-) delete mode 100644 software/apps/Processing/Music/Music_Controls/knobValues.txt delete mode 100644 software/apps/Processing/Music/Music_Controls/saving_loading.pde rename software/apps/Processing/Music/{Music_Controls => Music_Controls_4}/Controller_Functions.pde (51%) rename software/apps/Processing/Music/{Music_Controls/Music_Controls.pde => Music_Controls_4/Music_Controls_4.pde} (86%) create mode 100644 software/apps/Processing/Music/Music_Controls_4/knobValues.txt rename software/apps/Processing/Music/{Music_Controls => Music_Controls_4}/midi_handling.pde (91%) create mode 100644 software/apps/Processing/Music/Music_Controls_4/saving_loading.pde diff --git a/software/apps/Processing/Music/Music_Controls/knobValues.txt b/software/apps/Processing/Music/Music_Controls/knobValues.txt deleted file mode 100644 index a60b1cbcac3274d9ee1d4a19010292fd590fd53f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19 acmZ=@aE)MeV7IGha`@s<&%);=mIweVlmx2) diff --git a/software/apps/Processing/Music/Music_Controls/saving_loading.pde b/software/apps/Processing/Music/Music_Controls/saving_loading.pde deleted file mode 100644 index b4f53a6..0000000 --- a/software/apps/Processing/Music/Music_Controls/saving_loading.pde +++ /dev/null @@ -1,112 +0,0 @@ -byte[] savedKnobValues = new byte[numKnobs]; -byte[] loadedKnobValues = new byte[numKnobs]; - - -void loadKnobValues() { - - loadedKnobValues = loadBytes("knobValues.txt"); - - for(int i=0; i{ literal 0 HcmV?d00001 diff --git a/software/apps/Processing/Music/Music_Controls/midi_handling.pde b/software/apps/Processing/Music/Music_Controls_4/midi_handling.pde similarity index 91% rename from software/apps/Processing/Music/Music_Controls/midi_handling.pde rename to software/apps/Processing/Music/Music_Controls_4/midi_handling.pde index 2a943ff..712671c 100644 --- a/software/apps/Processing/Music/Music_Controls/midi_handling.pde +++ b/software/apps/Processing/Music/Music_Controls_4/midi_handling.pde @@ -32,22 +32,24 @@ void sendNoteOn(byte channel, byte pitch, byte velocity) { byte noteOn = byte(0x90 | channel); + serialBusy = true; port0.write(noteOn); port0.write(pitch); port0.write(velocity); //println('\n' + hex(noteOn) + " " + hex(pitch) + " " + hex(velocity)); - + serialBusy = false; } void sendNoteOff(byte channel, byte pitch, byte velocity) { byte noteOff = byte(0x80 | channel); + serialBusy = true; port0.write(noteOff); port0.write(pitch); port0.write(velocity); //println('\n' + hex(noteOff) + " " + hex(pitch) + " " + hex(velocity)); - + serialBusy = false; } void sendControlChange(byte channel, byte CC, byte value) { @@ -58,9 +60,11 @@ void sendControlChange(byte channel, byte CC, byte value) { byte controlChange = byte(0xB0 | channel); + serialBusy = true; port0.write(controlChange); port0.write(CC); port0.write(value); + serialBusy = false; //println('\n' + hex(controlChange) + " " + hex(CC) + " " + hex(value)); } } diff --git a/software/apps/Processing/Music/Music_Controls_4/saving_loading.pde b/software/apps/Processing/Music/Music_Controls_4/saving_loading.pde new file mode 100644 index 0000000..708475d --- /dev/null +++ b/software/apps/Processing/Music/Music_Controls_4/saving_loading.pde @@ -0,0 +1,124 @@ +byte[] savedKnobValues = new byte[numKnobs]; +byte[] loadedKnobValues = new byte[numKnobs]; + + +void loadKnobValues() { + + loadedKnobValues = loadBytes("knobValues.txt"); + + for(int i=0; i 32) Serial.read(); while(Serial.available() > 0) { data = Serial.read(); @@ -1283,6 +1284,7 @@ void MMidi::checkMidi() midiBuffer[midiBufferIndex] = data; midiBufferIndex++; if (midiBufferIndex > 2) { + midiRead = false; midiHandler(); } } @@ -1472,6 +1474,7 @@ void MMidi::controller(uint8_t channel, uint8_t number, uint8_t value) { Music.setRelease(value); break; default: + //Music.setFM2(value); break; } }