<< 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

how to know photocatalytic properties of tio2 nanoparticles...what to do now
Akash Reply
it is a goid question and i want to know the answer as well
Do somebody tell me a best nano engineering book for beginners?
s. Reply
what is fullerene does it is used to make bukky balls
Devang Reply
are you nano engineer ?
fullerene is a bucky ball aka Carbon 60 molecule. It was name by the architect Fuller. He design the geodesic dome. it resembles a soccer ball.
what is the actual application of fullerenes nowadays?
That is a great question Damian. best way to answer that question is to Google it. there are hundreds of applications for buck minister fullerenes, from medical to aerospace. you can also find plenty of research papers that will give you great detail on the potential applications of fullerenes.
what is the Synthesis, properties,and applications of carbon nano chemistry
Abhijith Reply
Mostly, they use nano carbon for electronics and for materials to be strengthened.
is Bucky paper clear?
so some one know about replacing silicon atom with phosphorous in semiconductors device?
s. Reply
Yeah, it is a pain to say the least. You basically have to heat the substarte up to around 1000 degrees celcius then pass phosphene gas over top of it, which is explosive and toxic by the way, under very low pressure.
Do you know which machine is used to that process?
how to fabricate graphene ink ?
for screen printed electrodes ?
What is lattice structure?
s. Reply
of graphene you mean?
or in general
in general
Graphene has a hexagonal structure
On having this app for quite a bit time, Haven't realised there's a chat room in it.
what is biological synthesis of nanoparticles
Sanket 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?
I'm interested in nanotube
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
I'm interested in Nanotube
this technology will not going on for the long time , so I'm thinking about femtotechnology 10^-15
can nanotechnology change the direction of the face of the world
Prasenjit 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?