A curated list of Music DSP and audio programming resources
github.com
github.com
It goes over the basics like FFTs, covers audio features used in analysis (e.g spectral, chroma, etc), and goes in-depth into advanced techniques such as audio fingerprinting, beat tracking, harmony analysis, etc (stuff that you would otherwise have to dig into research papers for!). The book is fairly readable as well so you don't need to have a strong engineering or music background to dig into it.
Some more analysis/MIR links:
Great notebook to go alongside FMP: https://musicinformationretrieval.com/
One of the most widely used libraries for MIR in Python: https://librosa.org/doc/latest/index.html
A library for MIR in JS: https://github.com/meyda/meyda
Or maybe I missed it ... it wouldn't be the first time.
It expanded my world a bit. There are frameworks and libraries and programing languages here. It looks like a well compiled list.
It's an in-browser audio devtool for writing JS scripts that alter and generate sound in-place. Currently working on another more DAW-like version built around real-time processing.
I dabbled with Teensy boards for a while due to having a decent audio library that's pretty easy to use.
Overall there are JUCE embedded support.
If you need more bare bones there are some DSP only resources. Not sure if I saw there the RtAudio which is also very minimal - https://www.music.mcgill.ca/~gary/rtaudio/
Elk is awesome but it's a proper linux distro, which may require more resources than the typical embedded audio device. But it's remarkable how much you can do these days.
I don't think JUCE belongs in the same conversation. It barely runs on Linux and the DSP library is not suitable for production applications (the IIR filter implementation requires allocation to set its parameters!)
In the end I switched to PortAudio which works fine with low-latency backends.
You’re right I meant - https://ccrma.stanford.edu/software/stk/tutorial.html
> Elk is awesome but it's a proper linux distro, which may require more resources than the typical embedded audio device
In comparison to teensy above I’d say the term embedded is quite broad.
> I don't think JUCE belongs in the same conversation
JUCE is modular. And as I’ve wrote above the term embedded is very broad and many times consider general purpose cpus.
There are also chipsets/SoCs with separate DSP unit which requires its own toolchain and usually include basic building blocks. SOUL in the list aims in the future to abstract also for such chips similar to GPUs abstractions (eg opengl)
Faust is also popular for this purpose (this is mentioned in the linked page). You write audio code in Faust and it gets compiled to tight C code, so that works well for embedding. It also has an impressive set of libraries. For a different approach, you could also try Soundpipe. It's a C library, not initially meant for embedding but it's small so it could work.
That would be like someone linking electric motors and someone posting only "I can't wait to buy a tesla roadster".
I had to google it. Despite being a musician and programmer for decades, I don't remember ever seeing that acronym before!
- chuck
- snd
- stk
- common music
- processing