
Audio from Scratch with Go: Extracting Breakpoints - Insanity
https://dylanmeeus.github.io/posts/audio-from-scratch-pt7/
======
nell
This is exactly the type of thing I'm on HN for. Someone in a different part
of the world walking us through a very specific technology with examples.

~~~
panpanna
My thoughts exactly!

Great blog, love to see more

------
erikschoster
It's nice to see this sort of thing here. FWIW in computer music parlance this
is usually called an envelope follower.

Here's an example of a realtime implementation:
[https://ccrma.stanford.edu/CCRMA/Courses/220b:1998/220b-98-0...](https://ccrma.stanford.edu/CCRMA/Courses/220b:1998/220b-98-07.html)

~~~
qmmmur
it's also not a very clever one. I think what the author wants to do is
actually segmentation which is much more complex program. the best algorithm
Ive used for doing any kind of amplitude following is a detrender with two
envelopes running at different rates. next to that is Foote's audio novelty
audio algorithm.

------
dbetteridge
I enjoyed this and am going to take a look at the rest of the series, always
wanted to learn a bit more about audio processing.

~~~
Insanity
Thanks! Glad you like it :)

------
BBkid
Great series. I always wanted to learn about audio processing. Any learning
material for this? Besides this series obviously

~~~
blovescoffee
It depends on what programming language you'd like to work in and what exactly
processing means to you. Are you interested in audio analysis or writing
programs that generate audio like a synthesizer for a DAW? For audio analysis
I'd recommend essentia a C++ library with Python bindings. For writing
plugins, I'd recommend you take a look at JUCE, which has a decent set of
tutorials on their website. You'll notice that C++ is pretty standard in
industry because speed and hardware access are important. If JUCE is the sort
of thing you're looking for, I'd also recommend the Audio Developer Conference
talks on Youtube.

~~~
monadic2
I've found rust to be very capable as well, if lacking in runtime libraries
with native bindings. It's not too difficult to bind into coreaudio and jack,
though.

~~~
blovescoffee
I've actually been doing a bit of research into using Rust for an upcoming
project. The JUCE library is just so fully featured that it would be an undue
burden to use any other language to write audio software in. Still, I think
Rust is an attractive language for this space and there's definitely some talk
about expanding libraries for a JUCE alternative.

