Inspiration

It is often super difficult for beginner music students to find sheet music for songs they like or hear. This project hopes to alleviate that challenge so that they can practice easily.

What it does

This tool is a CLI python project which transforms .wav and .mp3 files into an image of the correct sheet music and notes.

How we built it

This project is built entirely in Python using pygame, soundfile, numpy, and numerous signal processing techniques.

Challenges we ran into

  • Pitch Detection: Requires Fourier Analysis to find the fundamental frequencies of the wave
  • BPM Detection: Requires amplitude spike detection to track beat and tempo
  • Sheet Music Generation: Need to count the duration of notes and display accordingly using PyGame ## Accomplishments that we're proud of
  • Having a 100% accurate "Mary Had a Little Lamb" piece sheet music generation
  • Detecting basic chord structures and BPMs
  • Creating a custom intermediary file format to store musical data

What's next for By Ear

We plan to expand the project to detect chord progression songs, a wider range of BPMs, and different key signatures.

Built With

Share this project:

Updates