AtlatestRepositorysigil-dsp
1
;;; sigil-dsp - DSP primitives for Sigil2
;;;3
;;; Provides oscillators, filters, envelopes, effects, noise generators,4
;;; and utility modules via vendored SoundPipe.6
(package7
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: (list16
(config17
name: 'dev18
output-dir: "build/dev"19
debug?: #t20
optimize: 0)21
(config22
name: 'release23
output-dir: "build/release"24
debug?: #f25
optimize: 2)27
;; Web (wasm32-wasi): soundpipe + the DSP natives compile cleanly for wasm28
;; (verified — portable C math, no platform deps), so motif's streaming29
;; render path works in the browser. The same library/build task serves30
;; native and web; only the target differs.31
(config32
name: 'web33
output-dir: "build/web"34
toolchain: 'zig35
target: "wasm32-wasi"36
debug?: #f37
optimize: 238
features: '(web wasm)))40
dependencies: (list41
(from-git url: "codeberg:sigil/sigil" package: "sigil-stdlib" version: "^0.17"))43
dev-dependencies: (list44
(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: (list48
(library49
name: 'sigil-dsp50
c-sources: '(;; SoundPipe core51
"vendor/soundpipe/modules/base.c"52
"vendor/soundpipe/modules/ftbl.c"53
"vendor/soundpipe/modules/randmt.c"54
;; Oscillators55
"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
;; Filters63
"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
;; Envelopes71
"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
;; Reverb78
"vendor/soundpipe/modules/revsc.c"79
"vendor/soundpipe/modules/zitarev.c"80
;; Delay81
"vendor/soundpipe/modules/delay.c"82
"vendor/soundpipe/modules/vdelay.c"83
;; Noise84
"vendor/soundpipe/modules/noise.c"85
"vendor/soundpipe/modules/pinknoise.c"86
"vendor/soundpipe/modules/brown.c"87
;; Dynamics / Waveshaping88
"vendor/soundpipe/modules/saturator.c"89
"vendor/soundpipe/modules/clip.c"90
"vendor/soundpipe/modules/peaklim.c"91
;; Spatial92
"vendor/soundpipe/modules/pan2.c"93
;; Timing94
"vendor/soundpipe/modules/metro.c"95
"vendor/soundpipe/modules/clock.c"96
"vendor/soundpipe/modules/tgate.c"97
;; Modulation98
"vendor/soundpipe/modules/randh.c"99
"vendor/soundpipe/modules/randi.c"100
;; Utility101
"vendor/soundpipe/modules/scale.c"102
"vendor/soundpipe/modules/clamp.c"103
"vendor/soundpipe/modules/crossfade.c"104
;; Output105
"vendor/soundpipe/modules/wavout.c"106
;; dr_wav implementation107
"vendor/soundpipe/lib/dr_wav/dr_wav.c"108
;; Native bindings109
"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: (list120
(task121
name: 'build122
description: "Build sigil-dsp"123
steps: (list124
(compile-c-sources125
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"))))))