AtlatestRepositorysigil-dsp

sigil-dsp / treepackage.sgl

1;;; sigil-dsp - DSP primitives for Sigil
2;;;
3;;; Provides oscillators, filters, envelopes, effects, noise generators,
4;;; and utility modules via vendored SoundPipe.
5
6(package
7 name: "sigil-dsp"
8 version: "0.3.1"
9 sigil: "^0.17"
10 description: "DSP primitives for Sigil (SoundPipe bindings)"
11 url: "https://codeberg.org/sigil/sigil-dsp"
12 license: "MIT"
13 authors: (list "David Wilson <[email protected]>")
15 configs: (list
16 (config
17 name: 'dev
18 output-dir: "build/dev"
19 debug?: #t
20 optimize: 0)
21 (config
22 name: 'release
23 output-dir: "build/release"
24 debug?: #f
25 optimize: 2)
27 ;; Web (wasm32-wasi): soundpipe + the DSP natives compile cleanly for wasm
28 ;; (verified — portable C math, no platform deps), so motif's streaming
29 ;; render path works in the browser. The same library/build task serves
30 ;; native and web; only the target differs.
31 (config
32 name: 'web
33 output-dir: "build/web"
34 toolchain: 'zig
35 target: "wasm32-wasi"
36 debug?: #f
37 optimize: 2
38 features: '(web wasm)))
40 dependencies: (list
41 (from-git url: "codeberg:sigil/sigil" package: "sigil-stdlib" version: "^0.17"))
43 dev-dependencies: (list
44 (from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "^0.17")
45 (from-git url: "codeberg:sigil/sigil" package: "sigil-test-runner" version: "^0.17"))
47 libraries: (list
48 (library
49 name: 'sigil-dsp
50 c-sources: '(;; SoundPipe core
51 "vendor/soundpipe/modules/base.c"
52 "vendor/soundpipe/modules/ftbl.c"
53 "vendor/soundpipe/modules/randmt.c"
54 ;; Oscillators
55 "vendor/soundpipe/modules/osc.c"
56 "vendor/soundpipe/modules/posc3.c"
57 "vendor/soundpipe/modules/blsaw.c"
58 "vendor/soundpipe/modules/blsquare.c"
59 "vendor/soundpipe/modules/bltriangle.c"
60 "vendor/soundpipe/modules/fosc.c"
61 "vendor/soundpipe/modules/phasor.c"
62 ;; Filters
63 "vendor/soundpipe/modules/moogladder.c"
64 "vendor/soundpipe/modules/butlp.c"
65 "vendor/soundpipe/modules/buthp.c"
66 "vendor/soundpipe/modules/lpf18.c"
67 "vendor/soundpipe/modules/tone.c"
68 "vendor/soundpipe/modules/atone.c"
69 "vendor/soundpipe/modules/dcblock.c"
70 ;; Envelopes
71 "vendor/soundpipe/modules/adsr.c"
72 "vendor/soundpipe/modules/tadsr.c"
73 "vendor/soundpipe/modules/tenv.c"
74 "vendor/soundpipe/modules/line.c"
75 "vendor/soundpipe/modules/expon.c"
76 "vendor/soundpipe/modules/port.c"
77 ;; Reverb
78 "vendor/soundpipe/modules/revsc.c"
79 "vendor/soundpipe/modules/zitarev.c"
80 ;; Delay
81 "vendor/soundpipe/modules/delay.c"
82 "vendor/soundpipe/modules/vdelay.c"
83 ;; Noise
84 "vendor/soundpipe/modules/noise.c"
85 "vendor/soundpipe/modules/pinknoise.c"
86 "vendor/soundpipe/modules/brown.c"
87 ;; Dynamics / Waveshaping
88 "vendor/soundpipe/modules/saturator.c"
89 "vendor/soundpipe/modules/clip.c"
90 "vendor/soundpipe/modules/peaklim.c"
91 ;; Spatial
92 "vendor/soundpipe/modules/pan2.c"
93 ;; Timing
94 "vendor/soundpipe/modules/metro.c"
95 "vendor/soundpipe/modules/clock.c"
96 "vendor/soundpipe/modules/tgate.c"
97 ;; Modulation
98 "vendor/soundpipe/modules/randh.c"
99 "vendor/soundpipe/modules/randi.c"
100 ;; Utility
101 "vendor/soundpipe/modules/scale.c"
102 "vendor/soundpipe/modules/clamp.c"
103 "vendor/soundpipe/modules/crossfade.c"
104 ;; Output
105 "vendor/soundpipe/modules/wavout.c"
106 ;; dr_wav implementation
107 "vendor/soundpipe/lib/dr_wav/dr_wav.c"
108 ;; Native bindings
109 "src/c/dsp.c"
110 "src/c/ks.c")
111 c-include-dirs: '("vendor/soundpipe/h"
112 "vendor/soundpipe/lib/faust"
113 "vendor/soundpipe/lib/dr_wav")
114 c-flags: '("-DNO_LIBSNDFILE" "-DSPFLOAT=float"
115 "-Wno-unused-parameter" "-Wno-sign-compare")
116 native-init: "sigil__init_sigil_dsp_module"
117 link-flags: '("-lm")))
119 tasks: (list
120 (task
121 name: 'build
122 description: "Build sigil-dsp"
123 steps: (list
124 (compile-c-sources
125 sources: '("vendor/soundpipe/modules/base.c"
126 "vendor/soundpipe/modules/ftbl.c"
127 "vendor/soundpipe/modules/randmt.c"
128 "vendor/soundpipe/modules/osc.c"
129 "vendor/soundpipe/modules/posc3.c"
130 "vendor/soundpipe/modules/blsaw.c"
131 "vendor/soundpipe/modules/blsquare.c"
132 "vendor/soundpipe/modules/bltriangle.c"
133 "vendor/soundpipe/modules/fosc.c"
134 "vendor/soundpipe/modules/phasor.c"
135 "vendor/soundpipe/modules/moogladder.c"
136 "vendor/soundpipe/modules/butlp.c"
137 "vendor/soundpipe/modules/buthp.c"
138 "vendor/soundpipe/modules/lpf18.c"
139 "vendor/soundpipe/modules/tone.c"
140 "vendor/soundpipe/modules/atone.c"
141 "vendor/soundpipe/modules/dcblock.c"
142 "vendor/soundpipe/modules/adsr.c"
143 "vendor/soundpipe/modules/tadsr.c"
144 "vendor/soundpipe/modules/tenv.c"
145 "vendor/soundpipe/modules/line.c"
146 "vendor/soundpipe/modules/expon.c"
147 "vendor/soundpipe/modules/port.c"
148 "vendor/soundpipe/modules/revsc.c"
149 "vendor/soundpipe/modules/zitarev.c"
150 "vendor/soundpipe/modules/delay.c"
151 "vendor/soundpipe/modules/vdelay.c"
152 "vendor/soundpipe/modules/noise.c"
153 "vendor/soundpipe/modules/pinknoise.c"
154 "vendor/soundpipe/modules/brown.c"
155 "vendor/soundpipe/modules/saturator.c"
156 "vendor/soundpipe/modules/clip.c"
157 "vendor/soundpipe/modules/peaklim.c"
158 "vendor/soundpipe/modules/pan2.c"
159 "vendor/soundpipe/modules/metro.c"
160 "vendor/soundpipe/modules/clock.c"
161 "vendor/soundpipe/modules/tgate.c"
162 "vendor/soundpipe/modules/randh.c"
163 "vendor/soundpipe/modules/randi.c"
164 "vendor/soundpipe/modules/scale.c"
165 "vendor/soundpipe/modules/clamp.c"
166 "vendor/soundpipe/modules/crossfade.c"
167 "vendor/soundpipe/modules/wavout.c"
168 "vendor/soundpipe/lib/dr_wav/dr_wav.c"
169 "src/c/dsp.c"
170 "src/c/ks.c")
171 include-dirs: '("vendor/soundpipe/h"
172 "vendor/soundpipe/lib/faust"
173 "vendor/soundpipe/lib/dr_wav")
174 flags: (with-sigil-c-flags '("-std=c99" "-D_GNU_SOURCE" "-DNO_LIBSNDFILE" "-DSPFLOAT=float"
175 "-Wno-unused-parameter" "-Wno-unused-function" "-Wno-sign-compare")))
176 (create-static-library name: "sigil-dsp")
177 (compile-sigil-modules sources: "src/**/*.sgl"
178 output-dir: (config-output-subdir "lib"))))))