
Show HN: A Scala Implementation of the Chromaprint/AcoustID Audio Fingerprinter - mgdigital
https://github.com/mgdigital/Chromaprint.scala
======
mgdigital
This has been my testbed project for learning Scala, I also learned a lot
about audio analysis, signal processing, fourier transforms etc. There were
already Python bindings for the original C++ library but no easy way to use it
on the JVM. I hope someone might find it useful/interesting. All feedback
welcome!

~~~
throwaway1492
What motivated you to learn scala? Scala doesn't seem to get much attention
nowadays.

~~~
ergocoder
I can answer it from my perspective.

Scala is a powerful language, so you can be succinct. It's static typed, so it
is maintainable as the codebase grows.

However, Scala is complex and difficult to learn. But overcoming that hurdle
is a one-time thing.

In my view, Scala shines for a small team with, at least, one scala expert. We
can achieve a lot of things with speed, safety, and relatively smaller
codebase (compared to when using golang or java).

To give a contrast example, if you hire a lot of developers and care about
perfect code quality, then golang is more appropriate.

~~~
karma_fountain
Just curious, why do you say golang is good if you care about code quality?

~~~
ergocoder
Golang is extremely simple. There aren't many choices in design. so it's
easier to control quality.

------
dylan604
Shoved up against AcoustID, I was hoping Chromaprint was an open source image
fingerprinting solution with AcoustID being the audio solution. Chromaprint
makes me think of image/video type terms. Anyone have any insight on how it
became the name of an audio processing package?

~~~
mgdigital
I agree it's a slightly quirky name. The "chroma" refers to chromatography. In
order to create the finger"print", an image is first extracted from the audio.
An image fingerprinter would probably use many of the same techniques (e.g.
fourier transform).

