Skip to content Skip to navigation

Connexions

You are here: Home » Content » algorithm for identifying the notes

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

algorithm for identifying the notes

Module by: xizheng ma. E-mail the author

Algorithm For Identifying the Notes

Step 1: Convert the music segment into frequency domain

Because our recorded music files are chopped into fixed finite length segments, all we have to do is apply DFT to the sample. Considering speed of computation, we decided to use the method of computing with the DFT matrix .

We know that DFT samples are defined by

,

Where

Thus can be expressed in matrix form as

Where

By using the matrix method to compute the DFT, we can calculate the DFT of many pieces of same length and same sample rate music segments at the same time using the same matrix. This will increase the overall speed of our program and enable tune identification for lengthy music that consists of thousands of segments to be analyzed.

Step 2: Find the peaks in the frequency domain representation of the segmented music. Identify the peaks whose frequencies are near integer multiples of each other and group them into the same category.

We know that notes played by instruments have harmonics which the frequencies are integer multiples of the base frequency. Often the note that’s being played is the base frequency or the first odd harmonic of the base frequency. Thus, peaks which frequencies are near integer multiples of each other indicate that they are mostly likely to be the harmonics of a base frequency and the note that’s being played lies within it.

To identify the harmonics we used findpeaks function in Matlab and grouped them in a matrix which the i-jth entry is the frequency of the jth peak over the frequency of the ith peak. We then look for near integer entries in the matrix to determine peaks whose frequencies have integer multiples relationship and categorize them together. The peak with the lowest frequency in each category is the base band while the other peaks in the same category are its harmonics.

Step3: Use the power of peaks to determine the most significant categories.

Because there may be noise and other random vibrations when an instrument is played, there are categories which do not contain the note that’s played by the instrument. On the other hand, when multiple notes are played at the same time (aka a chord), there may be multiple categories which contain notes that are played. To correctly analyze the notes that are being played, we pick out the category which has the most power and categories whose powers are larger than one-tenth of that. The way we calculated the power of each category is by summing up the power(frequency*peak^2) of all the harmonics in that category. After this process, ambient noise and vibrations should be excluded and the remaining categories should contain the notes that are being played.

Step 4: Determine the notes that lie in each category.

Mostly, the base frequency of each category is the note that’s played by the instrument. However, we’ve learned that the note played by some instruments is either the base frequency or the first odd harmonic of the base frequency. To determine which note is being played, we compared the sum of the power of odd harmonics versus the sum of the power of the even harmonics in each category. When the power of even harmonics is larger than a certain times of the power of the odd harmonics, we say that the note is the base frequency; otherwise, we say that the note is the first odd harmonic of the base frequency.

Content actions

Download module as:

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks