Our inspiration was from a desire to use an app controller we had never tried before

What it does

This app reads midi input from the midi controller and uses that input to play our trainer. This app is meant to help increase the speed at which you can recognize piano notes. It tracks your note-streak (consecutive correct presses), and average response time, and generates a report at the end of training. A note (not the correct one) plays for each key that needs to be pressed. The game ends when an incorrect note is pressed, or the player allows a note to fall off the screen.

How we built it

We used python 3 and the pygame 1.9.5 library to read midi input and output

Challenges we ran into

We were unable to implement all of the features we wanted. Also, on macOS we had trouble with midi output devices

Accomplishments that we're proud of

We are especially proud of the fact that we taught ourselves pygame during the course of RowdyHacks. We had zero knowledge on how to get input from the controller, let alone use it in any meaningful way.

What we learned

We learned that developing one project on two different operating systems has its fair share of challenges. We also learned that there are some relatively intuitive libraries for python that have interesting functionalities.

What's next for MIDI Piano Trainer

These are some of the things we wish we could have implemented: 1.) Play correct sound for each note pressed, or each note to be pressed 2.) Utilize the pads and dials to switch instruments, change difficulty, and set volume cap 3.) Keep running record of scores achieved 4.) Generate random training sets that the user can play (basically levels) 5.) Different training modes (learn harmony, tempo, ear-training)

Built With

Share this project: