Commit1af5062bRecorded18 Sep 2026Repositorysigil-dsp
Release v0.3.2: fm4 voice and the chorus, crush and comp nodes
Changed
RELEASES.md | 21 +++++++++++++++++++++
package.sgl | 2 +-
2 files changed, 22 insertions(+), 1 deletion(-)Diff
RELEASES.mdmodified
@@ -1,5 +1,26 @@
1
# sigil-dsp Releases 2
+3
## v0.3.2 — 2026-09-18+4
+5
This release gives motif the primitives for a fat, FM-heavy tracker sound: a real multi-operator FM voice instead of the two-operator `fosc`, and the three effects a demoscene mix is made of. Everything is plain C99, builds for wasm32-wasi as well as native, and renders the same samples on both.+6
+7
## Changes+8
+9
- `make-fm4` / `fm4-compute` in `(sigil dsp osc)`: four sine operators, an eight-entry DX/OPL-style algorithm table (stack, two-into-one, branch, three-into-one, pairs, stack-plus-one, one-into-three, additive), per-operator ratio, level and ADSR, feedback on operator 4, a modulation index that is a per-sample argument, and a velocity-to-index curve. With index 0 every carrier is a pure sine, so a `fosc`-style patch is a special case.+10
- `make-chorus` / `chorus-compute` in `(sigil dsp fx)`: two LFO-modulated taps on one delay line, with rate, depth and mix as per-sample arguments.+11
- `make-crush` / `crush-compute`: tanh drive, bit-depth quantisation and sample-and-hold rate reduction in one node; drive 0, 16 bits and rate 1 pass the signal through untouched.+12
- `make-comp` / `comp-compute`: a feed-forward peak compressor with one-pole attack and release; threshold and ratio are per-sample arguments, attack, release and makeup are set at creation. It is mono; a host that wants linked stereo runs one instance on a shared detector or waits for a stereo variant.+13
- The new declarations carry specs and docstrings, so `sigil exports` and the MCP tools show their signatures.+14
- `src/c` is now an exported include directory, so a consumer that links the static library can `#include "fm4.h"`, `"fx4.h"` or `"ks.h"` instead of mirroring the structs.+15
+16
## Upgrade notes+17
+18
No existing binding changed. Consumers that mirror `sp_ks` in their own C can switch to `#include "ks.h"` now that the header is on the include path.+19
+20
## v0.3.1 — 2026-07-12+21
+22
Add a first-class web (wasm32-wasi) build config so sigil-dsp compiles for the browser via `sigil build --config web`, alongside the native build.+23
24
## v0.3.0 — 2026-06-25 25
26
### Changedpackage.sglmodified
@@ -5,7 +5,7 @@
5
6
(package 7
name: "sigil-dsp"−8
version: "0.3.1"+8
version: "0.3.2" 9
sigil: "0.20" 10
description: "DSP primitives for Sigil (SoundPipe bindings)" 11
url: "https://codeberg.org/sigil/sigil-dsp"