Concurrent Tones on the Arduino
The goal of the project is to play more than one tone at a time on an Arduino.
No doubt this has been done before but here is my take.
The "Green Light Go" webpage (http://greenlightgo.org/projects/midi-to-arduino/) has a Midi to Arduino Sketch converter. It's a really good place to start, upload your midi and download your Arduino Sketch, and play. It uses the Arduino tone library so it can only play one channel at a time. Even so it does a pretty good job.
I did not initially understand why the channels would "drop out" until I realised the tone library was not concurrent.
This project looks at a concurrent tones generation. The core interrupt service routine is from my modem project.
If setting hardware registers and interrupts service routines frighten you then perhaps this is not a project for you.
Okay, its done. The Files area contains an executable the converts MIDI files into Arduino sketches. Let me know if you have any problems.
There are two examples to try.