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; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + (int)(pow(2,(knobValue[knob]-69)/12.0)*440) + " Hz"); if(printChange) println(knobName[knob] + " is: " + (int)(pow(2,(knobValue[knob]-69)/12.0)*440) + " Hz");
//(2^((p-69)/12))*440 //(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; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); if(printChange) println(knobName[knob] + " is: " + knobValue[knob]);
int semi =(knobValue[knob]+24)*2+16; 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob] + " (" + waveform[knobValue[knob]] + ")"); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + (int)(pow(2,(knobValue[knob]-69)/12.0)*440) + " Hz"); if(printChange) println(knobName[knob] + " is: " + (int)(pow(2,(knobValue[knob]-69)/12.0)*440) + " Hz");
//(2^((p-69)/12))*440 //(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; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); if(printChange) println(knobName[knob] + " is: " + knobValue[knob]);
int semi =(knobValue[knob]+24)*2+16; 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob] + " (" + waveform[knobValue[knob]] + ")"); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + (int)(pow(2,(knobValue[knob]-69)/12.0)*440) + " Hz"); 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; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); if(printChange) println(knobName[knob] + " is: " + knobValue[knob]);
int semi =(knobValue[knob]+24)*2+16; 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob] + " (" + waveform[knobValue[knob]] + ")"); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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) { if(knobValue[knob] != val) {
knobValue[knob] = val; knobValue[knob] = val;
if(printChange) println(knobName[knob] + " is: " + knobValue[knob]); 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; Serial port0;
boolean printChange = true; boolean printChange = true;
boolean serialBusy; boolean serialBusy = false;
int backgroundColor = color(0,0,0); int backgroundColor = color(0,0,0);
int knobColor = color(235,103,295); int knobColor = color(235,103,295);
@ -34,7 +34,7 @@ void setup() {
input = RWMidi.getInputDevices()[0].createInput(this); input = RWMidi.getInputDevices()[0].createInput(this);
//println(Serial.list()); //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 // The Music object is automatically instantiated when the header file is
// included. Make calls to the Music objects with "Music.function(args)". // included. Make calls to the Music objects with "Music.function(args)".
// You still need to call Music.init() in the setup() function below. // You still need to call Music.init() in the setup() function below.
@ -16,6 +7,10 @@
#define MIDI_CHANNEL 1 #define MIDI_CHANNEL 1
#include <Music.h> #include <Music.h>
long timeNow = 0;
long lastTime = 0;
long delayTime = 400; //in milliseconds
void setup() { void setup() {
// We initialise the sound engine by calling Music.init() which outputs a tone // We initialise the sound engine by calling Music.init() which outputs a tone
@ -27,8 +22,15 @@ void setup() {
void loop() { 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(); 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;
}
} }