Looking at the huge library of music education assistance apps that already exist, all we could ask ourselves was: "What hasn't been done yet?" Everything imaginable has already been done from metronomes, tuners, drones, timers, practice journals, sound recordings, sheet music databases, music makers, and even virtually playable instruments. That's when this idea came to us. Our visualization of the app included a program that would be silly and exciting, while still achieving a clear goal. Why create something that already exists and make it boring? As a group of four members who have all played instruments, we wanted to target and spice up one of the most enduring processes: practice. So we created what we call Practice Makes Perfect, an app along with a complementary web-tool PracticeBuddy designed to make one of the most grueling parts of instrument playing far more interactive, intuitive, and innovative.
What it does
Our app has four parts to it, a timer to keep track of your practice time, a metronome, to use while you practice, a xylophone that acts both as a fun playable instrument and a drone for when you need to tune, and finally a complementary practice web-tool.
Let's first take a look at the timer. One of the most important things to practicing instruments is being able to manage your time, so in consideration of that, we provide a sleek timer that easily displays the time left in your session. However, as we conceptualized everything, we realized one of the most annoying parts of a timer is the moments where you have to not only set the timer's duration, but also decide how long you wish to practice. With our app, neither becomes an issue as we provide a new level of ingenuity where the musician, with a single press of a button, will be given a practice time and may immediately begin practicing. And of course there is now ay of stopping the timer because that would be inefficient to the practitioner. Less time fiddling offers more time to practice (unless your practicing how to fiddle).
The second section is the xylophone and drone. Before anyone practices anything, the tuning must be checked. Beginning from a C, we cover a full scale of notes for the musician to adjust their tuning to. Unfortunately, after thorough research, we came to the conclusion that tuning is by far one of the most pure and honest forms of practice, and thus shouldn't and can't be simplified any further. Without a in-tune instrument, there is no music. While we couldn't provide a simplification for a drone, we were able to develop the drone to have a dual functionality as a xylophone. The xylophone aims to act as a quick breather for the musician to have a little fun and maybe play a little song.
The third part is the metronome. No good musician doesn't practice with a metronome and as musicians and developers, we fully understand this. We also realized that the human brain has enormous capabilities, so to cater toward these skills, we provided a manual metronome. We figured having an automated tempo measure would be too simple for the musician, so instead, we are making the musician create the beat themselves by tapping a button on the screen for every beat. We believe we have created a tool that allows the musician to embrace their inner pulse and train themselves to be truly accountable.
Finally, we reach what we believe to be something that is very innovative: a complementary web-tool PracticeBuddy. This web-tool is our own special feature that allows the musician to record their own videos of themselves practicing and proceed to upload onto the web to share with friends. Using this web-tool, you can create your own account with a proper authentication system. We believe PracticeBuddy is key to the entire product because it ensures accountability of the musician to practice by offering a place for them to log their practice for the world to see.
<<<This is obviously 116 bpm
How we built it
We built the program using Flutter. For the timer page, we used various flutter widgets and the percentcircleindicator package. For the drone page, we employed an audio player package that allowed us to emit sound which we were then able to connect and correlate various sounds to certain buttons on the screen. For the metronome page, we used various flutter widgets. Our complementary web-tool was designed using Ruby on Rails, HTML, and Bootstrap CSS.
Challenges we ran into
One of the largest challenges we ran into was that the audio player appeared to not work and play sounds under certain conditions. We were able to find a solution eventually after several hours of tweaking and perseverance. Another challenge we found ourselves facing was that not having done such an event at such a scale, our skills were rather rusty, so completing certain tasks that we would have previously found much more manageable became much more tedious and tiring.
Accomplishments that we're proud of
Our largest accomplishment is that we were able to successfully to get multiple pages to work as intended. The timer is able to successfully start and stop with a visual that shows the time left, the drone is able to successfully display buttons where if each one were to be pressed, then a different, distinct, and in-tune sound would play, and the metronome page where we generously catered toward the human brain's capabilities.
What we learned
We were able to learn various new things throughout this experience. One of our biggest lessons is that perhaps more prior preparation like reviewing past projects to refresh our minds of the language may have helped us perform noticeably better.
What's next for Practice Makes Perfect
In the future, we wish to add a new page that helps in the tuning process. Rather than just having a note that you can play from the app, we wish to also have a feature where the app can recognize sound playing, and then display visually how in-tune or out-of-tune their playing is. However, being that our app is an impractical app, we wish to design this feature so that if a player matches the in-tune tone, then the tuner will purposefully guide you to play sharp or flat. Some other fun features we hope to add is a sound bank for the drone, so if the user wished, they could have something like a man screaming as the drone. As for PracticeBuddy, we aim to add a following/follower feature.