Inspiration
As lovers of music who have all taken music theory at some point or another and unfortunately do not have perfect pitch, we have all struggled with aural pitch recognition skills. Specifically, identifying and singing intervals pose great difficulty. These skills are crucial to musicianship and a fundamental part of sight singing and improvisation, so we created a way to develop these skills through a fun, gamified application.
What it does
Weaved throughout an immersive storytelling experience, the game provides the user with aural training questions, relating to either interval listening or singing. The user will be asked to identify an interval played through the speakers, or asked to sing a specified interval for the microphone. These responses are verified for accuracy, and the user gains points accordingly.
How we built it
The game is completely built in Python, in Pygame. We used Figma in order to design the UI/UX. One of our group members composed and performed the background music, and we built a library of audio and visual solfege intervals using drawing and musical software to serve as the "answer bank".
Challenges we ran into
We originally wanted to create this project in hardware, but were limited by materials. The pitch matching algorithm took many iterations to achieve desired behavior-- originally, we tried performing a Fourier transform on the input audio signal, but were not consistently producing a correct output. We ended up creating an autocorrelation algorithm, which resulted in higher accuracy. We were also limited by timing in terms of graphics development -- our initial sketches and concepts included more animation and storytelling.
Accomplishments that we're proud of
We are proud of making a game that we would have found helpful and fun when we were learning music theory, creating an autocorrelation pitch matching algorithm, learning how to work with Pygame, and creating a project that enriched our creative, visual, and musical sides as well.
What we learned
We did not have any experience with Pygame before this, and it required a big learning curve. More insight as well was developed in turning UI/UX layouts into a working program. More insight into digital signal processing and limitations posed by nonidealities when working with real data.
What's next for Escape the Musical Forest
Creating more story content (for example, a way for the user to save their progress and allow the story to develop over many sessions). Adding other aural training practice, such as chord and scale recognition. And creating more graphics and soundscape components to make the game feel more immersive.
Built With
- figma
- librosa
- noteflight
- pyaudio
- pygame
- python
Log in or sign up for Devpost to join the conversation.