Recreating Serato's spectral waveforms in C
I've been spending a lot of time in Serato Studio lately. Its simplicity is enticing, and I'm a lifetime licence customer (we'll see how long a lifetime is for this company).
If the (audio) job calls for bigger guns, I move to other tools:
- analysis: deCoda, RipX DAW, BeatNet, Acoustica, etc.
- linear recording: LUNA, Logic Pro
- sequencing: Maschine 3
What bugs me about all of them is that the waste of pixels on screen for their waveform rendering. You just get a solid, symmetrical plot - in 2025 (exception: RipX, which is space-age tech)! Sure, you can switch some of them to show spectrograms, but that's also not helpful.
Meanwhile, DJs have enjoyed the best visualization - spectral waveforms - and it hasn't made the jump yet to mainstream software.
So for my own sanity and maybe to inspire someone else, here's libdjwaveform, a minimal C reference implementation using FFTW, that can render spectral waveforms, with plenty of options.
Is it production ready? Well - do you feel lucky?
Demo output:
Cheers ☕