sndkit is a sonic toolkit for computer music composition.
It aims to bring a collection of useful audio DSP algorithms together in one ecosystem, and document how they work.
Each algorithm in the @!(ref “algos” “sndkit collection”)!@ is written using literate programming, a paradigm that aims to present computer structure using natural language. This means that each algorithm has both an implementation (in ANSI C) as well as a brief explanation for how the implementation works.
Sndkit provides a @!(ref “core” “core C api”)!@ that allows the algorithms to be connected together to created patches. Patches can be conveniently built up using the @!(ref “LIL_overview” “LIL scripting language”)!@, included with the sndkit distribution.
The source code for this wiki can be found on SourceHut and github.
A standard POSIX C compilation environment is required (clang/gcc, Make, etc). There are no external third party libraries. Everything required is included inside the codebase, including a version of the tangler program required to convert literate programs to C code.
To compile, run:
makeThis will produce an executable called sndkit, which is
really a LIL interpreter fortified with sndkit functions.
You can test it with:
./sndkit examples/synthbass.lilWhich should produce a WAV file in the current directory called
synthbass.wav.
sndkit can be installed with:
sudo make installIt is possible to run sndkit in realtime. However…
To keep things reasonably portable and manageable, realtime audio support is left as an exercise to the reader ;)
The only thing sndkit supports is offline rendering WAV files.
The HTMLized version of the algorithms can be browsed @!(ref “algos” “here”)!@.
The text in this wiki is licensed under the Creative Commons Zero license, otherwise known as “CC0”.
All tangled output is dual-licensed under MIT or the Unlicense.
Non-tangled code
(such as those found in the extras folder) may
have their own permissive license.