Made some fixes to the MIDI processing sketch and MIDI example

This commit is contained in:
Jakob Bak 2013-09-26 20:02:44 +02:00
parent 59184187c0
commit c21d363526
6 changed files with 36 additions and 34 deletions

View File

@ -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]);
}
}

View File

@ -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);
}

View File

View File

View File

@ -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 <Music.h>
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;
}
}