One of the coolest (and most popular) apps is for the Shazam music identification service. Created by Shazam Entertainment Ltd. the app allows your iPhone/iPod touch or iPad to “listen” to a song and identify its title and artist. The app has been available since 2008 and has only gotten better with age. Today, there are three different apps under the Shazam name, although I still find the first (and free version) the best.
Regardless of features, each app works the same way. Using only a short sample of music, the app identifies the song, and allows you to download it from iTunes. Plus, you can find tour information for the artist, YouTube videos and more.
Now, the folks at Gizmodo have detailed how Shazam figures out what song is playing. It relies on fingerprinting music based on the spectrogram of the song playing.
According to Wikipedia:
A spectrogram is a time-varying spectral representation (forming an image) that shows how the spectral density of a signal varies with time. In the field of Time-Frequency Signal Processing, it is one of the most popular quadratic Time-Frequency Distribution that represents a signal in a joint time-frequency domain and that has the property of being positive.
Here are the basic steps:
1. Beforehand, Shazam fingerprints a comprehensive catalog of music, and stores the fingerprints in a database.
2. A user “tags” a song they hear, which fingerprints a 10 second sample of audio.
3. The Shazam app uploads the fingerprint to Shazam’s service, which runs a search for a matching fingerprint in their database.
4. If a match is found, the song info is returned to the user, otherwise an error is returned.
According to Gizmodo, here’s how the fingerprinting works:
You can think of any piece of music as a time-frequency graph called a spectrogram. On one axis is time, on another is frequency, and on the 3rd is intensity. Each point on the graph represents the intensity of a given frequency at a specific point in time. Assuming time is on the x-axis and frequency is on the y-axis, a horizontal line would represent a continuous pure tone and a vertical line would represent an instantaneous burst of white noise.
This is pretty amazing stuff from an app that takes just seconds to figure out the song title from even the most obscure artists.