@chupo_cro: I've tried your code, and it seems to fix the problem, thanks.
I don't remember how was Shiru's code before he fixed the tempo problem, but now we have both the correct tempo, and the songs won't halt after a while (the "bourrasque" tune lasts 2 minutes, until the end, after it loops, instead of 10 seconds before)
Like for the other engines, we can add a nice led for lighning during the beats:
if(drum_pulse_length)
{
--drum_pulse_length;
digitalWrite(LED,HIGH);
}