A teaching and feedback device for taiko students.

A project by:

Gabriel B. Soares | Lucas Nissenbaum | Adam Jelfo | Adam Harris

CORNELL UNIVERSITY - Fall 2012 (click here for detailed write-up of the project)

Posted on Hackaday

group picture

Adam J, Lucas, Gabriel, Adam H

For our ECE 4760 (Design With Microcontrollers) final project, we designed and built a drum trainer which can be attached to most Japanese drum surfaces that detects and wirelessly transmits different drum hit types to other players’ drum trainers. The trainer is able to determine whether the user makes a “Loud Beat”, a “Soft Beat”, or a “Rim Shot”, and provides feedback in the form of LEDs to tell the user what type of beat they just played. This setup allows us to create several different applications, three of which are:

1) Follow the Leader - One drum player is designated as the “leader”, and as they play the timing of each drum hit get transmitted to all of the “followers” playing along. The “followers” are then notified through LEDs whether they are playing the correct hit type, and whether they are playing at the right tempo.

2) Metronome - A player can set any tempo that they would like by hitting the drum a few times at a certain speed. The trainer averages the times between hits and then provides the player with a blinking LED with a constant tempo.

3) Repeat After Me - For this mode, a player first records a pattern or beat that he would like to repeat. Once they are satisfied with the pattern they created they can begin to repeat the pattern, and the trainer will tell him whether they are playing the same type of notes at the same time.

In addition, we definitely foresee other software applications that can be developed to work with our Taiko Drum Trainer. It was important for us to develop a final project that could be greatly expanded and made more useful over time if necessary.

High Level Design


The idea for this project came about from my involvement in college with a Japanese drumming group called Yamatai. Yamatai is a student-run Taiko group which I joined my freshman year and played with during all four years at Cornell. As a self-run group, one of the main difficulties we encountered every year was training the new class of recruits. Skill levels and percussion backgrounds varied greatly among players, yet we were tasked in making sure that everyone could learn all the pieces and get to a certain level before being allowed to perform. One of the most difficult concepts to teach was timekeeping and we therefore had to focus a couple of weeks practicing with metronomes, and doing drills geared towards making sure everyone was in sync. When the semester for ECE4760 started, I already had a good idea that I wanted to work on a tool that could be used by the group to aid in teaching new recruits the basic skills required to play drums.

The following video is the promotional trailer for Yamatai's Spring semester concert in 2013, and can give a sense of the drum sizes, and sounds they generate.

User Interface:

The main constraint we had to follow for this project was cost. Regardless of what system we decided to use, the total cost had to be less than $100. This was plenty to build this particular system, but since the final application was intended towards drumming groups, most of which operate under very tight budgets and would need to build a dozen or two of these, we decided that our main goal was to make these as cheaply as possible. This meant that we had to use standard parts and could not afford getting fancy with the displays we used and the product design.

When designing the user interface, we needed to be able to make it easy for the user to switch between which mode/application they were using (as well as knowing which mode they were using), and we needed to be able to have them easily see whether they were playing too slowly or too quickly, as well as an indication of what type of hit the device was detecting. To solve these problems, we included several features. We included a simple push button to switch between applications, and included a seven segment display to display a single digit to show the current mode to the user. The seven segment display key is as follows:

We also installed a total of 8 LEDs on the board, grouped into a set of 5 and a set of 3. Depending on the mode the trainer is in, these LEDs serve special purposes. For most modes, the set of 5 LEDs tells the user the speed at which they are playing. If the middle LED is being lit, the user is playing at the same exact speed as the other player (within a margin). If the right LEDs are being lit (colored yellow) then the user is playing too quickly. If the left two LEDs are being lit (colored green), the user is playing too slowly. The set of 3 LEDs usually tell you the type of hit that is being registered as you are playing the drum, with the exception of Metronome mode. The yellow LED indicates a Rim Shot, the red LED indicates a Loud Beat, and the green LED indicates a Soft Beat.

Technical Information:

All of the details for this project can be found in the official Cornell ECE 4760 website by following this link. In that website writeup page we cover the hardware choices for this project (MCU, wireless communication method, piezo sensors, etc.), post the schematics files and layout files, link to the firmware source code (with explanation on state machines, and main design parameters), as well as give the final project BOM (with associated cost).

Overall this project was a great exercise in product design. We had to come up with an idea, formalize requirements (from a usability standpoint), design different modules (for sensing, displaying, transmitting data), prototype a system, write firmware, design PCB, and test the system, all while making sure cost remained as low as possible.