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