I think it is very interesting that so many of the early applications of computer technology have to do with audio. John Bardeen's music box, the first commercial application of the transistor in hearing aids, the HP garage in Palo Alto was originally building audio oscillators, the iPhone evolved from the iPod, the internet was built on copper made to carry analog telephone calls, Bell Labs (ping!), the list goes on.
A friend of mine has the hypothesis that maybe human beings end up figuring out how to do kHz stuff before they go on to do MHz/GHz stuff. Not a perfect explanation but kind of attractive...
You can transform every audio signal into an electronic signal relatively easy - for graphics there is so much more complexity involved just in making them visible.
A speaker that translates electronic signal into sound waves is a super simple contraption at its core.
Edit:/ and audio is striking - it has a profound effect on every human (except deaf of course). If I wanted to demonstrate the power of electronics/computers I would choose audio as well.
That patent was filed in the US on 2004-10-21.
IANAL, but to me, that’s a point against that patent in the USA.
So if the paper was indeed published in Oct 2003 then all is well.
https://www.science.org/content/article/patent-first-publish...: “According to U.S. law, a patent cannot be obtained if an invention was previously known or used by other people in the U.S., or was already patented or published anywhere in the world. Furthermore, publicly using or selling an invention more than 1 year prior to filing a patent application completely bars you from ever winning a patent on that invention.
[…]
In Europe, for instance, there is no 1-year grace period--the chances of winning patent protection is lost the instant an invention becomes public”
Only if the paper was released between 2003-10-22 and 2003-12-31 would it meet the one year grace period requirement.
Looks like it’s not relevant in this case since they got a provisional patent in 2002, but that’s likely what the above was referring to as “a point against that patent”.
... in return for disclosing said innovation for use by others (in the patent) instead of keeping it secret. If the disclosure has already happened without the prospect of royalties (such as in a journal article), then the deal is off. But indeed various places have grace periods for that.
Creating Shazam in Java (2010) - https://news.ycombinator.com/item?id=32530056 - Aug 2022 (36 comments)
Patent infringement claim re: “Creating Shazam in Java” blogpost (2010) - https://news.ycombinator.com/item?id=9594480 - May 2015 (18 comments)
Creating Shazam in Java - https://news.ycombinator.com/item?id=5723863 - May 2013 (43 comments)
Implementing Shazam with Java in a weekend - https://news.ycombinator.com/item?id=1702975 - Sept 2010 (23 comments)
Longer list of relateds here: https://news.ycombinator.com/item?id=41132462.
How Shazam Works (2003) [pdf] - https://news.ycombinator.com/item?id=40029036 - April 2024 (29 comments)
How does Shazam work? (2022) - https://news.ycombinator.com/item?id=38531428 - Dec 2023 (154 comments)
An Industrial-Strength Audio Search Algorithm (2003) [pdf] - https://news.ycombinator.com/item?id=33299853 - Oct 2022 (1 comment)
Creating Shazam in Java (2010) - https://news.ycombinator.com/item?id=32530056 - Aug 2022 (36 comments)
Shazam turns 20 - https://news.ycombinator.com/item?id=32520593 - Aug 2022 (227 comments)
How Shazam Works (2015) - https://news.ycombinator.com/item?id=23806142 - July 2020 (7 comments)
Designing an audio adblocker - https://news.ycombinator.com/item?id=18855029 - Jan 2019 (186 comments)
Show HN: A radio/podcast adblocker featuring ML and Shazam-like fingerprinting - https://news.ycombinator.com/item?id=18459058 - Nov 2018 (2 comments)
Apple has completed its acquisition of Shazam - https://news.ycombinator.com/item?id=18066724 - Sept 2018 (316 comments)
Apple Buys Shazam to Boost Apple Music - https://news.ycombinator.com/item?id=15899065 - Dec 2017 (156 comments)
Apple is close to acquiring Shazam, sources say - https://news.ycombinator.com/item?id=15881896 - Dec 2017 (292 comments)
Show HN: Shazam-like acoustic fingerprinting of continuous audio streams - https://news.ycombinator.com/item?id=15809291 - Nov 2017 (76 comments)
How Shazam Works (2015) - https://news.ycombinator.com/item?id=15350729 - Sept 2017 (13 comments)
Tell HN: Shazam picks up song from my kitchen light - https://news.ycombinator.com/item?id=11593305 - April 2016 (2 comments)
How Shazam works - https://news.ycombinator.com/item?id=9870408 - July 2015 (48 comments)
Patent infringement claim re: “Creating Shazam in Java” blogpost (2010) - https://news.ycombinator.com/item?id=9594480 - May 2015 (18 comments)
The Shazam Effect (2014) - https://news.ycombinator.com/item?id=9593429 - May 2015 (37 comments)
The Shazam Effect - https://news.ycombinator.com/item?id=8634357 - Nov 2014 (34 comments)
Ask HN: Is there an audio search technology that finds exact and similar audio? - https://news.ycombinator.com/item?id=8420141 - Oct 2014 (3 comments)
Source code example of the Shazam algorithm - https://news.ycombinator.com/item?id=5724442 - May 2013 (16 comments)
Creating Shazam in Java - https://news.ycombinator.com/item?id=5723863 - May 2013 (43 comments)
An Industrial-Strength Audio Search Algorithm (Shazam) - https://news.ycombinator.com/item?id=2621103 - June 2011 (4 comments)
Shazam's Search for Songs Creates New Music Jobs - https://news.ycombinator.com/item?id=2215295 - Feb 2011 (1 comment)
How does the music-identifying app Shazam work its magic? - https://news.ycombinator.com/item?id=2214992 - Feb 2011 (2 comments)
How Shazam Works To Identify (Nearly) Every Song You Throw At It - https://news.ycombinator.com/item?id=1727891 - Sept 2010 (1 comment)
Implementing Shazam with Java in a weekend - https://news.ycombinator.com/item?id=1702975 - Sept 2010 (23 comments)
Shazam: not magic after all - https://news.ycombinator.com/item?id=909263 - Oct 2009 (28 comments)
How does the music-identifying app Shazam work its magic? - https://news.ycombinator.com/item?id=893353 - Oct 2009 (16 comments)
Shazam Has 50 Million Users and Secures Investment From KPCB - https://news.ycombinator.com/item?id=882537 - Oct 2009 (13 comments)
(1) deriving a simple fingerprint from the FFT of the audio signal
(2) simple indexing
(3) simple similarity search
You need the signatures of all music on earth for this to work though ;)
Not that difficult with a Spotify subscription. It will take some time, though.
The linked one is just for the US version of a singular patent. It had applications in 14 other countries and WIPO, 6 of which are still active (plus US).
I'm curious about the legal consequences of freely distributed software (e.g. open source). I wonder if the author/provider could be held liable if they: - knowingly (passively) or actively market to US customers (e.g. provide support) - are aware that US users are using it, and take no actions to prevent its distribution etc.
Can someone share their knowledge on this?
If European software incidentally infringes a US patent, and it is distributed freely, is the provider then liable? E.g. is Github basically liable for restricting US users from access to (distributing) patent infringing software?
https://blog.shp.law/index.php/2021/03/28/open-source-softwa...
I'm sure there's tons of patent violations in FOSS, but patents are usually just used to go after companies with big pockets.
Now I'm curious how the Fourier (?) transform of a signal at a __single__ given timepoint is even defined ...
The latency for detecting audio-frequency waves is quite bad
This also stymied my desire to put digital audio onto a vinyl record :( literally not enough bandwidth
Compiling and running that source code on your computer/as part of a wider system may violate a patent, but my impression was that patents are not relevant to the actual code. Are there test cases in the US around pure source distribution of a patented algorithm? Particularly post-Alice?
I.e. if any algorithm was already implemented, in some variation, then the patent is not valid?
For example, for the infamous Amazon 'one click purchase', if a similar pattern was used, maybe a 'one click start vacuum cleaner robot', would it that patent then be invalid?
For example, Tesla just patented the Robotaxi one year ago, despite having open-source solutions like Apollo Self-Driving platform.
Patents are really an obsolete system that favors the super-rich and the lawyers.
Edit: just to be clear there are design patents too, but I don’t think they’d be granted for software.
[1] https://github.com/cgzirim/not-shazam?tab=readme-ov-file#resources--card_file_box
For a while, it seems like Soundhound was about to shut down. It wouldn't match anything released in the last 12-18 months, but that seems to be fixed.
The conclusion appears to be that BeatFind and Shazam know the most songs, but are also somewhat complementary and all of the services had at least one song they uniquely recognised.
---
Fun facts:
* Night Driver (W) said "1 Shazams". I think I was the first person to ever Shazam that. Some of the most obscure things had hundreds, often thousands of shazams!
* You know where they are taking the hobbits but none of the services do!
========
- ABC = found the song
- # = number of attempts
- f = exceptionally fast matching (when it did match, might not be first attempt)
- ~ = knew one of the songs
BeatFind: 2B C 1E 2G 2H 1I 2Jf 2Lf 4M 2Nf 2Of 1Pf 1Rf ~S 2T 1Uf 1Vf 1W 1Xf Y Z
SoundHound: A 1B 1E 2F 1G 2H 2If 1L 2O 3P 2R 1Tf 2U
Shazam: 1Bf 1D 1E 1F 1G 1Hf 1I 2J 1L 1M 4N 1O 1Pf 1Rf 1Tf 1Uf 1V 2W 1X Y Z
MusixMatch: crashes on startup, presumably it realizes it won't be able to show me ads
missingno
Shazam: A C K Q S
SoundHound: C D F J K M/N Q S V W X Y Z
BeatFind: A D F K Q
non-universal finds (repeated letter = unique = counts double; slash means same artist so should be counted as one)
Shazam: DD F J M/N V X Y Z
SoundHound: AA F
BeatFind: CC J M/N S V X Y Z
A: Levan Polkka Epic Orchestral Cover version
B: Pokémon red/blue soundtrack
C: Mayhem (various songs, it seems either they have all or they have none)
D: Art Now ft. Snowflake
E: Hero's Choice
F: Three Days Grace - Scared
G: Syrian - Supernova
H: The Explosion - Here I Am
I: The Von Bondies - C'mon C'mon
J: Frank Klepacki - Scouting (C&C TibSun)
K: Conspiracy - Chaos Theory (demoscene)
L: Cheshyre - Madness6 (remix) (Newgrounds ID 77998)
M: Dimrain47 - Twilight Techno
N: Dimrain47 - Cloud Control
O: DragonForce - My Spirit Will Go On
P: Yuki Kajiura - The First Town (SAO)
Q: THEY'RE TAKING THE HOBBITS TO ISENGARD! THE HOBBITS- THE HOBBITS- TO ISENGARD! TO ISENGARD!
R: Faithless - Insomnia
S: Age of Empires 1 soundtrack
T: Moulin Rouge - El Tango De Roxanne
U: Van Canto - Master of Puppets
V: Slack Bird - Jouni
W: Floppytronic - Night Driver
X: EgoSalad / Kitboga - Breathe in
Y: Floppy Drive music: top 4 hits on yt: sweet dreams, imperial march, ghostbusters, beat it. Only ghostbusters was known to any
Z: Obsidian Shell - Orphanage
---Note that what I did not test/review introducing noise (like people talking through it) or filtering (like when you hear the music through a wall)
- The instructions seem not to be the best to get it up and running (e.g. "cd not-shazam" and just a few lines later "cd not-shazam/client")
- MongoDB is needed but information on how to hook it up/use it are absent (I would make the DB swapable and provide something less intrusive like sqlite)
- If replacing MongoDB is not possible, I would provide a dockerfile and a docker compose to allow easy startup and testing.
- The client npm install has 8 critical vulnerabilities, these might not actually matter but it makes me hesitant to continue testing
- You might not care about the patent or the copyright, but I would still change the name at the very least. Github itself is located in the US and will remove the project if they receives a DMCA.
- Last, this might not be as important, I would add a way to add songs from wav files. Not everything I'd want to test this with is on spotify or youtube.
I'm not saying this to discourage you or anything, I just think the project needs that little extra bit of polish. Minor things will cause people to discredit or ignore a project. If I get around to it I might make a PR for the project. I want to experiment with audio matching outside of the music space, and your project seems like it'll be the easiest to modify.
Edit: Formatting
I agree that the project could definitely use some polishing. I'll prioritize improving the setup instructions and look into adding a file-based DB for flexibility, as well as resolving the npm vulnerabilities. Adding support for directly fingerprinting wav files is a great idea and something I'll prioritize, too.
Regarding the project name, I understand the potential legal implications and will definitely change it. I'd appreciate any suggestions you might have.
I'm excited about the possibility of your contributions. Please, feel free to open a PR whenever you're ready.
Thanks again for your feedback!
iirc Bittorrent uses a DHT, but the hashes are of the entire content. Not so useful for, say, finding the original version for poorly attributed derivative works.
Tineye is sometimes good for finding the original version of an image.
Algorithm don't matter, only data matters
Or is the algorithm more feature hash than a clusterable feature vector?
Using exemplar fingerprints, a representative sample of an artist's music, is a good approach, but success would require detailed fingerprints, a varied dataset, and a well-chosen algorithm.
For artists who change styles, time-series analysis can capture their evolving sound.
The solution will likely need machine learning.
The current solution doesn't use feature hashing or clusterable feature vectors. Instead, it relies on audio fingerprinting, which breaks down short audio samples into unique patterns or "fingerprints" for quick comparison with a large database of known songs.
https://github.com/cgzirim/not-shazam/blob/888070f3434acbc0a...