Team Name
Piano Heroes
Timeline
Fall 2021 – Spring 2022
Students
- Ryan Tucholski
- Reid Yeager
- Mohammad Abdellatif
- Henry Isobe
- Myles Guiam
Abstract
Piano Hero is the combination of projector, MIDI keyboard, and physical projection surface hardware combined with simulation software. Together, they allow you to play a projected game, in which you play notes as they cascade down a screen towards their respective keys. Other important features include the creation of your own MIDI files by playing a song on the keyboard, as well as an educational mode, to learn how to play songs at the user’s own pace. The hardware includes a mounted projector, a Raspberry Pi, HDMI and MIDI cables, a MIDI compatible keyboard, and a
board for the game to be projected onto. The board will sit on top of the keyboard, parallel to the keys and acting as an extension of the physical keyboard. The raspberry pi will be able to read what keys are pressed and when using the MIDI output. The pi-loaded software will use this information to determine the position of lights projected onto the board, so that the user will be able to interface with the product. The notes will only move if the user presses the correct buttons and will not flow down the screen on their own.
Background
Piano Hero is an interactive game and learning tool. The main idea is based on the game Guitar Hero which has a controller in the shape of a guitar but instead of strings, it has five buttons and the correct note to play flows down a screen. We thought that it would be fun to be able to play the same style of game on the piano. For Piano Hero, we decided to make something a little more intuitive where if you play the game, you are really playing a song on the piano.
Project Requirements
Display key press and its duration
“Guitar Hero” style interface
Song selection interface
Read input from a predetermined file
Accuracy score
Operates on an 88 key keyboard
Recording mode
Scans in sheet music
Difficulty settings
Composer Mode
System Overview
Piano Hero is a set of hardware and software that allows the user to play a game where they can play
along with a song on a MIDI capable keyboard. The user will select a song to load then attempt to
play the song’s notes as they descend the window towards the piano’s keys. The user’s input will be
interpreted and scored against the note which will affect the displayed score user interface component.
The user’s input, file loading, and game display will be handled by the application’s Platform layer,
rendering both the text and the notes for display will be handled by its Renderer layer. The scoring,
note input interpretation, file serialization and user interface modification will occur in the Game layer.

Future Work
Several features are planned as potential future implementations to build upon the current end product. These include:
Online Leaderboard
Cloud-based data storage
Compatible with Lilypond files
Synthesizer
Project Files
Project Charter (link)
System Requirements Specification (link)
Architectural Design Specification (link)
Detailed Design Specification (link)
Poster (link)
Github (link)