Open Source Music Fingerprinter Gets Patent Nastygram
Nushio writes "The code wasn't even released, and yet Roy van Rijn, a Music & Free Software enthusiast received a C&D from Landmark Digital Services, owners of Shazam, a music service that allows you to find a song, by listening to a part of it. And if that wasn't enough, they want him to take down his blog post (Google Cache) explaining how he did it because it 'may be viewed internationally. As a result, [it] may contribute to someone infringing our patents in any part of the world.'"
Update: 07/09 00:31 GMT by T :Story updated to reflect that Shazam is multiplatform, not Android-only, as implied by the original phrasing.
it was an iphone app long before it was an android app
Don't get me wrong, this really sucks for the guy and is completely unfair. But this sort of thing happens all the time. If this were a rare occurrence, then yeah, I'd be up in arms. It's sort of not newsworthy anymore. I'm probably going to get flamed for saying this, and maybe I even deserve it, but it's true.
IA (definitely) NAL, but I thought the whole purpose of patents (other than protection) was to disclose the invention in full (not behind trade secrets) in exchange for knowledge of how the invention is done/made. Have the patent owners given any implementation details about their application?
Rhymes that keep their secrets will unfold behind the clouds.There upon the rainbow is the answer to a neverending story
Patents are open for viewing aren't they (with the exception of the NSA)? So if they have a patent for something, then how can they order someone to take down information that a supposed patent covers?
...was a call in service, long before it was an Android app - and an iPhone app before Android even existed (in the mainstream, anyway). Why is it singled out as an android app?
The secret to creativity is knowing how to hide your sources. - Albert Einstein
Is that a Barbra Streisand song I hear?
Two: you cannot use a patent as a method to censor free speech.
Three: any US patent can be viewed internationally. A patent is by definition NOT a trade secret. Even if this guy's software DID use a patent-encumbered algorithm, his post cannot "contribute to someone infringing ... patents in any part of the world."
Four: a patent is not valid for the entire world.
,,,the fundamental nature of patents. Patents are published, by the PTO. This means that anyone, "international" or otherwise, can already view them. Furthermore, it is settled law that discussion of a patented invention, including detailed explanation of how to implement it, is not infringement.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
Use pHash instead, my open source perceptual hashing library that can detect similar audio, video, images and text files. It does not use Shazam's patented algorithm, which isn't all that great anyhow.
I mean, on the spectrum of software patent insanity, they're being relatively restrained and civil. They seem genuinely to be trying to head off competition for an invention that they are implementing and selling - which is the point of patents - rather than acting like patent trolls and trying to gouge money for something that they never implemented.
Of course, it sucks, software patents doubleplus bad, Fight The Man, counter sue them for a hundred beelyon Euros, Attica! Attica! Attica! and so on, but comparing a couple of polite "please don't make us do anything you'd regret" emails to Adobe's assraping of Dmitry Sklyarov is rather hyperbolic. And yes, I have a "Free Dmitry Sklyarov" t-shirt, thanks for asking.
If you were blocking sigs, you wouldn't have to read this.
Last I looked Patents do not remove the right to "free speech" in any country.
Then you didn't look very hard. In the US, for example, the right to free speech is not absolute by any means. The government may prohibit defamatory speech such as libel and slander. It may regulate speech in a content-neutral manner (so-called time, place, and manner restrictions), such as ordinances regarding billboards. It may regulate obscene speech. The same Constitution that describes the right to free speech also gives Congress the power to grant patents and copyrights. There is some inherent tension between the First Amendment and the Patent & Copyright Clause, but there is no contradiction.
In this case, the argument (and it's a perfectly typical one) is that the code on the web page represents an active inducement to infringe the patent, for which the blogger would be liable for patent infringement. The ready-to-use code is a step too far towards actually using the claimed invention (which the patentee has the exclusive right to do). It would be one thing to discuss the song-recognition method in general, mathematical, or even pseudocode terms, but when you give people ready-to-use code that's too close to infringement. A court may or may not agree, but it's a close enough call that a cease & desist letter is legally appropriate, albeit kind of a jerk move on the part of the patentee.
Shazam wasn't the first to identify songs based on a hash of the audio. I worked for a start-up, eTantrum, that developed similar tech, Songprint, which it open sourced (under the moniker "Freetantrum"). I always assumed that Shazam was extended from that work.
I RTFA, and he posts pretty much the entire source code of his implementation in the original blog post. That is what they were upset about: implementing the patent *and* distributing it. Had he merely discussed the methods Shazam used, it probably wouldn't have been a problem. However, I can go to his blog, cut-and-paste the code into a text editor, and have a working clone of Shazam. That is fairly cut-and-dry patent infringement, minus commercial gain and sidestepping the issue of software patents.
It's not like he was just talking about the process.
There are several services doing this same general thing, might as well support the ones that aren't a-holes!
they have to defend their patent or risk losing it.
That's trademarks.
If I have been able to see further than others, it is because I bought a pair of binoculars.
The name of this proyect that seems to be prior art is Tararira (music retrival by sung query). It's from Uruguay, and does recognition of music just humming at a microphone. Proyect was created in 2004 and have code published.
http://iie.fing.edu.uy/investigacion/grupos/gmm/proyectos/tararira/ingles.php3
http://iie.fing.edu.uy/investigacion/grupos/gmm/proyectos/tararira/descargas/tarariraEN-src-0.1.tar.gz
http://iie.fing.edu.uy/investigacion/grupos/gmm/proyectos/tararira/descargas/tarariraEN.tar.gz
http://iie.fing.edu.uy/investigacion/grupos/gmm/proyectos/tararira/descargas/tararira.pdf
Tararira is a query by singing system. The problem of music retrieval by sung query (QBH, query by humming) consist of building a machine capable of simulating the cognitive process of identifying a musical piece from a few sung notes of its melody.
A melody is described by a sequence of notes, so it is natural to compare melodies by means of the similarity of their constituent notes. For this reason, the problem can be divided in two stages: the transcription of the voice signal into a sequence of notes and the search of this pattern in a MIDI melody database.
Tararira originates in July 2004 as the graduation project of Ernesto López, Martín Rocamora and Gonzalo Sosa at the IIE of the Facultad de Ingeniería, Universidad de la República.
Patents are selectably enforceable. I can choose to never sue you for infringing. What laches is supposed to prevent is me waiting until you are very profitable before suing you. However, even if I choose to never sue you, I can still sue Joe once I find out he is infringing.
"Uh... yeah, Brain, but where are we going to find rubber pants our size?" --Pinky
Just about all computer-based signal processing related to anything at all is performed in the frequency domain so passing the raw data through an FFT (or at least an FT) first is a no-brainer.
Calculating a hash is the blindingly obvious and standard approach to getting a semi-unique signature for mostly any data.
Both the FFT and the hashing would likely be the first thought of any competent software engineer tasked with solving this, in as much as using a screwdriver to undo a screw is obvious to a mechanic.
Don't even software patents have to require at least some concept of originality and non-obviousness?
No patent numbers? "Algorithm" in unreleased code? At least put up a token resistance and ask for details.
We need more responses like Blue Jean Cable's response to Monster when Monster Cable tried something similar.
-- Alastair
It's a wholly owned subsidary of BMI... As in BMI/ASCAP?
It's the record companies again.
Around 2000, an open source program called "songprint" was written which does this, and then MusicBrainz Tagger was written shortly after, but not as open source. After that, Pandora.com came out which capitalized on this.
Sure, the source code itself isn't infringing. But where is that source code? It's in RAM and/or on your disk or flash drive. And there's probably a claim akin to "A storage device containing software to implement the method of claim X". So now your own drive or RAM has become an infringing device.
(I only wish I was joking).
Do you understand the basic concept of a patent? To earn the monopoly you have to publish your idea. The idea becomes part of the public domain. If someone else republishes your idea the the system works as intended. A patent is not a copyright. This sounds to me like the patent holder really doesn't want to honor the bargain he agreed to. The monopoly is on implementation. We can publish code examples to our hearts content as long as we don't run them.
More at http://www.music-similarity.com/ I wonder if it uses the purported patented technology.
BTW, the assertion of a potential harm being caused by "...explaining how he did it because it 'may be viewed internationally. As a result, [it] may contribute to someone infringing our patents in any part of the world'" is certified bullshit.
All patents are public documents -- they must be public in order to inform the world just exactly what it is that the patent owner actually owns. It's detailed in the Claims section. "If you don't claim it, you don't own it."
Furthermore, a patent must "teach the invention," meaning that anyone "familiar with the art" shall be able to implement the invention with only the descriptions provided. If there actually is a patent for this technology, the cat is out of the bag.
Patent courts in the US are very favorably disposed to inventors -- assuming the technology is actually protected. It sounds like maybe not, and so the bluster and shrill threats.
Dear Shazam,
My algorithm is not the same as yours. Specially, it differs in this key code section:
Sincerely, Timothy
Table-ized A.I.
This comment... While it itself has "-1 Troll" moderation status, it's self-referential and, it seems, a little bit ironically prophetic. Which, IMHO, deserves a +1 Funny or Insightful, depending on which kind of pedant you are.
But the moment it earns that +1, it loses that magical quality and is once again an overrated comment which ought to get a -1 Troll. Which in turn makes it a pretty cool comment.
This... This is Epimenides' Slashdot Comment.
DRM: Terminator crops for your mind!
Creating Shazam in Java
//Fill AudioFormat with the wanted settings
// In another thread I start:
//mono
A couple of days ago I encountered this article: How Shazam Works
This got me interested in how a program like Shazam works... And more importantly, how hard is it to program something similar in Java?
About Shazam
Shazam is an application which you can use to analyse/match music. When you install it on your phone, and hold the microphone to some music for about 20 to 30 seconds, it will tell you which song it is.
When I first used it it gave me a magical feeling. "How did it do that!?". And even today, after using it a lot, it still has a bit of magical feel to it.
Wouldn't it be great if we can program something of our own that gives that same feeling? That was my goal for the past weekend.
Listen up..!
First things first, get the music sample to analyse we first need to listen to the microphone in our Java application...! This is something I hadn't done yet in Java, so I had no idea how hard this was going to be.
But it turned out it was very easy:
1 final AudioFormat format = getFormat();
2 DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
3 final TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info);
4 line.open(format);
5 line.start();
Now we can read the data from the TargetDataLine just like a normal InputStream:
01
02
03 OutputStream out = new ByteArrayOutputStream();
04 running = true;
05
06 try {
07 while (running) {
08 int count = line.read(buffer, 0, buffer.length);
09 if (count > 0) {
10 out.write(buffer, 0, count);
11 }
12 }
13 out.close();
14 } catch (IOException e) {
15 System.err.println("I/O problems: " + e);
16 System.exit(-1);
17 }
Using this method it is easy to open the microphone and record all the sounds! The AudioFormat I’m currently using is:
1 private AudioFormat getFormat() {
2 float sampleRate = 44100;
3 int sampleSizeInBits = 8;
4 int channels = 1;
5 boolean signed = true;
6 boolean bigEndian = true;
7 return new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
8 }
So, now we have the recorded data in a ByteArrayOutputStream, great! Step 1 complete.
Microphone data
The next challenge is analyzing the data, when I outputted the data I received in my byte array I got a long list of numbers, like this:
01 0
02 0
03 1
04 2
05 4
06 7
07 6
08 3
09 -1
10 -2
11 -4
12 -2
13 -5
14 -7
15 -8
16 (etc)
Erhm… yes? This is sound?
To see if the data could be visualized I took the output and placed it in Open Office to generate a line graph:
Ah yes! This kind of looks like 'sound'. It looks like what you see when using for example Windows Sound Recorder.
This data is actually known as time domain. But these numbers are currently basically useless to us... if you read the above article on how Shazam works you’ll read that they use a spectrum analysis instead of direct time doma
1% APY, No fees, Online Bank https://captl1.co/2uIErYq Don't let your $$$ sit in a no-interest acct.
I uninstalled the app immediately and left them with a one-star rating plus a link to explain the background. Also, I uninstalled them as malicious. Feel free to link http://tinyurl.com/3a93ed8 in your one-star ratings.
Get SoundHound instead. It's better anyway. Now that I have SoundHound, I am actually glad that Shazam made me look for alternatives.
Again:
http://tinyurl.com/3a93ed8
http://www.soundhound.com/
PS: It would be evil to install them just to uninstall them with one-star ratings. I could not condone that.