![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
I'm going to post a mascotesque post.
Playing with Winamp quite a bit, and I've found a really cool feature...
Auto-tag. Took some tracks that somebody put together on a CD as a
"party favor" for my wife's wedding shower a few years ago. A real
mishmash of music and genres, and no track identification. I previously
ripped the music from the CD, calling the tracks "Wedding track 1, etc".
Yesterday I thought I would try the auto-tag feature to see how well it
worked.
#1. It worked shockingly well, One track was mislabeled, and I'm
guessing it was more a mislabeling of the CD tracks on the album that
that song belonged on in the database.
#2. It was very quick.
It uses "fingerprinting" technology to match the song with its entry on
the database. What I found even more interesting is if I stripped a
track of its name, tags, and anything other than the audio to identify
it. It would correctly identify it. Even if that song came from a
"greatest hits" album (e.g. the same exact song could be found elsewhere
on a different album)
Obviously there must be some sort of hashing involved ... but how? We're
talking a file that has been encoded with a lossy algorithm, and while
the data resembles the original, it is not the original ...
... Anyway, part 2, related...
In winamp is this "Play songs similar to ..." menu item. A little
research yields a program called MusicIP mixer. Which I'm playing with
to shuffle my music library. Essentially it groups similar songs
together. So far the shuffle is surprisingly smooth. It uses acoustic
fingerprinting as well to do its work. I listen to a fairly broad
spectrum of genres, Its nice because it doesn't say put a country song
immediately after say, Rage against the Machine ...
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Mike Raiford wrote:
> Yesterday I thought I would try the auto-tag feature to see how well it
> worked.
>
> #1. It worked shockingly well, One track was mislabeled, and I'm
> guessing it was more a mislabeling of the CD tracks on the album that
> that song belonged on in the database.
>
> #2. It was very quick.
>
> It uses "fingerprinting" technology to match the song with its entry on
> the database. What I found even more interesting is if I stripped a
> track of its name, tags, and anything other than the audio to identify
> it. It would correctly identify it. Even if that song came from a
> "greatest hits" album (e.g. the same exact song could be found elsewhere
> on a different album)
>
> Obviously there must be some sort of hashing involved ... but how? We're
> talking a file that has been encoded with a lossy algorithm, and while
> the data resembles the original, it is not the original ...
Hmm, interesting. This ought to be highly infeasible. (But then, so
should identifying a CD by it's serial number, and apparently that is a
"solved problem".)
> I listen to a fairly broad
> spectrum of genres, Its nice because it doesn't say put a country song
> immediately after say, Rage against the Machine ...
Hahahaha!
Yeah, people look at me funny when I tell them that I have a custom
WinAmp playlist rather than just playing it on random. But Pendulum
followed by Enya is just weird!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
>
> Hahahaha!
>
> Yeah, people look at me funny when I tell them that I have a custom
> WinAmp playlist rather than just playing it on random. But Pendulum
> followed by Enya is just weird!
You two mean that this kind of variation is bad? :P
# 2008-12-09 16:26:46: Various - Metal Rocks - CD 1 - Hypocrisy /
Unleash The Beast Enqueue again, play now or see track info
# 2008-12-09 16:21:52: Rammstein - Mutter - Nebel Enqueue again, play
now or see track info
# 2008-12-09 16:18:35: Sarah Brightman - Encore - One More Walk Around
The Garden (Carmelina) Enqueue again, play now or see track info
# 2008-12-09 16:13:02: AC/DC - Ballbreaker - The Honey Roll Enqueue
again, play now or see track info
# 2008-12-09 16:08:39: Pink Floyd - Is There Anybody Out There? - The
Wall Live (CD 2) - In The Flesh Enqueue again, play now or see track info
# 2008-12-09 16:01:34: Pink Floyd - Is There Anybody Out There? - The
Wall Live (CD 2) - Run Like Hell Enqueue again, play now or see track info
I actually mostly like it. It brings changes to everyday life at home :).
-Aero
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> Obviously there must be some sort of hashing involved ... but how? We're
>> talking a file that has been encoded with a lossy algorithm, and while
>> the data resembles the original, it is not the original ...
>
> Hmm, interesting. This ought to be highly infeasible.
Actually I have a phone book entry on my phone, which you can call, hold
your phone up to some random speaker (be it in your car, on the TV, etc) for
10 seconds, then a few seconds later it texts you back the artist and song
name. It's pretty neat and has worked every time I've tried it.
Maybe it works in the frequency domain, so takes the fourier transform of
the sample, then uses some fuzzy matching algorithm to see what it matches
up with?
> (But then, so should identifying a CD by it's serial number, and
> apparently that is a "solved problem".)
What do you mean? Isn't the whole idea of a *serial* number that you can
identify which one it is?
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Mike Raiford wrote:
> It uses "fingerprinting" technology to match the song with its entry on
> the database. What I found even more interesting is if I stripped a
> track of its name, tags, and anything other than the audio to identify
> it. It would correctly identify it. Even if that song came from a
> "greatest hits" album (e.g. the same exact song could be found elsewhere
> on a different album)
>
> Obviously there must be some sort of hashing involved ... but how? We're
> talking a file that has been encoded with a lossy algorithm, and while
> the data resembles the original, it is not the original ...
http://mtg.upf.edu/files/publications/MMSP-2002-pcano.pdf
Apparently you take your sound signal, compute its frequency spectrum,
and then take various statistical measurements from that. (Whatever you
think is "perseptually significant"; the overall energy distribution,
the frequencies of the main spectural peaks, how fast the spectrum is
changing, whatever you think will work.) You eventually summarise all of
this data to yield a "fingerprint" code in such a way that things that
sound similar to the human ear are likely to yield similar fingerprint
codes. Then you just need to develop a fast search algorithm...
So how it works depends on *exactly* which system it uses. (WinAmp is
using MusicID from Gracenote - the people who invented CDDB, and who
therefore presumably have their hands on a huge catalogue of CD data!)
It's comparing sound signals based on their overall spectrum (how bassy
or toppy they are, possibly the pictures of the main signal spikes) and
how it evolves over time (slowly changing vs rapidly changing).
I would suggest that if you played two different tunes on the same
instrument in the same key at the same tempo, it might be rather hard
for the machine to tell them apart. But then, think about it: how well
would a human do this?
I almost want to rush out and grab WinAmp just so I can see how badly it
misclassifies material that isn't in the database... >:-D
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
scott wrote:
> Actually I have a phone book entry on my phone, which you can call, hold
> your phone up to some random speaker (be it in your car, on the TV, etc)
> for 10 seconds, then a few seconds later it texts you back the artist
> and song name. It's pretty neat and has worked every time I've tried it.
Heh. Well that's one way to find out what tune that is on that YouTube
video... ;-)
What does it do if you play something that isn't in the database? (I.e.,
you pick up an instrument and play something yourself.)
> Maybe it works in the frequency domain, so takes the fourier transform
> of the sample, then uses some fuzzy matching algorithm to see what it
> matches up with?
See my other reply. Statistical summaries of the frequency spectrum (not
forgetting temporal information too) plus fuzzy matching.
>> (But then, so should identifying a CD by it's serial number, and
>> apparently that is a "solved problem".)
>
> What do you mean? Isn't the whole idea of a *serial* number that you can
> identify which one it is?
Yes - but if you aren't the manufacturer, it's just a useless number to
you. The only reason this is usable is that somebody sat down and
somehow built a giant database containing all the serial numbers and the
matching metadata; AFAIK, the manufacturers didn't hand this data over,
some poor sod collected it.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> Yes - but if you aren't the manufacturer, it's just a useless number to
> you. The only reason this is usable is that somebody sat down and
> somehow built a giant database containing all the serial numbers and the
> matching metadata; AFAIK, the manufacturers didn't hand this data over,
> some poor sod collected it.
And that's exactly how it happened. Except replace poor sod with
CD-Ripping community. They'd tag the resultant MP3's and send the data
to CDDB, which would then get sent out to anyone else who ripped the CD.
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> I almost want to rush out and grab WinAmp just so I can see how badly it
> misclassifies material that isn't in the database... >:-D
From what I've seen on a few tracks that weren't really released music,
it would simply come back with nothing ...
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> What does it do if you play something that isn't in the database? (I.e.,
> you pick up an instrument and play something yourself.)
I tried whistling a song to it once, I just got a text back saying it
couldn't recognise the song :-( grrrrr
>> What do you mean? Isn't the whole idea of a *serial* number that you can
>> identify which one it is?
>
> Yes - but if you aren't the manufacturer, it's just a useless number to
> you. The only reason this is usable is that somebody sat down and somehow
> built a giant database containing all the serial numbers and the matching
> metadata; AFAIK, the manufacturers didn't hand this data over, some poor
> sod collected it.
Or rather, multiple poor sods collected it :-)
http://en.wikipedia.org/wiki/CDDB#History
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Mike Raiford wrote:
>
> And that's exactly how it happened. Except replace poor sod with
> CD-Ripping community. They'd tag the resultant MP3's and send the data
> to CDDB, which would then get sent out to anyone else who ripped the CD.
>
And either someone is fucking the system up from his part or the same
serial can be used for multiple CD's. Sometimes CDDB and FreeDB give you
multiple choices, of which usually one or two is that actual album.
-Aero
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |