Bluespec. As such, the vast majority of the implementation was written in Bluespec, except for the low-level interfacing models for ingesting an audio stream and outputting serial data.
The project proposal submitted for the class provides an informal overview of the project.
bt was implemented on a Spartan-3AN Starter Kit, with the addition of a small biasing circuit to correct the input range of the audio signal.
The following screenshot shows bt in operation. Each metronome reports its error rate. The 124-, 125-, and 126-BPM metronomes report very little error, so bt correctly estimates that the tempo is 125 BPM.