Hi folks,
After working on it on and off for about three years now, I figured it
was time to shill my little program to you fine people.
https://sndc.studio
It's a small (<10k SLOC) program to compile JSON-like "source" files
into sound effects. Its main feature is its simple-yet-powerful
modularity: you can design synthesizers or other instruments using
built-in low level DSP functions and import them as stand-alone modules
into higher level files.
Its main non-feature is that it's non-real time so it simplifies the
code a *lot*, and it can generate the same sound on super fast war
machines or old 2004 thinkpads. It does mean that you can't tweak or
experiment live however.
It fits very well the git/Makefile scheme, you can version your sound
effects, only re-generate the parts that you modified and so on.
It's completely audio-agnostic, in fact you can use it for anything
vaguely DSP-related, there are only three internal types:
- floats
- buffers (of floats)
- strings
It takes in SNDC files and spits a raw stream of floats in stdout,
leaving it to the user to play it with aplay or export it to more
civilized formats with sox.
It doesn't even have a notion of channels. Everything is mono until you
decide to interlace multiple channels into one buffer.
Finally, it has quite a bunch of built-in modules like basic oscillator,
noise, reverb, echo, filters, fft and reverse fft and all that stuff.
It only has one dependency to build it: FFTW3.
I'm keen to get feedback if anyone is into DSP/audio synthesis as much
as I am.
Cheers,
syg
Received on Sun Dec 24 2023 - 02:19:48 CET