Projects

(Please excuse this logo design, we were a group of engineers, not artists!)

The Percussion Pal

Senior Design Project

Problem Statement: Learning to play an instrument can be difficult. It can require hand eye coordination that many people are not used to. There already exist many products that help guitarists master the early stages of learning guitar (i.e. Rocksmith and Fretlight), but there are no solutions that help drummers learn with direct visual feedback.

Solution: The Percussion Pal! With this new device, aspiring drummers can learn to play the drums alongside direct visual cues showing them when and where to hit their drums. While the drummer rocks out, the Percussion Pal will monitor their playing and grade them on accuracy at the end of their performance.

Overview:

Using a Raspberry Pi, a touchscreen, vibration sensors, and LEDs, we created a system that would allow the user to pick a drum pattern/song and then show them how to play it by flashing the LEDs on the appropriate pieces of the drum kit. The vibration sensors were mounted on each piece of the kit so we could detect whether or not the user hit the correct drum piece at the right time.


Here is an example of the Percussion Pal in action with a not-so-good drummer (me):

20190417_200714.mp4

This shaky performance from a guitarist who always says that the drums are "so easy a caveman could do it" resulted in an accuracy rating of 54% as shown below:

Challenges

We had 3 major challenges in creating this project:

  1. Mounting the LED/vibration sensor to the drum pieces and having them stay mounted during a performance.

  2. Tuning the hit detection algorithm and the sensitivity of the vibration sensors to allow us filter out vibrations caused by hits on other parts of the drum kit while still detecting correct hits on the given drum piece.

  3. Preventing GUI lockups due to background processing.

Solutions:

  1. Use special clamps with rubber hooks that fit well around the metal rims on the sides of a standard drum kit.

  2. Use microphone sensors for bassier pieces (toms, kick, snare) and use vibration sensors for the hi-hats and cymbals. The microphones were less sensitive to the strong vibrations that came from other nearby drum pieces (especially the kick drum). Additional signal filtering was done in software to remove erroneous "hits". While our final algorithm was not 100% accurate, our testing showed we were getting at least 90% accuracy in our hit detection!

  3. Used a multithreaded scheme to distribute system resources so we could provide immediate user feedback. Worked like a charm!

Me and my teammates rockin' out!

Conclusion

Overall I had a lot of fun with this project! I got to take the lead as the sole programmer and I got to work on a lot of the electrical design as well, so I really got a large breadth of experience in creating this. My teammates and I were all really happy with how it turned out, and we were glad that we got to make a product that combined our interested in music and engineering.