Diagram that shows midi map
Controller and app
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)