AtlatestRepositorysigil-dsp
1# sigil-dsp
2
3DSP primitives for Sigil via vendored [SoundPipe](https://github.com/PaulBatchelor/Soundpipe).
4
5## Modules
6
7- `(sigil dsp core)` -- DSP engine lifecycle, function tables
8- `(sigil dsp osc)` -- Oscillators: sine, saw, square, triangle, FM, phasor
9- `(sigil dsp filter)` -- Filters: Moog ladder, Butterworth, resonant LP, DC block
10- `(sigil dsp env)` -- Envelopes: ADSR, triggered, line, exponential, portamento
11- `(sigil dsp fx)` -- Effects: stereo reverb (revsc, zitarev), delay, variable delay
12- `(sigil dsp noise)` -- Noise: white, pink, brown
13- `(sigil dsp util)` -- Panning, dynamics, timing, random modulation, scaling, WAV output
15## Usage
17```scheme
18(import (sigil dsp core)
19 (sigil dsp osc)
20 (sigil dsp filter))
22(dsp-init 44100)
24;; Create a 440Hz sine oscillator
25(define osc (make-osc 440.0 1.0))
27;; Or use the convenience constructor
28(define saw (make-oscillator 'saw 220.0 0.8))
30;; Create a lowpass filter
31(define filt (make-moogladder 1000.0 0.4))
33;; Per-sample processing
34(let ((sample (osc-compute osc)))
35 (filter-compute filt sample))
37(dsp-shutdown)
38```
40## Building
42```bash
43sigil deps install
44sigil build
45```
47## Testing
49The test entry point exercises all module categories:
51```bash
52# Add entry: '(sigil dsp test-main) to package.sgl, then:
53sigil build --force
54sigil run
55```
57## License
59MIT (SoundPipe) / BSD-3-Clause (sigil-dsp bindings)