[HN Gopher] How Audio Fingerprinting Works
___________________________________________________________________
How Audio Fingerprinting Works
Author : dceddia
Score : 217 points
Date : 2021-12-31 16:53 UTC (2 days ago)
(HTM) web link (emysound.com)
(TXT) w3m dump (emysound.com)
| allcentury wrote:
| Wonderful article, I knew some of this but learned a lot more.
| heinrichf wrote:
| (2020). See also https://news.ycombinator.com/item?id=9870408,
| which I found more interesting (and that the author should
| probably have referenced).
| TacticalCoder wrote:
| A very long time ago (around 2000) I came up with the idea to
| record my car's engine sound, use a FFT on that, find the
| dominant frequency change over time, and then use the car's
| gear ratio / wheel size to find back the power curve. I'd drive
| my car both ways on an empty street, in 2nd gear, from idle to
| the rev limiter. Then I'd compute the two curves and average
| them.
|
| It was fascinating: the curve plotted was matching nearly
| exactly the power curve given by the car manufacturer.
|
| I think it's the first Java program I wrote. I copy/pasted some
| discrete FFT code I found somewhere.
|
| It was a nice little project for it's way simpler than trying
| to fingerprint audio using FFT like Shazam does: yet I got to
| learn a bit about harmonics, FFT / amplitude over time vs
| amplitude over frequency, car drag coefficient, etc.
|
| As I never throw anything I probably still have that crappy
| code somewhere!
| crmd wrote:
| Cool stuff. You might enjoy this video[0] where Ben K. from
| Applied Science measures the RPM of his car engine via the
| cigarette lighter by measuring the inductive ignition spikes
| with an FFT on his scope.
|
| [0] https://youtu.be/t0ToYhjYV9I
| ComputerGuru wrote:
| Thanks for sharing that! Aside from the excessive fawning
| over the scope that was a great video - I think it's
| awesome that the result differed from expectations with the
| (spoiler alert!) DMC-12's uneven firing pattern and made
| the whole thing more interesting.
| analog31 wrote:
| You could also use the accelerometer in the phone to measure
| power transfer.
| sytelus wrote:
| This is one amazing article. Bravo!
| talkingtab wrote:
| Outstanding. I don't know much about audio or fingerprinting, but
| I know much more after reading this article. Thanks.
| motohagiography wrote:
| Seconded. Absolutely superb. I use Audactity and ffmpeg for
| analyzing sounds all the time and had only intuited these
| foundations, which are described in such a straightforward way
| here.
| dceddia wrote:
| I've wanted to learn more about DSP for a while and recently
| started working through The Scientist and Engineer's Guide to DSP
| [0] and it's been fantastic. It's much heavier on explanations
| and lighter on math equations than other books or courses I'd
| seen previously. It's helping me build some real intuition around
| this stuff.
|
| That book plus this article's excellent explanations really
| helped things click for me and I'm very grateful to both authors!
|
| 0: https://www.dspguide.com/
| ReactiveJelly wrote:
| I've been trying to figure out how to make IIR filters for a
| software modular synth, off and on for years now. (Basically,
| given parameters like cutoff frequency and dB per octave
| rolloff, how do I find the filter coefficients? There must be
| closed-form functions for this buried inside VCV Rack,
| Audacity, and LMMS somewhere, but the code is hard to follow. I
| don't know how all the Wikipedia articles and DSP guides manage
| to skip over this step, the only step I don't understand. Some
| of them even punt to "Call this Matlab function" or "Use this
| PHP page that generates C code for you" Bleh!)
|
| I did encounter this book, but it still couldn't help me figure
| it out. I bookmarked it to try again.
| tgv wrote:
| First: cutoff, resonance, filter slope, etc., can be built
| with FIR (finite impulse response) filters. You can describe
| the passive circuit with a transfer function, which can be
| implemented in DSP using a z-transform. You can also describe
| a filter with poles and zeroes, and transform those. There's
| a bunch of resources on the web, e.g.
| https://ccrma.stanford.edu/~jos/filters/, but many assume you
| know something of electronics.
|
| Recurrent filters don't have closed form solutions, and their
| implementation is a bit of an art. Plugin maker Urs Heckmann
| (from u-he.com) did a (rather successful) attempt at modeling
| the filter from an old synth with various implementations,
| and let people test them in the wild. He blogged about it,
| but I can't find all relevant posts. This might be a starting
| point: https://urs.silvrback.com/zero-delay-feedback
|
| This course
| (https://www.staff.ncl.ac.uk/oliver.hinton/eee305/) is based
| on a book and links to the chapters, but there's a lot more
| (check the websites of MIT or Stanford's EE department for
| online courses).
| Sesse__ wrote:
| These are the formulas you want:
|
| https://webaudio.github.io/Audio-EQ-Cookbook/Audio-EQ-
| Cookbo...
|
| They are the classic IIR biquads. If you want steeper
| filters, just run multiple equal filters in series (high-
| order IIRs are prone to numeric instability).
|
| A more modern formatted version exists at e.g.
| https://www.w3.org/TR/audio-eq-cookbook/ .
| adriancooney wrote:
| I've had similar struggles. I found this comparison between
| Ableton's EQ Eight and Pro-Q by Dan Worrall [1] to be
| incredibly (and unexpectedly) informative on the subject. He
| is a very good teacher and an expert in the area. Maybe it
| might on your journey.
|
| [1]: https://www.youtube.com/watch?v=ebBqP2PteAQ (be sure to
| watch from 15min+ onwards but the entire thing is a treat)
| vitorsr wrote:
| Conditioned on what you want to achieve, I would suggest
| against, strongly against, or very strongly against avoiding
| (applied) mathematics.
|
| In any case, I suggest flipping through the IEEE Signal
| Processing Magazine [1] and reevaluating your learning path.
|
| [1] https://signalprocessingsociety.org/publications-
| resources/i...
| dceddia wrote:
| I'd say my goal is not so much about _avoiding_ math but more
| about learning intuition-first rather than equations-first.
| Top-down vs. bottom-up, maybe. Most of material that I 've
| encountered about math-heavy stuff tends to do the latter.
|
| I imagine there are many people who're great at picking apart
| an equation and deriving things from first principles; but
| for me, I find it more manageable to get the big picture
| first, visualize what's going on, and then finally learn the
| math behind it. So far the DSP Guide book is doing a great
| job of presenting things that way.
|
| Another good example of this kind of style is
| https://betterexplained.com/ (some of their articles are
| great companions to these DSP topics actually!)
| knaik94 wrote:
| Can you elaborate on why you so strongly advise against it?
| vitorsr wrote:
| I can only invite you to flip through current technical
| texts in signal processing and go through the thought
| exercise of defining the envelope of prior knowledge
| required.
|
| I recommend the IEEE Signal Processing Magazine as it is
| the flagship magazine from the IEEE Signal Processing
| Society. IEEE magazine articles are written "to appeal to
| non-experts as well as experts in the field" [1] and
| therefore target a broad engineering audience while
| remaining current and being peer-reviewed.
|
| [1] https://magazines.ieeeauthorcenter.ieee.org/get-
| started-with...
___________________________________________________________________
(page generated 2022-01-02 23:01 UTC)