I can't really tell whether these guy's are using multiple speakers on different pins or what - are they? If so, why?
Why not a single speaker, and a simple audio mixer?
I am using three different speakers on three different pins. What's an audio mixer? (Sorry, I'm new)
If tone generation was all you wanted the sketch to do, and you don't need to generate very high frequencies, you might even be able to manage it just by polling micros() to check when it was time to toggle each output. This would use more processing power and not cope with as many outputs/as high frequencies as the interrupt based approach, but would be much easier to understand and get working. Essentially you'd use 'blink without delay' but using micros() instead of millis() to measure really short intervals.
This did seem like a viable solution, but the problem is that I can't understand a word of what he is saying. None of the variables are defined (I assume they are some sort of system variables), and he uses a bunch of bitwise operations that I don't understand. For using the micros() technique, how would I know which frequencies to play? I use notes in a range of an octave or two, so that might also be a factor.
As for tone generation being ALL I wanted to do, I was thinking of adding in some synchronized lights while the song was playing (if that's possible)