Midi Clock

Hello,

I'm working on a project regarding midi clock. I'm trying to read the clock bytes that ableton live sends and do something with that. I'm using this circuit - probably a familiar one :).

Little-scale provided the code:

byte midi_start = 0xfa;
byte midi_stop = 0xfc;
byte midi_clock = 0xf8;
byte midi_continue = 0xfb;
int play_flag = 0;
byte data;

void setup() {
Serial.begin(31250);
pinMode(13, OUTPUT);
}

void loop() {
if(Serial.available() > 0) {
data = Serial.read();
if(data == midi_start) {
play_flag = 1;
}
else if(data == midi_continue) {
play_flag = 1;
}
else if(data == midi_stop) {
play_flag = 0;
}
else if((data == midi_clock) && (play_flag == 1)) {
Sync();
}
} 
}

void Sync() {
// do something for every MIDI Clock pulse when the sequencer is running
digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
delay(10);
}

I can't get it to work. I tried the obvious things:

  • switched the midi jack around (i wasn't certain whether the front was drawn in the picture or the back)
  • checked the midi cable (the midi out light flashes, so it must receive some kind of signal?)
  • measured the voltage across the two midi din jack legs. The voltage was very low: in the order of 30 milliVolts. I would expect the voltage to be way higher.
  • measured the voltage across the +5 and ground (haha this was just 5 :))
  • measured the voltage across the Rx wire and the ground. This was also very low, also about 30 milliVolts.

Now i don't know exactly what voltage levels i should expect, but 30 milliVolts seems kinda low. Also the signal coming from the jack is steady. If ableton sends bytes for every clock pulse, wouldn't that result in a changing signal?

Any help would be greatly appreciated!

Were you able to get this project working ?