sndkit
Overview
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 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 core C api that allows the algorithms to be connected together to created patches. Patches can be conveniently built up using the LIL scripting language, included with the sndkit distribution.
Code and Installation
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:
make
This will produce an executable called sndkit
, which is
really a LIL interpreter fortified with sndkit functions.
You can test it with:
./sndkit examples/synthbass.lil
Which should produce a WAV file in the current directory called
synthbass.wav
.
sndkit can be installed with:
sudo make install
Realtime Support?
It 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.
Available DSP Algorithms
The HTMLized version of the algorithms can be browsed here.
Licensing
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.