As a singer, I have often been a little frustrated with how much of a pain it can sometimes be to warmup if you don't have a piano handy, or you have to use a Youtube video that isn't customized to your range. So I decided to create something useful for me - a program for vocal warmups
What it does
This program is capable of performing several standard vocal warmups, as listed in the program, as well as provide pitch for a starting note
How I built it
Using a library called JythonMusic. Essentially I was writing in the python programming language, but the actual framework of a lot of the musical pieces of the program were written using Java
Challenges I ran into
There's math involved in music, who knew? It took me awhile to really get some of the warmups working because of how musical scales work - there are both half steps and whole steps mixed in, which means you aren't increasing or decreasing the pitch by the same value every time. Additionally, since I was working with an unfamiliar library, I had to learn everything I needed on the fly.
Accomplishments that I'm proud of
I'm proud to have done this all on my own, without anyone else's help. I'm also proud to have created a program that is useful specifically to me - and if I keep working on it, maybe to other musicians as well some day!
What I learned
Outputting sound is not standard in a lot of programming languages! I learned how to write code that outputs music though and I think that is something that could be a lot of fun for me in the future as both a programmer and a musician.
What's next for Music Coach
- Finish adding all the warmups I want to add
- Create a GUI to make this all a little easier for non-computer science people, or just people unfamiliar with terminal to use
- Add functionality for custom warmups inputted either via file or manually inputted
- Stretch goal is to use the microphone to tell you how accurate you are to the pitches being outputted to help singers know where their problems lie. This is literally what my voice coach wants me to do with these types of warmups so having the program keep track of it would be hugely helpful.