Each of the team members are musicians, and we identified a common problem in our music career - we could never find free online sheet music to the pieces we wanted to play, but we didn't have the music composition knowledge to create the sheet music ourselves. Thus, we designed a program that would solve this problem and create sheet music based on audio inputted from the computer mic, so that we wouldn't have to. We also believe this program is not only helpful for musicians like us, but also for composers, who would definitely appreciate a faster way of notating their work.
What it does
Mezzo - First, you enter information about the song: title, composer, tempo, time signature, and so on. You sing or play an instrument into your computer’s microphone. Then the computer takes the notes you played an puts them on a musical staff and saves the result as a PDF. Behind the scenes, Mezzo listens to the microphone and determines the frequency of the tones on-the-fly. It converts the list of frequencies to musical notes and estimates the closest note length. The program uses the plain-text music notation ABC to save the composition, then uses standard ABC software to generate the sheet music. Website - The website displays information about Mezzo. It was originally created for the Best .tech Domain Hack, however, there were issues with the domain.
How I built it
Mezzo - We used Java's swing GUI API based on mockups. Java's sampled sound API was used to access the microphone Website - We planned out wireframes before starting on the website, then we found a free html template online, and we built our UI with the template.
Challenges I ran into
Mezzo - We had trouble with the Java compiler - not everything was compiling and it took a while to figure it out. The code also ran early in the execution due to errors in the code, which caused a lot of issues. Website - We tried to use a .tech domain, however, uploading and changing the DNS servers will take up to 72 hours, and thus we had switch domains so that the website content is presentable.
Accomplishments that I'm proud of
Mezzo - Website - We are proud of reformatting a lot of the website to suit our content needs.
What I learned
Mezzo - We learned a lot of java programming. Website - We learned how to work under a tight deadline.
What's next for Mezzo
With regards to future developments, we’re looking into reading a larger variety of sound files - currently, our program is able to read WAV files, but in the future, we'd also like to expand this to AU files (Unix/Linux) and AIFF/AIFF-C files (Apple), which are compatible with JavaSound API, which we are using. Further, we'd like to develop our program so that it can detect lyrics, it offers a wider selection of time signatures, multiple melody lines can be implemented, and it can handle detecting more complex-rhythmed notes, such as triplets, trills, and other embellishments.