Experimentación con Arduino para hacer un guante controlador MIDI

Experimentación con Arduino para hacer un guante controlador MIDI

 

Experimentación con Arduino para hacer un guante controlador MIDI. El código fuente está al final de esta página.

Técnica: Arduino, Hairless MIDI Serial, Ableton Live.

Fuente: Arduino Knock, Drum Kit Spikenzielabs, Hairles MIDI Serial, BitKits 8bit Drum Samples para Ableton Live

Midi Drum Kit Arduino

#define DRUM0 0
#define DRUM1 1
#define DRUM2 2
#define DRUM3 3

#define THRESHOLD 200
#define INICIAL 100
#define RETARDO 100

byte val0 = 0;
byte val1 = 0;
byte val2 = 0;
byte val3 = 0;

void setup()
{
Serial.begin(9600);
}

void loop()
{
val0 = analogRead(DRUM0);
val1 = analogRead(DRUM1);
val2 = analogRead(DRUM2);
val3 = analogRead(DRUM3);
//*************************************
if(val0 > THRESHOLD)
{
noteOn(0x90, 0x32, 0x77);
delay(RETARDO);
} else if(val0 > INICIAL)
{
noteOn(0x90, 0x32, 0x77);
delay(RETARDO);
}
//*************************************
if(val1 > THRESHOLD)
{
noteOn(0x90, 0x33, 0x77);
delay(RETARDO);
} else if(val1 > INICIAL)
{
noteOn(0x90, 0x33, 0x77);
delay(RETARDO);
}
//*************************************
if(val2 > THRESHOLD)
{
noteOn(0x90, 0x34, 0x77);
delay(RETARDO);
} else if(val2 > INICIAL)
{
noteOn(0x90, 0x34, 0x77);
delay(RETARDO);
}
//*************************************
if(val3 > THRESHOLD)
{
noteOn(0x90, 0x35, 0x77);
delay(RETARDO);
} else if(val3 > INICIAL)
{
noteOn(0x90, 0x35, 0x77);
delay(RETARDO);
}

}

void noteOn(int cmd, int pitch, int velocity) {
Serial.write(cmd);
Serial.write(pitch);
Serial.write(velocity);
}