You guys got it sussed. The increment comes to at the begining of the if statement, it probably should come at the end and then you can reset it to '0' It must have been a little early before as well
if ((data == midi_clock) && (play_flag == 1)) {
if (clk / 6) digitalWrite(tempoled, LOW); // this should light it up for 25% of the time
else digitalWrite(tempoled, HIGH);
Serial.write(midi_clock); // send midi clock to out... Provides tempo!
clk++;
clk = clk % 24; // 24 clock messages per beat
}
and i actually think that it should be like this for continue, you don't reset the clock it is 'continue' after all
if (data == midi_continue) { // if midi in continue
Serial.write(midi_continue); // send midi out continue
play_flag = 1;
// clk=0; don't reset the clock for continue
}