Hacker News new | comments | ask | show | jobs | submit login
Echoprint: Open-source music fingerprinting (echoprint.me)
201 points by chl on June 23, 2011 | hide | past | web | favorite | 53 comments



I'm a bit confused by the database license. Why do you want people to contribute additional data specifically back to you, rather than requiring them to release it under a compatible license which would allow you to incorporate it if you wish? This is substantially different from usual copyleft licenses.

As an example, notice that Wikipedia does not require people to send modified articles back to the Wikimedia Foundation, or to allow them to use the data as they see fit (this is clause D. 3. d. in your license). They just require people to contribute under a copyleft license, and they can thus incorporate derivative versions published elsewhere if they want. This is nice because it ensures that the Wikipedia content can be useful even if the Wikimedia Foundation disappears.

Anyway, awesome work, congrats!


Why do you want people to contribute additional data specifically back to you…

One possibility is so that database can be created on the backs of the users, then the database owner can slam the door and turn it proprietary, like the CDDB did.

Their stated goals don't lean that way, but I don't see a clause that either permits or forbids the database owner this action. Lawyers will be required to figure that out. I suspect there is an implicit ability for the grantor to terminate the license, but that is what lawyers are for.

(I did notice that the termination effects reference clauses that don't exist.)


Given how threat-, or, let's say, notification-happy Landmark was just a while ago [1], does anyone have an idea regarding the patent situation? Is this implementation different enough to be considered (reasonably) "safe"?

[1] http://www.redcode.nl/blog/2010/07/patent-infringement/


We invented everything about Echoprint from scratch, working with some awesome scientists and audio guys. I'm not a lawyer and won't comment on legal stuff here though.


FWIW, inventing something from scratch, as far as I understand things, will only save you from copyrighted code etc. It won't save you from overly general, and trivial patents.

Good luck though :/


Exactly. Be prepared to be bullied by Shazam -- at least, that's what happened the last time someone posted audio fingerprinting code online. And inventing something yourself doesn't save you from patents. I'll be watching from the sidelines to see how this plays out.


I seriously hope this is good enough even for the lawyerly folks out there.

It's probably the biggest thing to happen in this space since the release of the iPhone version of Shazam!


Who uses Shazam anymore? SoundHound is way ahead in recognition capability, especially in noisy environments.


Whenever I have a chance to use both, it's seriously a tossup- it depends on the song, environment, and phone, but they're usually equivalent in my experience.

The main reason I use Shazam over SoundHound is simply that SoundHound doesn't have a Windows Phone 7 app.


No question I'd talk to a lawyer before trying to integrate this service into my own product.


This is really amazing, and I can't wait to see all of the possibilities it opens up now that people can create their own databases. I'm tempted to set up an app to fingerprint and dedupe all of the music spread out throughout the network here at work.


This. Also proper tagging for once.


I highly recommend MusicBrainz Picard for autotagging. I went through tagging somewhere around 70 gigs of music with it, and the entire experience was rather painless. It will also rename and organize the files for you as a bonus.

It looks up the data (as it should be), so you rarely will have to enter anything yourself. It sometimes helps to add data for 1 track for horribly mistagged stuff, but after that you can usually drag and drop the rest of the album.


For others, like myself, that are unfamiliar, yet very interested. MusicBrainz[1] is written in python, distributed under the GPL, and I will be trying it ASAP.

[1]https://secure.wikimedia.org/wikipedia/en/wiki/MusicBrainz_P...


MusicBrainz is written in Perl (and SQL). MB Picard is Python. MB is a database and associated server. MB Picard is a client.

MB is a bit of a monster. If you're tagging a lot of music you may want to install it locally. My experience with this is documented at http://acooke.org/cute/Installing3.html

Personally, I was not too impressed with MB itself - ended up using LastFM's API instead. But this was for generating playlists, not tagging.


if you have any questions, let me know. we're very excited about this!


About your data dumps: you're about to get hammered, so please share them in torrent! This would be much better for the thousands of people wanting to bootstrap.

Also, I understand json is very easy to use, etc. But those big dumps cry for a binary format. Or at least add zlib/lzma compression so people don't waste bandwidth on uuencoded binary data in json.


the dumps are in a format that other code understands (fastingest.py)

The code data is compressed using zlib (and then base64'd.) It's all on s3-- in our experience, big data dumps like this get relatively little traffic after the original hype dies down and a torrent doesn't make sense. We're pretty sure amazon can handle the load :)


S3 has bittorrent support built in, it's trivial to enable. But you probably knew that.


Where do we go and ask questions for setting up a mirror for us (VLC/VideoLAN)? Is there an IRC channel?


there's a google group-- that's probably the easiest for now. you can pester alastairp on the musicbrainz IRC channel too (he's our resident musicbrainz/EN liaison)


What's the relationship (if any) or distinction between Echoprint and Chromaprint/Acoustid? http://acoustid.org/


No relationship. Obviously the intent is the same.

Distinction: we handle small pieces of audio from anywhere in the song (20s), ours works "over the air" via microphone, we have a huge database via our content partners.


I'm curious about the hashing algorithm. I read about the planned whitepaper, but some preliminary info would be cool (e.g refs to academic papers that you build on).


it is similar to our closed source FP ENMFP, which you can read about here:

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.185....

The codegen is very different (instead of relying on echo nest chroma, it does its own onset detection) but the back end side is almost the same.


Awesome stuff.

We are working on something that will benefit both parties (us and you guys) immensely. Is there a way to contact you? No info on your HN profile


if it's echoprint related, write echoprint@echonest.com -- otherwise contact@echonest.com (i'm brian@echonest.com but i doubt you want to write just me)


I think the fingerprinting part is similar to pHash: http://www.phash.org/ but echoprint is more focused on music and they are building a database of fingerprints.

I think pHash also has functions for fingerprinting music but might not be as precise since pHash is not strictly focused on music.


Echonest are some cool people. Their earlier APIs enabled the illustrious although sadly now defunct http://www.donkdj.com which was done by a classmate of mine as a project for a Generative Creativity course we did at uni.

Looks like their research has taken them a lot further!


I'd love to see a project where the data is MIT licensed too, not just the code.


A very interesting project. I've whipped up a little test program(https://github.com/regomodo/handy_scripts/blob/master/echopr...) in Python and found either the codegen or echonest to be a little buggy. Daft Punk fingerprints come back with some very unusual results. http://pastebin.com/8Tfvd0SZ


can you file an issue on echoprint-codegen or write us at the google group so we don't lose that? That definitely shouldn't be happening, there's an issue somewhere for sure.


I've raised an issue over at github https://github.com/echonest/echoprint-codegen/issues/10


It's pretty late here so not much enthusiasm right now. I'll raise an issue. Cheers.


Why aren't the fingerprints in the database covered by the recording copyright on the song that they were derived from?


If the fingerprint data of a track is covered then by that logic its SHA1 hash etc. would also be covered, and I can't see that line of argument going anywhere.


Only if you could prove that there are no collisions, right?


My thinking was that while the fingerprint is derived from the music, it contains no audio data and there is no way to go back from the fingerprint to any representation of the recorded work. Much like a cryptographic hash.

All the fingerprint comprises is a bunch of abstract statistical data about the music, its not qualitatively different from the output of say, a visualisation algorithm in a music player. Just much more useful.

But then again, copyright law makes no fucking sense, so who knows.


Because it's less like a copy, and more like a name?

In any case, even if this was technically a copy, I can't imagine this possibly failing the fair use test.


Maybe they are, to the best of my knowledge there's no definite answer that they aren't. I find it unintuitive but I do think that rationally there's a case to be made that they are, in fact, 'derived works'.


Even if so, there's a decent fair-use argument. The cases are mixed, but there have been some lawsuits over book summaries that came out in favor of the defendant, even though in a sense a summary of a book "derives" from the book. No idea what a court would hold, but fingerprints seem like they'd be on even stronger footing, since to the extent they're a summary, it isn't even much of a human-interpretable one, intended instead for indexing purposes, so it replaces the original work even less than a book summary does.


Objectively, they're meta-data, on the order of box scores from a baseball game or the cast credits from a movie. So there's no particularly solid argument for them to infringe on the copyright of the original work.


No:

- game: a baseball game is not a "work" under the Berne convention

- cast credits: they are descriptive, but not derived from the movie.

One of the criteria to assess "fair use" is "was anything creative added in the process of making the derivative", which is per definition not true in the checksum or fingerprint case. I don't find your argument compelling - it's not a closed and shut case.


They're not really meta-data - they describe aspects of the sound recording, just like a list of notes and durations would (ie a MIDI file derived from analysing the recording).


Woah. This is going to be massive. The amount of things that could potentially be built on top of this is scaring me.


How is this different from Shazam?


Because it's open source.



This is huge. I've been mulling some ideas for awhile that would require music fingerprinting, but I've always been too overwhelmed by the available options, from a licensing and implementation standpoint. I can't wait to play with this!! :D


Looks incredible! One note though, the page seems to partially break for me in Safari on the Mac (the sidebar overlaps onto the content as I scroll horizontally).

But the tech looks incredible. Good work for releasing this!


oops! as you can tell, we're pretty good with music data and not so much on the web site design. i'll try to fix it :)


for more on the whys, here is the EN blog post: http://blog.echonest.com/post/6824753703/announcing-echoprin...


Holy balls you guys are awesome for releasing this.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: