Summary: This module explains our motivation for undertaking the task of piano note detection, and background information on the mathematics of music that is relevant to our project.
Note: Your browser may not currently support MathML. See our browser support page for additional details. You can always view the correct math in the PDF version.
Reading a song on sheet music and then playing it on an instrument is a completable task for any musician. This century, computer software has also been designed to do just this. Programs can create audio files (music we can hear) from sheet music very effectively for a whole range of instruments.
A major problem is that the reverse task, listening to or recording audible music and then generating the sheet music for that piece, is much more difficult to complete for both computers and the talented musician alike. Our goal is to take a recording of a piano and translate it into some form of sheet music with high accuracy.
This program could prove very useful for composers in particular. A composer I once knew would sit down at a piano and begin playing completely improvisationally, writing the song as he went. However, when he finished, he could never remember what he had just played. With this program, he could take a recording of himself, and generate the sheet music of his new composition. It is with composers such as him in mind that we undertake this project.
All sounds, including music, that we hear are actually vibrations in the air that propagate through as a wave. This wave can be represented as a signal transmitted to the ear over time. Through Fourier analysis, this signal can be represented as a sum of different frequency waves each weighted with its own "strength". These different frequencies cause one noise to sound "higher" or "lower" than another. In fact, the pitch of a noise, or how high or low it sounds, is determined entirely by its frequencies and their strengths.
Every musical note is a noise that is concentrated at a particular frequency. In typical musical formats, all musical notes are divided up into octaves, or repeating sets of notes that sound like a higher or lower version of the octaves around it. Each octave contains 12 different notes denoted C, C#, D, D#, E, F, F#, G, G#, A, A#, and B, in increasing order. The notes denoted with a sharp (#) symbol are so denoted because they are slightly higher than the note sharing the same letter. However, the same set of notes can be denoted using flats (b). This indicates that a note is slightly lower than the note that shares the same letter. Thus F# and Gb are the same note, and because they sound the same, they are indistinguishable by sound alone. These notes will be denoted as F#/Gb for the rest of this project. On a piano, the white keys are the unaltered letter notes, while the black keys are the notes with sharps or flats. Finally, every note has a number on the end denoting which octave it is in, with higher numbers meaning higher pitch. For example, middle C is C4.
Mathematically, the frequency of each note is exactly
Every song has a tempo, or a speed at which the music is to be played. Tempo is defined as beats per minute, where a beat is usually defined to be a particular length of note. All notes lengths are then given a value, such as a quarter or a half. This value determines how many beats that note should last. Interestingly enough, a beat is usually defined to be one quarter note, and thus a quarter note is 1 beat, a half note is 2 beats, and an eighth note is half a beat. Additionally, a dot can be added to a note to add half its length to it. So a dotted quarter note is 1.5 beats, a dotted eighth note is .75 beats, and a dotted half note is 3 beats.