<< Chapter < Page Chapter >> Page >
A method to determine the frequencies of the notes that a piano is playing using known times that notes are played.


We now want to find the frequency that each note is played at. To do this, we want to isolate each note using the times provided by the note onset-detection code. Our program uses a simple rectangular window to get the part of the song we want to analyze. Rectangular windows introduce some high-frequency noise to the spectrum because both ends of the sound vector now have steep edges, but it is a quick method and it did not noticeably impact the performance of the code.

Windowed song

The above song was windowed using a rectangular window function.

Frequency spectrum

Now that we have a single note isolated, we take its Fourier transform and normalize it so we can analyze it in the frequency domain. The note has strong peaks at frequencies which correspond to frequencies of the note which was played. Harmonics of the note also appear quite strong, depending on the specific piano used to play the note and the note itself.

Frequency spectrum of a piano note

The FFT of the note being played. Notice the peaks that correspond to fundamental frequencies being played and their harmonics

First, we must determine that a note is being played at all. If a note is being played, there will be peaks in the frequency spectrum that are large compared to the rest of the spectrum. We determined that if peaks exist with a magnitude of 100 or greater, that a note was certainly being played. This algorithm runs into some trouble with very soft parts of songs, but is very reliable for most songs.

In order to determine which notes are being played, we use a simple threshold detector. If the peak is above a certain threshold (our final code uses 0.1), then we mark it as a candidate for being a note that was played. The peak must also be far enough away from other peaks so that we do not register a double-peak. The program then iterates over all the candidates to determine which are actual notes being played and which are harmonics.

Harmonics of a vibrating string occur at integer multiples of the fundamental frequency. Since a piano consists of many vibrating strings, we know that a peak should show up at frequencies corresponding to integer multiples of the note that is being played. Knowing this, we can always determine that the peak with the lowest frequency must be a note being played because it cannot be a multiple of any lower frequencies. Using this lowest frequency, we then remove any harmonics that are integer multiples of it. We then search for harmonics of the next-lowest frequency peak that is still a candidate, and repeat until we have determined that every remaining peak is not a harmonic of any other peak.

Unfortunately, octaves present a unique challenge. The note one octave above any note occurs at twice the frequency of the lower note, which is the same frequency as its second harmonic. There is no sure-fire way to determine when a peak is a harmonic and when it is a second note being played one octave above the first note, so we implemented another threshold system. If the peak in question is more than .3 times the value of the lower-frequency peak, then our program interprets it as a second note being played instead of a harmonic. This value seems to work in most cases. Harmonics above the second tend to be very weak in the frequency domain, but they could potentially cause a problem on certain pianos.

One of the hardest parts of finding the peaks is setting a good threshold value. It should be low enough that all the necessary peaks are set as candidates, but high enough that the noise is never picked up. We square the spectrum to get the power spectrum, which makes the peaks stand out an allows us to easily see where we should set the threshold. Changing threshold values is much easier when looking at this view.

Power spectrum of a piano note

The power spectrum of the note being played with the threshold value shown. The first two peaks are determined to be notes being played. The third note is located at twice the frequency of the second (D5) and less than .3 times the height of the D5, so it it is determined to be the second harmonic of D5.

All of the candidates that remain are determined to be notes that were played and the frequencies are returned by the program.

Questions & Answers

can someone help me with some logarithmic and exponential equations.
Jeffrey Reply
sure. what is your question?
okay, so you have 6 raised to the power of 2. what is that part of your answer
I don't understand what the A with approx sign and the boxed x mean
it think it's written 20/(X-6)^2 so it's 20 divided by X-6 squared
I'm not sure why it wrote it the other way
I got X =-6
ok. so take the square root of both sides, now you have plus or minus the square root of 20= x-6
oops. ignore that.
so you not have an equal sign anywhere in the original equation?
Commplementary angles
Idrissa Reply
im all ears I need to learn
right! what he said ⤴⤴⤴
what is a good calculator for all algebra; would a Casio fx 260 work with all algebra equations? please name the cheapest, thanks.
Kevin Reply
a perfect square v²+2v+_
Dearan Reply
kkk nice
Abdirahman Reply
algebra 2 Inequalities:If equation 2 = 0 it is an open set?
Kim Reply
or infinite solutions?
The answer is neither. The function, 2 = 0 cannot exist. Hence, the function is undefined.
Embra Reply
if |A| not equal to 0 and order of A is n prove that adj (adj A = |A|
Nancy Reply
rolling four fair dice and getting an even number an all four dice
ramon Reply
Kristine 2*2*2=8
Bridget Reply
Differences Between Laspeyres and Paasche Indices
Emedobi Reply
No. 7x -4y is simplified from 4x + (3y + 3x) -7y
Mary Reply
is it 3×y ?
Joan Reply
J, combine like terms 7x-4y
Bridget Reply
im not good at math so would this help me
Rachael Reply
I'm not good at math so would you help me
what is the problem that i will help you to self with?
how do you translate this in Algebraic Expressions
linda Reply
Need to simplify the expresin. 3/7 (x+y)-1/7 (x-1)=
Crystal Reply
. After 3 months on a diet, Lisa had lost 12% of her original weight. She lost 21 pounds. What was Lisa's original weight?
Chris Reply
what's the easiest and fastest way to the synthesize AgNP?
Damian Reply
types of nano material
abeetha Reply
I start with an easy one. carbon nanotubes woven into a long filament like a string
many many of nanotubes
what is the k.e before it land
what is the function of carbon nanotubes?
what is nanomaterials​ and their applications of sensors.
Ramkumar Reply
what is nano technology
Sravani Reply
what is system testing?
preparation of nanomaterial
Victor Reply
Yes, Nanotechnology has a very fast field of applications and their is always something new to do with it...
Himanshu Reply
good afternoon madam
what is system testing
what is the application of nanotechnology?
In this morden time nanotechnology used in many field . 1-Electronics-manufacturad IC ,RAM,MRAM,solar panel etc 2-Helth and Medical-Nanomedicine,Drug Dilivery for cancer treatment etc 3- Atomobile -MEMS, Coating on car etc. and may other field for details you can check at Google
anybody can imagine what will be happen after 100 years from now in nano tech world
after 100 year this will be not nanotechnology maybe this technology name will be change . maybe aftet 100 year . we work on electron lable practically about its properties and behaviour by the different instruments
name doesn't matter , whatever it will be change... I'm taking about effect on circumstances of the microscopic world
how hard could it be to apply nanotechnology against viral infections such HIV or Ebola?
silver nanoparticles could handle the job?
not now but maybe in future only AgNP maybe any other nanomaterials
can nanotechnology change the direction of the face of the world
Prasenjit Reply
At high concentrations (>0.01 M), the relation between absorptivity coefficient and absorbance is no longer linear. This is due to the electrostatic interactions between the quantum dots in close proximity. If the concentration of the solution is high, another effect that is seen is the scattering of light from the large number of quantum dots. This assumption only works at low concentrations of the analyte. Presence of stray light.
Ali Reply
the Beer law works very well for dilute solutions but fails for very high concentrations. why?
bamidele Reply
how did you get the value of 2000N.What calculations are needed to arrive at it
Smarajit Reply
Privacy Information Security Software Version 1.1a
Got questions? Join the online conversation and get instant answers!
QuizOver.com Reply

Get the best Algebra and trigonometry course in your pocket!

Source:  OpenStax, Elec 301 projects fall 2006. OpenStax CNX. Sep 27, 2007 Download for free at http://cnx.org/content/col10462/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Elec 301 projects fall 2006' conversation and receive update notifications?