Open Source Music Fingerprinter Gets Patent Nastygram 487
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.
android hate (Score:4, Informative)
it was an iphone app long before it was an android app
Shazam... (Score:3, Informative)
Re:Shazam... (Score:5, Informative)
Because I didn't Google it up properly. And Slashdot doesn't let me edit the story submission after I hit send. Its my fault.
van Rijn? (Score:1, Informative)
His grand-grand-grand-grandson [wikipedia.org] will be very rich.
Re:android hate (Score:2, Informative)
And it was the basis for Verizon's VCast Song ID long before the iPhone existed...
Re:Patent and disclosure... (Score:5, Informative)
Bizarrely, the USPTO doesn't require code for software patents; I assume other patent offices worldwide, in those countries which allow software patents, follow the same practice. You can't patent a mechanical device without schematics (I think) but for software, a vague description of the algorithm -- too vague to be of any use in implementation -- is enough. This is yet another example of why the idea of patenting things that aren't physical objects is fundamentally broken, but don't expect the situation to change any time soon.
Re:android hate (Score:5, Informative)
And there's a Windows Mobile, Nokia / Symbian, Blackberry app too. It's my fault for not Googling them up before hand..
Re:I call bullshit. (Score:4, Informative)
One: you cannot patent code. Period. There's plenty of cases where people have written (and released) code that some patent covered (ffmpeg anyone). The code itself is free speech.
They didn't patent code. They patented the method and system. And you can certainly patent those. In fact, the fact that it's not the code, but the method, that's patented is why he was infringing even though he did it in Java and they did it in C#. Patents are not copyright.
Two: you cannot use a patent as a method to censor free speech.
Nope, but you can use a patent to prevent someone from using your invention without your consent.
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."
Yes, because if someone takes his code and runs it, then they're infringing. Therefore, he's contributing to the infringement.
Four: a patent is not valid for the entire world.
Nope, but his post is viewable by the entire world. And someone could infringe in the US, where the patent is, by using his code.
Re:Well, really... (Score:5, Informative)
In the US at least a patent application is public record, and is intended to explain to the world how the object functions. This is not just to enforce the patent, but also to reward spreading the knowlege about how a patent works.
Asking someone to take down a blog post that describes the workings of a patented process is foolish. If the patent is written like it is supposed to be, anyone should be able to understand the patented process. You are no longer protected under trade secrets if you patent (which is why some choose not to). It is by definition at that point public knowledge.
Whether or not they have a patent case against him, they have no case against his blog.
Re:What the? (Score:2, Informative)
His blog post contains a lot of code, making it dangerously close to a full implementation. Although even their lawyers don't seem entirely confident in this interpretation, since they only mentioned the blog post in their last e-mail.
Re:Well, really... (Score:3, Informative)
> Why Mr. van Rijn use their proprietary name in his blog post?
Because it damn well pleases him to do so, and in the USA, at least, he is free to do so with impunity as long as he does not use it in a way that might mislead the public into believing that they are getting said product when they are not. A trademark is not a copyright.
Re:Patent and disclosure... (Score:4, Informative)
Exactly. If it were copyrighted, it'd be different, but if his work falls under a patent, there's nothing they can do as long as he doesn't offer his software for sale or in any products, or make it available as a binary. It's just like LAME, and various open-source decoders for patented codecs. The source code can be distributed freely, it's only when someone uses it that the patent holders have to be paid. The patent holders can only sue people who use the final product, and of course that's pretty difficult to figure out since anyone can download the source code and compile it.
The situation is more murky for anyone who distributes compiled binaries, though, which is why most US-based Linux distros don't include LAME or any MP3 decoders, but usually provide convenient ways for you to download these things and install them with one or two clicks.
Fuck 'em.
Re:Patent and disclosure... (Score:4, Informative)
In addition, my understanding is that this goes even further - there's nothing preventing him from developing his own implementation of their patent. The only issue arises when he distributes it beyond himself. IANAL, so this part I'm only 99.9% sure on. :)
I'm afraid you're wrong here. In the US, a patent gives the patentee the right to exclude others from making, using, selling, offering to sell, or importing the claimed invention. 35 USC 271 [cornell.edu]. Now, of course, the patentee must actually sue for patent infringement, and that's unlikely in the case of garage tinkerers (those that don't post everything online, that is), but there is no exception to patent infringement for 'developing your own implementation.' There is a research exemption related to preparing data that will be presented to the FDA [wikipedia.org], but that's not relevant here.
Re:android hate (Score:2, Informative)
Somewhat hilariously, you really should have one after 'enthusiast'. You didn't need them after 'and', 'song', 'enough' and 'result'.
Stylistically, the first sentence there is a bit long. The explanation of why LDS is interested would probably make sense as a separate sentence. But that is just style, not grammar.
prior art (Score:2, Informative)
Re:Use pHash (Score:3, Informative)
Thanks - this is why I read Slashdot! :)
Is your library similar in concept to Complearn? (http://complearn.org/) From their homepage:
CompLearn is a suite of simple-to-use utilities that you can use to apply compression techniques to the process of discovering and learning patterns.
The compression-based approach used is powerful because it can mine patterns in completely different domains. It can classify musical styles of pieces of music and identify unknown composers.
The code was released in the original blog post (Score:4, Informative)
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.
Re:Patent and disclosure... (Score:4, Informative)
As far as Trade Secret goes: Shazam's own Avery Wang published the ins and outs of the Shazam algorithm in Proceedings of the ACM back in 2006. The paper also mentions similar systems by Phillips and others that go back to 2001 and beyond. There's also a reference to a talk by Shazam's Avery Wang at an international conference in Baltimore in 2003. They've plastered their secret sauce for all the world to see for years, and now they fuck with this poor guy!
Ironically, the example in the ACM article was the Beatles song "Let it be". That's precisely what I would suggest Shazam does.
Re:Why take down his blog? (Score:5, Informative)
they have to defend their patent or risk losing it.
That's trademarks.
Re:Patent and disclosure... (Score:3, Informative)
Prior art requires people other than you to know about it, which excludes trade secrets.
If I invent a clever device for squeezing orange juice, but keep it as a secret, either as a 'trade secret', or even if I just have it in my house and use it there and no one ever sees how it works, it does not count as prior art, no matter how well i can prove I was using exactly the patented process it before the patent.
Now, if I was selling that device years ago, with no thought to patents, and someone comes along and patents it, the devices I sold to others are prior art. Or, heck, if I was just selling blueprints.
But at that point, of course, it isn't a 'trade secret' and doesn't count as such under the law.
Basically, prior art requires that someone invented it beforehand and told others either directly, or indirectly by giving people the ability to reverse engineer their stuff and replicate it. Just having invented it and having sat on it doesn't help at all when fighting a patent.
Re:What the? (Score:3, Informative)
This may be true in the US, but apparently not in the Netherlands: the patent lawyer he contacted told him Shazam would have a case if he published the code.
No, the attorney told him he's risking a lawsuit and that releasing open-source code using patented techniques is a "grey area". None of that indicates a lawsuit would have merit. You can sue anybody for anything. By posting, you risk me suing you because I don't like your use of the letter 'z'. That doesn't mean I'd win.
Re:Well, really... (Score:5, Informative)
Don't even have to RTFA, or even the summary.. Just the tagline says specifically that its a patent claim. Whether or not the claim would actually stand up in court is up to a judge should it get that far (never mind international concerns), but everything I've seen so far tells me that Shazam has all the right in the world to at least make the claim.
As far as I know, neither "easy after someone else has thought of it" nor "it didn't take me very long" are terribly good defenses in a patent case. The one you're looking for is "figured it out before someone else has thought of it", which this guy obviously didn't do given that he specifically set out to duplicate the abilities of an existing product. At this point his only defense is to show that his algorithm is sufficiently improved over (or at least different from) Shazam's that it would warrant being called 'innovative' (at least in the US.. I don't know about the EU's rules). Also, being his own code isn't a defense in a patent case (whereas it would be a defense in a copyright case if it could be proven).
Re:I think someone fails to comprehend... (Score:4, Informative)
but profiting from the idea is patent infringement
No it is not. At all. There is absolutely no manner in what you just said is true. If I, as an example of 'making money off a patent', pick a patent and charge people money to have me explain exactly how the patented process works, step by step, and sell them photocopies of the patent, it's entirely legal.
In fact, industry engineering books, books telling you how to, for example, design a printing press, will often do just that. They'll explain all the processes to do something, including patented ones, and then will tell you 'this is covered by patent #num until this date, so contact Blah Blah Inc to get a license if you want to do it that way.'.
Patents are public information. It is entirely legal to get paid to do anything with that information. Anything.
The only thing that is patent infringement is a) using the methods described in patents, or b) building a device that uses those methods and giving it to other people for them to use. (And using the device yourself is, duh, (a). Technically, you can build a device, keep it, and never use it, though.)
Anything else WRT to the patent is legal. Like I said, you can even make copies and sell them, as patent descriptions can't be copyrighted.
The question is whether or not this source code is a device, which makes it illegal to give away, or if it's more akin to a diagram of that device, which is entirely legal to give away. Sadly for Shazam, the courts have always sided with the 'diagram' analogy of source code.
Re:What the? (Score:3, Informative)
No he told him it might get him sued. You can sue anyone for anything, and he does not have the money to fight so he quit. I can totally understand that.
previous works (Score:3, Informative)
Similarity application (Score:5, Informative)
More at http://www.music-similarity.com/ [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.
Re:Well, really... (Score:3, Informative)
Unfortunately patents are given on a loose ground as long as what's written is complex enough for the patent reviewer to have a hard time to grasp it fully. And the patent reviewer won't admit that he can't understand what's written so he passes the patent.
Then it's up to a court to invalidate the patent.
Re:Well, really... (Score:4, Informative)
'may be viewed internationally' -the whole article (Score:3, Informative)
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
Re:android hate (Score:3, Informative)
I had it as an app on my Sony Ericsson phone circa year 2000.
Re:Similarity application (Score:4, Informative)