sndkit

sndkit

Overview

sndkit (or SNDKIT), self-described as a "sonic toolkit for everyone", is a project started in 2020 that aims to be a loose collection of audio DSP implementations written in a literate style.

The main landing page can be found here.

Zet Updates

Page Updates from this wiki's zet.

2023-03-22 06:40:58: updated tract to have velum control. It was originally a part of voc, but it took me FOREVER to get around to adding it.

2023-01-19 07:25:45: have I mentioned euclid yet? That was a cool project. Got euclidean rhythms out of my system for a while.

2023-01-19 07:25:17: been a while since I said anything here, but gtick just got made and it should help a lot with the (gestlings) project.

2022-11-29 05:29:27: added euclid a few weeks ago, thus ending my journey to understand and implement a euclidean rhythm algorithm.

2022-03-28 20:44:07: brown added to sndkit

2022-02-09 15:57:35: this took longer than I care to admit, but here it is: shelf, based on the design found in the audio EQ cookbook.

2022-01-28 15:21:38: added new algorithm: qgliss, a phasor clocked sample-and-hold quantizer with glissando-like interpolation.

2022-01-24 12:50:43: the new rephasor algorithm doesn't work. I found a bug when I tried slowing it down by a factor of 0.25.

2022-01-14 21:37:10: rephasor has been completely reworked to have autosync support. It is now much more robust and useful.

2021-12-26 21:39:23: an initial test suite has been added to sndkit, inspired by the test suite used in (soundpipe)

2021-12-02 09:47:38: getting ready to port the good bits of (soundpipe) into (sndkit)

2021-11-23 10:38:56: added coding_conventions page. I almost want to add a "how to read" page to to help people learn how to read the sndkit literate programs as well.

2021-10-25 13:08:54: new algo for (sndkit): softclip applies soft clipping to an input signal using a tanh approximation. There is also a drive parameter so it can be used as a saturation/distortion effect.

2021-10-03 19:08:19: added an initial ugens page for (LIL) in (sndkit)

2021-10-03 18:23:28: added an overview to LIL for the (sndkit) project LIL_overview.

2021-10-02 18:39:07: just added sparse to sndkit, really so I could get something approximating vinyl noise. I'm interested in making a loop for #looptober in the style of distintigration loops.

2021-09-22 14:30:40: lots of work behind the scenes for (sndkit), in prep for the libre music challenge this week, and my upcoming (synthwavefromscratch) blog series. New algorithms include butterworth and a saw table generator in the gen page.

2021-09-19 10:20:47: an ANSI-C port of the AirWindows #verbity plugin has been added to (sndkit). This is significant because it is the first time I have added third-party DSP code that I do not intend to turn into a literate program. A big change in scope for what sndkit is and could be.

2021-08-22 14:59:50: In scheming my next breathing card, I found myself wanting to be able to convert clocks into phasors to do frame-accurate video stuff and use (gest). I've put this off for a while because there's no great way to do it, but I think clkphs is about as good as it can get. Now I need to adjust gest to ignore negative conductor signal values and I should be good to go!

2021-08-03 17:23:50: initial sndkit page added: vowshape.

2021-07-29 17:57:00: new (sndkit) module created: vowel, a vowel filter.

2021-07-26 20:43:02: I may even take the testing framework and write a version that does tests using (LIL). Could make things a lot easier. Less keystrokes for sure.

2021-07-26 20:41:24: feeling pretty confident that most of (soundpipe) could be ported to (sndkit). Well the worthwhile bits that aren't generated code from FAUST.

2021-07-18 22:40:57: lots of refactoring efforts done tonight to (sndkit) in order to import a copy of it into (monolith). it's a little messy at the moment, but it works.

2021-07-13 11:25:48: updated phsclk to handle 1-tick. also made a node for it. very helpful tool for debugging (gest).

2021-06-26 17:37:42: The blep algorithm has been implemented and published to (sndkit). That triangle wave took me on quite the adventure!

2021-06-23 10:36:19: as promised, the vocal tract model used in (vocshape) has now been ported to (sndkit): tract.

2021-06-19 14:57:24: The glottis page is done and published.

2021-06-19 10:48:30: some initial stabs getting the glottis code from (voc) into (sndkit). everything works, it just needs better words and TeX equations.

2021-05-31 16:09:09: I think I'm nearly ready to port components from (voc) into (sndkit). that would be very very cool.

2021-05-24 08:03:08: created env, an envelope generator kind of like tenvx in soundpipe: env.

2021-04-04 21:20:59: phew! after many weeks of passive tedious work, I finally got the existing (sndkit) modules working in (LIL). Moving forward towards more interesting things now.

2021-04-01 16:08:59: added chorus to (sndkit): chorus.

2021-03-14 11:00:24: another small but helpful algo ported from soundpipe today: mtof. I've written far more about it than it deserves haha.

2021-03-14 09:28:01: smoother is now live. this aims to be a drop-in replacement for the soundpipe module with the same name. to be replaced soon enough there.

2021-02-10 22:02:22: biramp has now been added to sndkit sndkit. yet another transformation to apply to phasors.

2021-02-03 10:14:42: new (sndkit) algorithm: swell is a smoothing filter whose smoothing amount changes based on the direction of the input signal.

2021-01-30 12:26:28: added a dynamically generated (zetdo) TODO page for (sndkit): (sndkit_TODO).

2021-01-30 10:56:08: phasor algorithm added to sndkit today: phasor. The tangled code is also now used as a drop-in replacement for the phasor algorithm in soundpipe.

2021-01-27 09:35:47: initial words created for phasor and biramp. will import into sndkit when finished.

2021-01-20 12:46:56: one of the nice things about LIL is that it's very editor agnostic, unlike LISPy languages like janet or scheme or fe. It's also smaller than Lua too.

2021-01-20 12:45:47: today someone mentioned the idea of providing some test executables in (sndkit). This got me thinking about this idea I've had for a while of using the LIL scripting language in a project. That + patchwerk + glue could be interesting, and very flexible moving forward.

2021-01-19 12:01:05: I held off from doing this move for a while because I didn't want this project to grow too quickly. Popular projects are a double-edged sword...

2021-01-19 12:00:10: In other words, it makes it almost as easy to jump in and use as (soundpipe).

2021-01-19 11:59:02: a local copy of worgle has been imported into sndkit, which is a big step, as it reduces friction for those wishing to use the code.

2021-01-15 09:06:45: decided to publish some the initial words and ideas for my granular delay line I came up with a few months ago. No code yet, but I think it's a solid start. bugz. My hope is to make it a part of (sndkit) as well.

Twtxt updates

Here are some relevant twtxt tweets from my feed:

2021-10-02 18:38:11: new algo in #sndkit sparse is a sparse noise generator, similar to velvet noise, that produces a random series of impulses at a specified rate in Hz.
2021-08-22 15:27:44: new (sndkit) algo: clkphs.
2021-06-26 17:38:01: new (sndkit) algorithm: blep.
2021-06-23 10:36:44: new algo in sndkit: tract, a physical model of the vocal tract.
2021-06-19 14:56:48: glottis is an analytical model that approximates the kind of sound the human glottis makes, and is now available as a sndkit model. This is extracted from the (voc) project.
2021-05-24 08:04:41: new (sndkit) algorithm: env.
2021-04-01 20:51:57: published chorus to (sndkit).
2021-03-28 11:23:15: the (sndkit_TODO) page is back online.
2021-03-05 16:17:54: added a new algo to sndkit scale.
2021-02-10 22:01:18: added biramp to sndkit: biramp.

home | index