Simon Says is a contraption which captures a beat on a drum pad, and then continuously replays this beat by tapping a drum stick on the table. By pressing the record button, you can tap along to the beat to add additional notes. Here’s a brief video to illustrate the concept:
Here’s the state machine diagram:
The construction is straight forward. The Rock Band drum pad drives a button connected to a pulldown circuit, which tells the Arduino that there was a beat. Initially the drum pad was made with a piezoelectric element, but the readings were unfortunately too erratic. The drum stick is connected via paper clip to a small servo motor. This motor is fastened into the box that my Arduino shipped with.
The program is somewhat complex. The beats are captured in an array of ticks, where each tick indicates the number of loops iterations that have occurred since the beginning. I also had to write an array merging algorithm for the live capture state, in which the existing beats need to be merged with the newly captured pattern. You can see the sketch here: piezo_knock_tap