diff --git a/software/apps/Processing/Music/Music_Controls_4/Controller_Functions.pde b/software/apps/Processing/Music/Music_Controls_4/Controller_Functions.pde index 7a27b4b..92a5820 100644 --- a/software/apps/Processing/Music/Music_Controls_4/Controller_Functions.pde +++ b/software/apps/Processing/Music/Music_Controls_4/Controller_Functions.pde @@ -206,7 +206,7 @@ void freq1(int val) knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + (int)(pow(2,(knobValue[knob]-69)/12.0)*440) + " Hz"); //(2^((p-69)/12))*440 - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -217,7 +217,7 @@ void semi1(int val) knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); int semi =(knobValue[knob]+24)*2+16; - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)semi); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)semi); } } @@ -227,7 +227,7 @@ void detune1(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -237,7 +237,7 @@ void gain1(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -247,7 +247,7 @@ void wave1(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob] + " (" + waveform[knobValue[knob]] + ")"); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)(knobValue[knob]*8)); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)(knobValue[knob]*8)); } } @@ -257,7 +257,7 @@ void fm1(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -268,7 +268,7 @@ void freq2(int val) knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + (int)(pow(2,(knobValue[knob]-69)/12.0)*440) + " Hz"); //(2^((p-69)/12))*440 - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -279,7 +279,7 @@ void semi2(int val) knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); int semi =(knobValue[knob]+24)*2+16; - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)semi); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)semi); } } @@ -289,7 +289,7 @@ void detune2(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -299,7 +299,7 @@ void gain2(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -309,7 +309,7 @@ void wave2(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob] + " (" + waveform[knobValue[knob]] + ")"); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)(knobValue[knob]*8)); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)(knobValue[knob]*8)); } } @@ -319,7 +319,7 @@ void fm2(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -329,7 +329,7 @@ void freq3(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + (int)(pow(2,(knobValue[knob]-69)/12.0)*440) + " Hz"); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -340,7 +340,7 @@ void semi3(int val) knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); int semi =(knobValue[knob]+24)*2+16; - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)semi); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)semi); } } @@ -350,7 +350,7 @@ void detune3(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -360,7 +360,7 @@ void gain3(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -370,7 +370,7 @@ void wave3(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob] + " (" + waveform[knobValue[knob]] + ")"); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)(knobValue[knob]*8)); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)(knobValue[knob]*8)); } } @@ -380,7 +380,7 @@ void fm3(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -390,7 +390,7 @@ void attack(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -400,7 +400,7 @@ void decay(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -410,7 +410,7 @@ void sustain(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } @@ -420,7 +420,7 @@ void release(int val) if(knobValue[knob] != val) { knobValue[knob] = val; if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); - if(!serialBusy) sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); + sendControlChange((byte)0, (byte)knobMidiCC[knob], (byte)knobValue[knob]); } } diff --git a/software/apps/Processing/Music/Music_Controls_4/Music_Controls_4.pde b/software/apps/Processing/Music/Music_Controls_4/Music_Controls_4.pde index d498eee..dbcb920 100644 --- a/software/apps/Processing/Music/Music_Controls_4/Music_Controls_4.pde +++ b/software/apps/Processing/Music/Music_Controls_4/Music_Controls_4.pde @@ -9,7 +9,7 @@ MidiInput input; Serial port0; boolean printChange = true; -boolean serialBusy; +boolean serialBusy = false; int backgroundColor = color(0,0,0); int knobColor = color(235,103,295); @@ -34,7 +34,7 @@ void setup() { input = RWMidi.getInputDevices()[0].createInput(this); //println(Serial.list()); - port0 = new Serial(this, Serial.list()[0], 9600); + port0 = new Serial(this, Serial.list()[12], 9600); } diff --git a/software/apps/Processing/Music/Music_Controls_4/knobValues.txt b/software/apps/Processing/Music/Music_Controls_4/knobValues.txt index dc2db23..1ee6ed7 100644 Binary files a/software/apps/Processing/Music/Music_Controls_4/knobValues.txt and b/software/apps/Processing/Music/Music_Controls_4/knobValues.txt differ diff --git a/software/apps/Processing/Music/Music_Controls_4/midi_handling.pde b/software/apps/Processing/Music/Music_Controls_4/midi_handling.pde old mode 100644 new mode 100755 diff --git a/software/apps/Processing/Music/Music_Controls_4/saving_loading.pde b/software/apps/Processing/Music/Music_Controls_4/saving_loading.pde old mode 100644 new mode 100755 diff --git a/software/lib/MMM/examples/Music/_8_midi/_8_midi.ino b/software/lib/MMM/examples/Music/_8_midi/_8_midi.ino index 4388997..ff207a3 100644 --- a/software/lib/MMM/examples/Music/_8_midi/_8_midi.ino +++ b/software/lib/MMM/examples/Music/_8_midi/_8_midi.ino @@ -1,12 +1,3 @@ -// You can set the number of oscillators (1 to 3) and the bit depth of the -// oscillators (8 or 12 bit). These settings must be defined before the -// inclusion of the MMM library files. They default to 1 osciallator -// and 8bit respectively. - -#define NUM_OSCILLATORS 3 -#define BIT_DEPTH 8 -#define MIDI - // The Music object is automatically instantiated when the header file is // included. Make calls to the Music objects with "Music.function(args)". // You still need to call Music.init() in the setup() function below. @@ -16,6 +7,10 @@ #define MIDI_CHANNEL 1 #include +long timeNow = 0; +long lastTime = 0; +long delayTime = 400; //in milliseconds + void setup() { // We initialise the sound engine by calling Music.init() which outputs a tone @@ -27,8 +22,15 @@ void setup() { void loop() { - // In order to send MIDI to the sketch, use the Music_Controls.pde Processing sketch + // In order to send MIDI to the sketch, use the Music_Controls_4.pde Processing sketch Midi.checkMidi(); + // The below code is an example of triggering the noteOn function to play some sounds + timeNow = millis(); + if((timeNow - lastTime) > delayTime) { + Music.noteOn(64); + lastTime = timeNow; + + } }