@jpdutoit/squelchy 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +73 -0
- package/chunk-NDUSYSHF.js +87 -0
- package/chunk-NDUSYSHF.js.map +7 -0
- package/docs/MODULES.md +1244 -0
- package/index.d.ts +1946 -0
- package/index.js +4846 -0
- package/index.js.map +7 -0
- package/meta.json +4492 -0
- package/package.json +43 -0
- package/worklets-inline-MUVFLGPY.js +60 -0
- package/worklets-inline-MUVFLGPY.js.map +7 -0
package/docs/MODULES.md
ADDED
|
@@ -0,0 +1,1244 @@
|
|
|
1
|
+
# @jpdutoit/squelchy — modules
|
|
2
|
+
|
|
3
|
+
> Generated from module metadata by scripts/lib/build.ts — do not edit.
|
|
4
|
+
|
|
5
|
+
**Actions** (tape stop, knock, …) are rising edges on gate inputs: `pulse(tapeStop.trigger, when)` fires one sample-accurately. **Timed changes** use the native AudioParams in `instance.params`; `set()` changes a value now.
|
|
6
|
+
|
|
7
|
+
- [303](#303) — TB-303 Acid Filter
|
|
8
|
+
- [PAN](#pan) — Auto-Panner
|
|
9
|
+
- [CRUSH](#crush) — Bitcrusher
|
|
10
|
+
- [CHORUS](#chorus) — Chorus Effect
|
|
11
|
+
- [COMB](#comb) — Comb Filter
|
|
12
|
+
- [COMP](#comp) — Dynamics Compressor
|
|
13
|
+
- [X-FADE](#x-fade) — Crossfader
|
|
14
|
+
- [DELAY](#delay) — Echo Effect
|
|
15
|
+
- [DIM](#dim) — Dimension Expander
|
|
16
|
+
- [DIST](#dist) — Distortion Effect
|
|
17
|
+
- [DUCK](#duck) — Sidechain Ducker
|
|
18
|
+
- [ENV-F](#env-f) — Envelope Follower
|
|
19
|
+
- [ADSR](#adsr) — ADSR Envelope
|
|
20
|
+
- [EQ3](#eq3) — 3-Band Equalizer
|
|
21
|
+
- [EXCITE](#excite) — Harmonic Exciter
|
|
22
|
+
- [FLANGER](#flanger) — Flanger Effect
|
|
23
|
+
- [FORMANT](#formant) — Formant Filter
|
|
24
|
+
- [SHIFT](#shift) — Frequency Shifter
|
|
25
|
+
- [GATE](#gate) — Noise Gate
|
|
26
|
+
- [GLIDE](#glide) — Glide / Portamento
|
|
27
|
+
- [HAAS](#haas) — Haas Stereo Widener
|
|
28
|
+
- [H-TREM](#h-trem) — Harmonic Tremolo
|
|
29
|
+
- [LADDER](#ladder) — Moog-style Ladder Filter
|
|
30
|
+
- [LFO](#lfo) — Low Frequency Oscillator
|
|
31
|
+
- [LO-FI](#lo-fi) — Lo-Fi Processor
|
|
32
|
+
- [M/S](#m-s) — Mid-Side Processor
|
|
33
|
+
- [NOISE](#noise) — Noise Generator
|
|
34
|
+
- [OCTAVE](#octave) — Analog Octaver
|
|
35
|
+
- [PHASER](#phaser) — Phaser Effect
|
|
36
|
+
- [PING](#ping) — Ping Pong Delay
|
|
37
|
+
- [RESO](#reso) — Resonator
|
|
38
|
+
- [REVERB](#reverb) — Reverb Effect
|
|
39
|
+
- [RING](#ring) — Ring Modulator
|
|
40
|
+
- [ROTARY](#rotary) — Rotary Speaker
|
|
41
|
+
- [SAT](#sat) — Tape Saturator
|
|
42
|
+
- [SHIMMER](#shimmer) — Shimmer Reverb
|
|
43
|
+
- [LIMIT](#limit) — Soft Limiter
|
|
44
|
+
- [SPRING](#spring) — Spring Tank Reverb
|
|
45
|
+
- [SPREAD](#spread) — Stereo Spreader
|
|
46
|
+
- [SUB OCT](#sub-oct) — Sub Octave Generator
|
|
47
|
+
- [TAPE](#tape) — Tape Echo
|
|
48
|
+
- [TAPE STOP](#tape-stop) — Tape Stop Effect
|
|
49
|
+
- [TILT](#tilt) — Tilt EQ
|
|
50
|
+
- [TREMOLO](#tremolo) — Tremolo Effect
|
|
51
|
+
- [VCA](#vca) — Voltage Controlled Amplifier
|
|
52
|
+
- [VCF](#vcf) — Voltage Controlled Filter
|
|
53
|
+
- [VCO](#vco) — Voltage Controlled Oscillator
|
|
54
|
+
- [WAH](#wah) — Auto-Wah
|
|
55
|
+
- [FOLD](#fold) — Wavefolder
|
|
56
|
+
|
|
57
|
+
## 303
|
|
58
|
+
|
|
59
|
+
`import { AcidFilter } from '@jpdutoit/squelchy'`
|
|
60
|
+
|
|
61
|
+
**TB-303 Acid Filter** — The iconic squelchy filter from the Roland TB-303. Features real triggered envelope that sweeps the cutoff for that classic acid house sound.
|
|
62
|
+
|
|
63
|
+
Categories: Filters · Worklets: adsr-envelope, map-voct-to-freq
|
|
64
|
+
|
|
65
|
+
### Ports
|
|
66
|
+
|
|
67
|
+
| Slug | Direction | Signal | Description |
|
|
68
|
+
|---|---|---|---|
|
|
69
|
+
| `in` | input | audio | **Audio Input** — Audio signal for the iconic TB-303 acid filter sound. |
|
|
70
|
+
| `out` | output | audio | **Audio Output** — Squelchy, resonant acid bass output. |
|
|
71
|
+
| `trigger` | input | gate | **Trigger Input** — Trigger the envelope sweep for classic acid patterns. |
|
|
72
|
+
| `modFreq` | modulation | modulation | **Cutoff V/Oct** — External modulation of cutoff in semitones (V/Oct). ±12 = one octave. |
|
|
73
|
+
|
|
74
|
+
### Params
|
|
75
|
+
|
|
76
|
+
| Param | Default | Range | Description |
|
|
77
|
+
|---|---|---|---|
|
|
78
|
+
| `note` | `67` | 15 – 135 notes | **Cutoff Note** — Base cutoff as a note (67 ≈ 400 Hz, 69 = 440 Hz) for the iconic squelchy acid sound. Drives the V/OCT worklet 1:1 — the panel knob shows the equivalent Hz. Automatable: `params.note` is a native AudioParam. |
|
|
79
|
+
| `resonance` | `8` | 0 – 15 (sqrt) | **Resonance** — Resonance amount, 0–100% of travel. Creates the characteristic 303 "wow" at high settings. Like the hardware, there is no resonance CV input — the knob is the only control. |
|
|
80
|
+
| `envMod` | `0.7` | 0 – 1 | **Envelope Mod** — How much the triggered envelope sweeps the filter cutoff. |
|
|
81
|
+
| `accent` | `0.5` | 0 – 1 | **Accent** — Intensifies the envelope sweep for more aggressive acid sounds. |
|
|
82
|
+
| `decay` | `0.2` | 0.05 – 1 s (log) | **Decay Time** — How quickly the filter envelope falls. Short = plucky, long = sustained. Automatable: `params.decay` is a native AudioParam. |
|
|
83
|
+
|
|
84
|
+
## PAN
|
|
85
|
+
|
|
86
|
+
`import { AutoPan } from '@jpdutoit/squelchy'`
|
|
87
|
+
|
|
88
|
+
**Auto-Panner** — Stereo auto-panner using LFO-controlled panning. Creates movement and animation in the stereo field.
|
|
89
|
+
|
|
90
|
+
Categories: Effects, Stereo
|
|
91
|
+
|
|
92
|
+
### Ports
|
|
93
|
+
|
|
94
|
+
| Slug | Direction | Signal | Description |
|
|
95
|
+
|---|---|---|---|
|
|
96
|
+
| `in` | input | audio | **Audio Input** — Audio signal to pan across the stereo field. |
|
|
97
|
+
| `out` | output | audio | **Audio Output** — Stereo audio with automatic panning movement. |
|
|
98
|
+
| `modRate` | modulation | modulation | **Rate CV** — Modulate the pan LFO speed. |
|
|
99
|
+
| `modDepth` | modulation | modulation | **Depth CV** — Modulate the pan sweep depth. |
|
|
100
|
+
|
|
101
|
+
### Params
|
|
102
|
+
|
|
103
|
+
| Param | Default | Range | Description |
|
|
104
|
+
|---|---|---|---|
|
|
105
|
+
| `rate` | `2` | 0.1 – 10 Hz | **Rate** — Panning LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Automatable: `params.rate` is a native AudioParam. |
|
|
106
|
+
| `depth` | `0.8` | 0 – 1 | **Depth** — How far the pan sweeps from left to right. 1 = full stereo sweep. modDepth sums into the same AudioParam. Automatable: `params.depth` is a native AudioParam. |
|
|
107
|
+
| `shape` | `"sine"` | `sine` / `triangle` / `square` | **LFO Shape** — Waveform shape: sine for smooth, triangle for linear, square for hard left/right. |
|
|
108
|
+
|
|
109
|
+
## CRUSH
|
|
110
|
+
|
|
111
|
+
`import { Bitcrusher } from '@jpdutoit/squelchy'`
|
|
112
|
+
|
|
113
|
+
**Bitcrusher** — Lo-fi digital destruction. Reduces bit depth and sample rate for crunchy, retro video game sounds. RATE controls sample-and-hold decimation.
|
|
114
|
+
|
|
115
|
+
Categories: Distortion · Worklets: bitcrusher
|
|
116
|
+
|
|
117
|
+
### Ports
|
|
118
|
+
|
|
119
|
+
| Slug | Direction | Signal | Description |
|
|
120
|
+
|---|---|---|---|
|
|
121
|
+
| `in` | input | audio | **Audio Input** — Audio signal for lo-fi bit and sample rate reduction. |
|
|
122
|
+
| `out` | output | audio | **Audio Output** — Crunchy, retro bit-crushed audio output. |
|
|
123
|
+
|
|
124
|
+
### Params
|
|
125
|
+
|
|
126
|
+
| Param | Default | Range | Description |
|
|
127
|
+
|---|---|---|---|
|
|
128
|
+
| `bits` | `8` | 1 – 16 | **Bit Depth** — Number of bits for quantization. Lower = crunchier, more lo-fi. Automatable: `params.bits` is a native AudioParam. |
|
|
129
|
+
| `rate` | `0.5` | 0.01 – 1 (log) | **Sample Rate** — Sample rate reduction factor. 1 = original, lower = more aliased and crunchy. Creates the classic "staircase" sample-and-hold effect. Automatable: `params.rate` is a native AudioParam. |
|
|
130
|
+
| `mix` | `1` | 0 – 1 | **Dry/Wet Mix** — Balance between clean and crushed signal. Automatable: `params.mix` is a native AudioParam. |
|
|
131
|
+
|
|
132
|
+
## CHORUS
|
|
133
|
+
|
|
134
|
+
`import { Chorus } from '@jpdutoit/squelchy'`
|
|
135
|
+
|
|
136
|
+
**Chorus Effect** — Stereo chorus: two delayed voices swept in antiphase by one LFO (left rises while right falls), over a centred dry signal — width and gentle detune from a mono source. Classic for pads, guitars, and synths.
|
|
137
|
+
|
|
138
|
+
Categories: Time, Effects
|
|
139
|
+
|
|
140
|
+
### Ports
|
|
141
|
+
|
|
142
|
+
| Slug | Direction | Signal | Description |
|
|
143
|
+
|---|---|---|---|
|
|
144
|
+
| `in` | input | audio | **Audio Input** — Audio signal to thicken with chorus effect. |
|
|
145
|
+
| `out` | output | audio | **Audio Output** — Stereo chorus output: dry centred, voices spread left/right. |
|
|
146
|
+
| `modRate` | modulation | modulation | **Rate CV** — Modulate the chorus sweep speed. |
|
|
147
|
+
| `modMix` | modulation | modulation | **Mix CV** — Modulate the dry/wet balance. |
|
|
148
|
+
|
|
149
|
+
### Params
|
|
150
|
+
|
|
151
|
+
| Param | Default | Range | Description |
|
|
152
|
+
|---|---|---|---|
|
|
153
|
+
| `rate` | `1.5` | 0.1 – 5 Hz | **Rate** — Chorus sweep LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Automatable: `params.rate` is a native AudioParam. |
|
|
154
|
+
| `depth` | `0.5` | 0 – 1 | **Modulation Depth** — How much the delay time is modulated. More = wider detuning. Scaled onto the LFO gain, so it is set-only (no single AudioParam carries it 1:1). |
|
|
155
|
+
| `mix` | `0.5` | 0 – 1 | **Dry/Wet Mix** — Balance between original and chorused signal, driven by one ConstantSource (dry = 1 − mix·0.5, wet = mix — the antiphase voices already carry half the width at mix 1). Automatable: `params.mix` is a native AudioParam. |
|
|
156
|
+
|
|
157
|
+
## COMB
|
|
158
|
+
|
|
159
|
+
`import { CombFilter } from '@jpdutoit/squelchy'`
|
|
160
|
+
|
|
161
|
+
**Comb Filter** — Karplus-Strong style comb filter using short delay with feedback. Creates metallic, resonant, and pitched tones from any input.
|
|
162
|
+
|
|
163
|
+
Categories: Filters · Worklets: map-voct-to-period, comb-filter
|
|
164
|
+
|
|
165
|
+
### Ports
|
|
166
|
+
|
|
167
|
+
| Slug | Direction | Signal | Description |
|
|
168
|
+
|---|---|---|---|
|
|
169
|
+
| `in` | input | audio | **Audio Input** — Audio signal for comb filtering. |
|
|
170
|
+
| `out` | output | audio | **Audio Output** — Metallic, resonant comb-filtered audio output. |
|
|
171
|
+
| `voct` | input | pitch | **Pitch CV** — Pitch CV input — plays the comb chromatically from keyboard or sequencer CV. Set TUNING to CHROMATIC for scale-true tracking. |
|
|
172
|
+
| `modFreq` | modulation | modulation | **Pitch FM** — Frequency modulation in semitones. ±12 = one octave. Connect an LFO or envelope for musical sweeps. |
|
|
173
|
+
|
|
174
|
+
### Params
|
|
175
|
+
|
|
176
|
+
| Param | Default | Range | Description |
|
|
177
|
+
|---|---|---|---|
|
|
178
|
+
| `offset` | `55` | -48 – 96 semitones | **Pitch Offset** — Semitones added to the V/OCT input (12 = one octave). Unpatched the input is silent, so this is the comb note itself: 55 ≈ 196 Hz, 69 = 440 Hz. Driven by an absolute pitch CV, set 0 to track it as-is. Automatable: `params.offset` is a native AudioParam. |
|
|
179
|
+
| `feedback` | `0.7` | 0 – 0.95 | **Feedback** — Resonance amount. Higher values create more pronounced, ringing tones. Automatable: `params.feedback` is a native AudioParam. |
|
|
180
|
+
| `mix` | `0.5` | 0 – 1 | **Dry/Wet Mix** — Balance between original and comb-filtered signal. Automatable: `params.mix` is a native AudioParam. |
|
|
181
|
+
| `tuning` | `"chromatic"` | `chromatic` / `free` | **Tuning Mode** — CHROMATIC snaps the FREQ knob to semitones; FREE allows continuous tuning. |
|
|
182
|
+
|
|
183
|
+
## COMP
|
|
184
|
+
|
|
185
|
+
`import { Compressor } from '@jpdutoit/squelchy'`
|
|
186
|
+
|
|
187
|
+
**Dynamics Compressor** — Reduces dynamic range by attenuating loud signals. Threshold sets where compression begins, ratio controls intensity.
|
|
188
|
+
|
|
189
|
+
Categories: Dynamics
|
|
190
|
+
|
|
191
|
+
### Ports
|
|
192
|
+
|
|
193
|
+
| Slug | Direction | Signal | Description |
|
|
194
|
+
|---|---|---|---|
|
|
195
|
+
| `in` | input | audio | **Audio Input** — Audio signal to compress. |
|
|
196
|
+
| `out` | output | audio | **Audio Output** — Compressed audio with makeup gain applied. |
|
|
197
|
+
|
|
198
|
+
### Params
|
|
199
|
+
|
|
200
|
+
| Param | Default | Range | Description |
|
|
201
|
+
|---|---|---|---|
|
|
202
|
+
| `threshold` | `-24` | -60 – 0 dB | **Threshold** — Level above which compression kicks in. Lower = more compression. Automatable: `params.threshold` is a native AudioParam. |
|
|
203
|
+
| `ratio` | `4` | 1 – 20 (log) | **Ratio** — How much to reduce signal above threshold. 4:1 = every 4dB over becomes 1dB. Automatable: `params.ratio` is a native AudioParam. |
|
|
204
|
+
| `attack` | `0.003` | 0.001 – 1 s (log) | **Attack** — How fast compression responds to loud signals. Automatable: `params.attack` is a native AudioParam. |
|
|
205
|
+
| `release` | `0.25` | 0.01 – 1 s (log) | **Release** — How fast compression releases after signal drops. Automatable: `params.release` is a native AudioParam. |
|
|
206
|
+
| `knee` | `10` | 0 – 40 dB | **Knee** — Width of the transition zone around the threshold. 0 = hard knee (abrupt), 40 = soft knee (gradual). Automatable: `params.knee` is a native AudioParam. |
|
|
207
|
+
| `makeup` | `0` | 0 – 30 dB | **Makeup Gain** — Boosts the output level to compensate for gain reduction. Up to +30 dB. |
|
|
208
|
+
|
|
209
|
+
## X-FADE
|
|
210
|
+
|
|
211
|
+
`import { Crossfade } from '@jpdutoit/squelchy'`
|
|
212
|
+
|
|
213
|
+
**Crossfader** — Blends between two input signals. Equal-power curve maintains consistent volume. Essential DJ tool and utility for mixing sources.
|
|
214
|
+
|
|
215
|
+
Categories: Utility
|
|
216
|
+
|
|
217
|
+
### Ports
|
|
218
|
+
|
|
219
|
+
| Slug | Direction | Signal | Description |
|
|
220
|
+
|---|---|---|---|
|
|
221
|
+
| `a` | input | audio | **Input A** — First audio source for crossfading. |
|
|
222
|
+
| `b` | input | audio | **Input B** — Second audio source for crossfading. |
|
|
223
|
+
| `out` | output | audio | **Audio Output** — Blended mix of inputs A and B. |
|
|
224
|
+
|
|
225
|
+
### Params
|
|
226
|
+
|
|
227
|
+
| Param | Default | Range | Description |
|
|
228
|
+
|---|---|---|---|
|
|
229
|
+
| `blend` | `0.5` | 0 – 1 | **Crossfade Position** — Position between inputs. 0 = all A, 1 = all B. Automatable: `params.blend` is a native AudioParam. |
|
|
230
|
+
| `curve` | `"equal-power"` | `linear` / `equal-power` | **Curve Type** — Linear or equal-power crossfade curve. |
|
|
231
|
+
|
|
232
|
+
## DELAY
|
|
233
|
+
|
|
234
|
+
`import { Delay } from '@jpdutoit/squelchy'`
|
|
235
|
+
|
|
236
|
+
**Echo Effect** — Creates repeating echoes of the input signal. Adjust time, feedback for number of repeats, and mix for wet/dry balance.
|
|
237
|
+
|
|
238
|
+
Categories: Time · Worklets: comb-filter
|
|
239
|
+
|
|
240
|
+
### Ports
|
|
241
|
+
|
|
242
|
+
| Slug | Direction | Signal | Description |
|
|
243
|
+
|---|---|---|---|
|
|
244
|
+
| `in` | input | audio | **Audio Input** — Audio signal to be delayed. |
|
|
245
|
+
| `out` | output | audio | **Audio Output** — Delayed audio signal mixed with dry signal. |
|
|
246
|
+
|
|
247
|
+
### Params
|
|
248
|
+
|
|
249
|
+
| Param | Default | Range | Description |
|
|
250
|
+
|---|---|---|---|
|
|
251
|
+
| `time` | `0.3` | 0.01 – 1 s (log) | **Delay Time** — Time between original signal and echo. Sync to tempo for rhythmic effects. Automatable: `params.time` is a native AudioParam. |
|
|
252
|
+
| `feedback` | `0.4` | 0 – 0.95 | **Feedback** — How much delayed signal feeds back. Higher = more repeats. Be careful of runaway feedback! Automatable: `params.feedback` is a native AudioParam. |
|
|
253
|
+
| `mix` | `0.5` | 0 – 1 | **Dry/Wet Mix** — Balance between original (dry) and delayed (wet) signal. Automatable: `params.mix` is a native AudioParam. |
|
|
254
|
+
|
|
255
|
+
## DIM
|
|
256
|
+
|
|
257
|
+
`import { Dimension } from '@jpdutoit/squelchy'`
|
|
258
|
+
|
|
259
|
+
**Dimension Expander** — Roland Dimension-D inspired stereo widener. Adds subtle modulation to create spacious, wide stereo images. Classic 80s lush pad sound.
|
|
260
|
+
|
|
261
|
+
Categories: Effects
|
|
262
|
+
|
|
263
|
+
### Ports
|
|
264
|
+
|
|
265
|
+
| Slug | Direction | Signal | Description |
|
|
266
|
+
|---|---|---|---|
|
|
267
|
+
| `in` | input | audio | **Audio Input** — Audio signal for stereo widening. |
|
|
268
|
+
| `out` | output | audio | **Audio Output** — Spacious, wide stereo audio with subtle modulation. |
|
|
269
|
+
| `modRate` | modulation | modulation | **Rate CV** — Modulate the widening LFO speed. |
|
|
270
|
+
|
|
271
|
+
### Params
|
|
272
|
+
|
|
273
|
+
| Param | Default | Range | Description |
|
|
274
|
+
|---|---|---|---|
|
|
275
|
+
| `rate` | `0.5` | 0.1 – 5 Hz | **Rate** — Widening LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Automatable: `params.rate` is a native AudioParam. |
|
|
276
|
+
| `depth` | `0.3` | 0 – 1 | **Modulation Depth** — Amount of chorus-like modulation for that classic 80s wide sound. Scaled onto the LFO gains, so it is set-only (no single AudioParam carries it 1:1). |
|
|
277
|
+
|
|
278
|
+
## DIST
|
|
279
|
+
|
|
280
|
+
`import { Distortion } from '@jpdutoit/squelchy'`
|
|
281
|
+
|
|
282
|
+
**Distortion Effect** — Three clipping circuits: soft (tanh overdrive), hard (true rail clipper — flattens to a square at high drive), fuzz (biased asymmetric saturator with even harmonics). Output is loudness-compensated so DRIVE and TYPE shape timbre, not volume; TONE tames the fizz.
|
|
283
|
+
|
|
284
|
+
Categories: Distortion
|
|
285
|
+
|
|
286
|
+
### Ports
|
|
287
|
+
|
|
288
|
+
| Slug | Direction | Signal | Description |
|
|
289
|
+
|---|---|---|---|
|
|
290
|
+
| `in` | input | audio | **Audio Input** — Clean audio signal to distort. |
|
|
291
|
+
| `out` | output | audio | **Audio Output** — Distorted audio signal output. |
|
|
292
|
+
|
|
293
|
+
### Params
|
|
294
|
+
|
|
295
|
+
| Param | Default | Range | Description |
|
|
296
|
+
|---|---|---|---|
|
|
297
|
+
| `distortionType` | `"soft"` | `soft` / `hard` / `fuzz` | **Clipping Curve** — Which clipping transfer curve the signal is pushed into. |
|
|
298
|
+
| `drive` | `5` | 1 – 20 (log) | **Drive Amount** — How hard the signal is pushed into the clipping curve. The whole travel is usable: low = warm break-up, high = full clipping. |
|
|
299
|
+
| `frequency` | `16000` | 500 – 16000 Hz (log) | **Tone** — Post-clip lowpass (500 Hz – 16 kHz). Turn down to tame the high-frequency fizz clipping creates — the Filter knob on a RAT. Automatable: `params.frequency` is a native AudioParam. |
|
|
300
|
+
| `mix` | `0.8` | 0 – 1 | **Dry/Wet Mix** — Balance between clean and distorted signal. Low settings give parallel distortion. Automatable: `params.mix` is a native AudioParam. |
|
|
301
|
+
|
|
302
|
+
## DUCK
|
|
303
|
+
|
|
304
|
+
`import { Ducker } from '@jpdutoit/squelchy'`
|
|
305
|
+
|
|
306
|
+
**Sidechain Ducker** — Ducks the input whenever the sidechain reaches the threshold, using a sample-accurate follower with separate attack and release. The detector saturates like a real sidechain circuit, so a hot kick does not wind it up — REL always sets how fast the signal breathes back. Classic pumping effect for EDM and mixing.
|
|
307
|
+
|
|
308
|
+
Categories: Dynamics · Worklets: env-follower
|
|
309
|
+
|
|
310
|
+
### Ports
|
|
311
|
+
|
|
312
|
+
| Slug | Direction | Signal | Description |
|
|
313
|
+
|---|---|---|---|
|
|
314
|
+
| `in` | input | audio | **Audio Input** — Main audio signal to be ducked. |
|
|
315
|
+
| `sc` | input | audio | **Sidechain Input** — Control signal that triggers ducking. When this exceeds threshold, main input is attenuated. |
|
|
316
|
+
| `out` | output | audio | **Audio Output** — Ducked audio output with sidechain-controlled dynamics. |
|
|
317
|
+
|
|
318
|
+
### Params
|
|
319
|
+
|
|
320
|
+
| Param | Default | Range | Description |
|
|
321
|
+
|---|---|---|---|
|
|
322
|
+
| `threshold` | `-24` | -60 – 0 dB | **Threshold** — Sidechain level that triggers ducking. Lower = more sensitive. |
|
|
323
|
+
| `amount` | `0.7` | 0 – 1 | **Duck Amount** — How much to reduce the main signal when triggered. |
|
|
324
|
+
| `attack` | `0.01` | 0.001 – 0.1 s (log) | **Attack** — How fast ducking kicks in after sidechain exceeds threshold. Automatable: `params.attack` is a native AudioParam. |
|
|
325
|
+
| `release` | `0.2` | 0.001 – 1 s (log) | **Release** — How fast signal returns to normal after sidechain drops. Automatable: `params.release` is a native AudioParam. |
|
|
326
|
+
|
|
327
|
+
## ENV-F
|
|
328
|
+
|
|
329
|
+
`import { EnvelopeFollower } from '@jpdutoit/squelchy'`
|
|
330
|
+
|
|
331
|
+
**Envelope Follower** — Extracts the amplitude envelope from audio using sample-accurate asymmetric smoothing. Separate attack and release times for precise dynamic tracking. Depth scales the CV output for modulating filters, VCAs, etc.
|
|
332
|
+
|
|
333
|
+
Categories: Modulators, Utility · Worklets: env-follower
|
|
334
|
+
|
|
335
|
+
### Ports
|
|
336
|
+
|
|
337
|
+
| Slug | Direction | Signal | Description |
|
|
338
|
+
|---|---|---|---|
|
|
339
|
+
| `in` | input | audio | **Audio Input** — Audio signal to analyze for envelope. |
|
|
340
|
+
| `env` | output | modulation | **Envelope CV** — Amplitude envelope CV, scaled by DEPTH. Connect to filter, VCA, or other modulation inputs. |
|
|
341
|
+
|
|
342
|
+
### Params
|
|
343
|
+
|
|
344
|
+
| Param | Default | Range | Description |
|
|
345
|
+
|---|---|---|---|
|
|
346
|
+
| `attack` | `0.01` | 0.001 – 0.5 s (log) | **Attack Time** — How quickly the envelope responds to rising levels. Shorter = snappier transient tracking. Automatable: `params.attack` is a native AudioParam. |
|
|
347
|
+
| `release` | `0.1` | 0.001 – 2 s (log) | **Release Time** — How quickly the envelope responds to falling levels. Longer = smoother, more sustained envelope. Automatable: `params.release` is a native AudioParam. |
|
|
348
|
+
| `sensitivity` | `0.5` | 0 – 1 | **Sensitivity** — Input gain before envelope detection. Higher = more responsive to quiet signals. |
|
|
349
|
+
| `depth` | `48` | 0 – 96 semitones (sqrt) | **Output Depth** — Scales the CV output amplitude. For V/Oct filter targets, 12 semitones = one octave, so 48 ≈ four octaves. For VCA or other targets, use lower values (0.5–2). Automatable: `params.depth` is a native AudioParam. |
|
|
350
|
+
|
|
351
|
+
## ADSR
|
|
352
|
+
|
|
353
|
+
`import { Envelope } from '@jpdutoit/squelchy'`
|
|
354
|
+
|
|
355
|
+
**ADSR Envelope** — Shapes how a sound evolves over time. Connect a gate signal to TRIG (from keyboard or sequencer) to trigger the Attack→Decay→Sustain→Release cycle.
|
|
356
|
+
|
|
357
|
+
Categories: Modulators · Worklets: adsr-envelope
|
|
358
|
+
|
|
359
|
+
### Ports
|
|
360
|
+
|
|
361
|
+
| Slug | Direction | Signal | Description |
|
|
362
|
+
|---|---|---|---|
|
|
363
|
+
| `in` | input | audio | **Audio Input** — Audio signal to shape with the envelope. |
|
|
364
|
+
| `out` | output | audio | **Audio Output** — Envelope-shaped audio output. |
|
|
365
|
+
| `env` | output | modulation | **Envelope CV** — Scaled envelope output. Use DEPTH to control how much the envelope sweeps the target. |
|
|
366
|
+
| `trigger` | input | gate | **Trigger Input** — Connect a gate signal (from keyboard or sequencer) to trigger the envelope cycle. |
|
|
367
|
+
|
|
368
|
+
### Params
|
|
369
|
+
|
|
370
|
+
| Param | Default | Range | Description |
|
|
371
|
+
|---|---|---|---|
|
|
372
|
+
| `attack` | `0.01` | 0.001 – 2 s (log) | **Attack** — Time for signal to rise from zero to full level when triggered. Automatable: `params.attack` is a native AudioParam. |
|
|
373
|
+
| `decay` | `0.1` | 0.001 – 2 s (log) | **Decay** — Time to fall from peak to sustain level after attack completes. Automatable: `params.decay` is a native AudioParam. |
|
|
374
|
+
| `sustain` | `0.7` | 0 – 1 | **Sustain** — Level held while the note is held. 0 = plucky, 1 = organ-like. Automatable: `params.sustain` is a native AudioParam. |
|
|
375
|
+
| `release` | `0.3` | 0.001 – 3 s (log) | **Release** — Time to fade to silence after note is released. Automatable: `params.release` is a native AudioParam. |
|
|
376
|
+
| `depth` | `48` | 0 – 96 semitones (sqrt) | **ENV Depth** — Scales the ENV output in semitones (12 = one octave), the unit every pitch and cutoff modulation input on this rack reads. Higher values produce a wider sweep on the modulation target. Automatable: `params.depth` is a native AudioParam. |
|
|
377
|
+
|
|
378
|
+
## EQ3
|
|
379
|
+
|
|
380
|
+
`import { ThreeBandEq } from '@jpdutoit/squelchy'`
|
|
381
|
+
|
|
382
|
+
**3-Band Equalizer** — Shape your sound with bass, mid, and treble controls. Boost or cut frequencies by up to 12dB. Essential for mixing and tone shaping.
|
|
383
|
+
|
|
384
|
+
Categories: Filters
|
|
385
|
+
|
|
386
|
+
### Ports
|
|
387
|
+
|
|
388
|
+
| Slug | Direction | Signal | Description |
|
|
389
|
+
|---|---|---|---|
|
|
390
|
+
| `in` | input | audio | **Audio Input** — Audio signal to be equalized. |
|
|
391
|
+
| `out` | output | audio | **Audio Output** — Tone-shaped equalized audio output. |
|
|
392
|
+
|
|
393
|
+
### Params
|
|
394
|
+
|
|
395
|
+
| Param | Default | Range | Description |
|
|
396
|
+
|---|---|---|---|
|
|
397
|
+
| `low` | `0` | -12 – 12 dB | **Bass** — Low shelf gain at 320 Hz. Boost for warmth, cut for clarity. Automatable: `params.low` is a native AudioParam. |
|
|
398
|
+
| `mid` | `0` | -12 – 12 dB | **Midrange** — Peaking gain at the mid frequency. The presence and body range. Automatable: `params.mid` is a native AudioParam. |
|
|
399
|
+
| `high` | `0` | -12 – 12 dB | **Treble** — High shelf gain at 3.2 kHz. Boost for brightness, cut for smoothness. Automatable: `params.high` is a native AudioParam. |
|
|
400
|
+
| `midFreq` | `1000` | 200 – 5000 Hz (log) | **Mid Frequency** — Center frequency for the mid band EQ. Automatable: `params.midFreq` is a native AudioParam. |
|
|
401
|
+
|
|
402
|
+
## EXCITE
|
|
403
|
+
|
|
404
|
+
`import { Exciter } from '@jpdutoit/squelchy'`
|
|
405
|
+
|
|
406
|
+
**Harmonic Exciter** — Adds high-frequency harmonics and "air" to dull signals. Generates subtle saturation in the treble range for presence and sparkle.
|
|
407
|
+
|
|
408
|
+
Categories: Dynamics
|
|
409
|
+
|
|
410
|
+
### Ports
|
|
411
|
+
|
|
412
|
+
| Slug | Direction | Signal | Description |
|
|
413
|
+
|---|---|---|---|
|
|
414
|
+
| `in` | input | audio | **Audio Input** — Audio signal for harmonic enhancement. |
|
|
415
|
+
| `out` | output | audio | **Audio Output** — Bright, exciting audio with added harmonics. |
|
|
416
|
+
|
|
417
|
+
### Params
|
|
418
|
+
|
|
419
|
+
| Param | Default | Range | Description |
|
|
420
|
+
|---|---|---|---|
|
|
421
|
+
| `drive` | `0.5` | 0 – 1 | **Drive** — Amount of harmonic saturation added to high frequencies. |
|
|
422
|
+
| `frequency` | `4000` | 2000 – 8000 Hz (log) | **Frequency** — Cutoff frequency above which excitement is applied. |
|
|
423
|
+
| `mix` | `0.5` | 0 – 1 | **Mix Amount** — How much excited signal is added to the original. Automatable: `params.mix` is a native AudioParam. |
|
|
424
|
+
|
|
425
|
+
## FLANGER
|
|
426
|
+
|
|
427
|
+
`import { Flanger } from '@jpdutoit/squelchy'`
|
|
428
|
+
|
|
429
|
+
**Flanger Effect** — Creates jet-plane swooshing by mixing signal with a short modulated delay. The feedback control adds metallic resonance for dramatic sweeps.
|
|
430
|
+
|
|
431
|
+
Categories: Time, Effects · Worklets: flanger
|
|
432
|
+
|
|
433
|
+
### Ports
|
|
434
|
+
|
|
435
|
+
| Slug | Direction | Signal | Description |
|
|
436
|
+
|---|---|---|---|
|
|
437
|
+
| `in` | input | audio | **Audio Input** — Audio signal for flanging effect. |
|
|
438
|
+
| `out` | output | audio | **Audio Output** — Swooshing, jet-plane flanged audio output. |
|
|
439
|
+
| `modRate` | modulation | modulation | **Rate CV** — Modulate the flanger sweep speed. |
|
|
440
|
+
| `modDepth` | modulation | modulation | **Depth CV** — Modulate the flanger modulation depth. |
|
|
441
|
+
| `modFeedback` | modulation | modulation | **Feedback CV** — Modulate the resonance feedback amount. |
|
|
442
|
+
| `modMix` | modulation | modulation | **Mix CV** — Modulate the dry/wet balance. |
|
|
443
|
+
|
|
444
|
+
### Params
|
|
445
|
+
|
|
446
|
+
| Param | Default | Range | Description |
|
|
447
|
+
|---|---|---|---|
|
|
448
|
+
| `rate` | `0.5` | 0.1 – 5 Hz | **Rate** — Flanger sweep LFO speed, a real a-rate AudioParam on the worklet. modRate sums into the same AudioParam. Automatable: `params.rate` is a native AudioParam. |
|
|
449
|
+
| `depth` | `0.7` | 0 – 1 | **Modulation Depth** — How much the delay time is modulated, a real AudioParam on the worklet. modDepth sums into the same AudioParam. Automatable: `params.depth` is a native AudioParam. |
|
|
450
|
+
| `feedback` | `0.7` | 0 – 0.95 | **Feedback** — Resonance amount, a real AudioParam on the worklet. modFeedback sums into the same AudioParam. Automatable: `params.feedback` is a native AudioParam. |
|
|
451
|
+
| `mix` | `0.5` | 0 – 1 | **Dry/Wet Mix** — Crossfade between original and flanged signal, driven by one ConstantSource (linear law: dry = 1 − mix, wet = mix). Automatable: `params.mix` is a native AudioParam. |
|
|
452
|
+
|
|
453
|
+
## FORMANT
|
|
454
|
+
|
|
455
|
+
`import { Formant } from '@jpdutoit/squelchy'`
|
|
456
|
+
|
|
457
|
+
**Formant Filter** — Vocal formant filter with smooth morphing between vowels A-E-I-O-U. Creates voice-like resonances. Morph smoothly between vowel sounds for talking synth effects.
|
|
458
|
+
|
|
459
|
+
Categories: Filters · Worklets: formant-table
|
|
460
|
+
|
|
461
|
+
### Ports
|
|
462
|
+
|
|
463
|
+
| Slug | Direction | Signal | Description |
|
|
464
|
+
|---|---|---|---|
|
|
465
|
+
| `in` | input | audio | **Audio Input** — Audio signal for vowel/formant filtering. |
|
|
466
|
+
| `out` | output | audio | **Audio Output** — Vocal-like formant filtered audio output. |
|
|
467
|
+
| `modVowel` | modulation | modulation | **Vowel CV** — Control voltage to sweep through vowels A-E-I-O-U. |
|
|
468
|
+
|
|
469
|
+
### Params
|
|
470
|
+
|
|
471
|
+
| Param | Default | Range | Description |
|
|
472
|
+
|---|---|---|---|
|
|
473
|
+
| `morph` | `0` | 0 – 5 | **Vowel Morph** — Position along the A-E-I-O-U vowel formant chain. 0 = A, 5 wraps back to A; fractional values interpolate between neighbouring vowels. |
|
|
474
|
+
| `resonance` | `6` | 1 – 20 (sqrt) | **Resonance** — Sharpness of the formant peaks, scaled per band. Higher values sound more pronounced and vocal. |
|
|
475
|
+
| `mix` | `1` | 0 – 1 | **Dry/Wet Mix** — Balance between the original signal and the formant-filtered output. 0 = dry, 1 = fully wet. |
|
|
476
|
+
|
|
477
|
+
## SHIFT
|
|
478
|
+
|
|
479
|
+
`import { FrequencyShifter } from '@jpdutoit/squelchy'`
|
|
480
|
+
|
|
481
|
+
**Frequency Shifter** — True Bode-style single-sideband shifting: a Hilbert-transform quadrature network splits the signal into an analytic pair, so every partial moves by a fixed number of Hz instead of a musical interval. Inharmonic, alien, bell-like — and unlike a ring modulator, only one sideband survives.
|
|
482
|
+
|
|
483
|
+
Categories: Effects · Worklets: freq-shifter
|
|
484
|
+
|
|
485
|
+
### Ports
|
|
486
|
+
|
|
487
|
+
| Slug | Direction | Signal | Description |
|
|
488
|
+
|---|---|---|---|
|
|
489
|
+
| `in` | input | audio | **Audio Input** — Audio signal for frequency shifting. |
|
|
490
|
+
| `out` | output | audio | **Audio Output** — Alien, bell-like frequency-shifted audio output. |
|
|
491
|
+
| `modShift` | modulation | modulation | **Shift Amount** — Modulate the shift amount in Hz. An LFO here sweeps the sidebands for rotating, Leslie-like motion. |
|
|
492
|
+
|
|
493
|
+
### Params
|
|
494
|
+
|
|
495
|
+
| Param | Default | Range | Description |
|
|
496
|
+
|---|---|---|---|
|
|
497
|
+
| `shift` | `0` | -500 – 500 Hz | **Frequency Shift** — Amount to shift all frequencies in Hz. Positive = up, negative = down. Automatable: `params.shift` is a native AudioParam. |
|
|
498
|
+
| `mix` | `1` | 0 – 1 | **Dry/Wet Mix** — Balance between original and frequency-shifted signal. Automatable: `params.mix` is a native AudioParam. |
|
|
499
|
+
|
|
500
|
+
## GATE
|
|
501
|
+
|
|
502
|
+
`import { Gate } from '@jpdutoit/squelchy'`
|
|
503
|
+
|
|
504
|
+
**Noise Gate** — Silences signal below threshold using sample-accurate envelope detection with separate attack and release. Essential for cleaning up noise, tightening drums, and creating rhythmic gating effects.
|
|
505
|
+
|
|
506
|
+
Categories: Dynamics · Worklets: env-follower
|
|
507
|
+
|
|
508
|
+
### Ports
|
|
509
|
+
|
|
510
|
+
| Slug | Direction | Signal | Description |
|
|
511
|
+
|---|---|---|---|
|
|
512
|
+
| `in` | input | audio | **Audio Input** — Audio signal to be gated. |
|
|
513
|
+
| `out` | output | audio | **Audio Output** — Gated audio - silent when below threshold. |
|
|
514
|
+
|
|
515
|
+
### Params
|
|
516
|
+
|
|
517
|
+
| Param | Default | Range | Description |
|
|
518
|
+
|---|---|---|---|
|
|
519
|
+
| `threshold` | `-40` | -60 – 0 dB | **Threshold** — Level below which the gate closes and silences audio. |
|
|
520
|
+
| `range` | `0.8` | 0 – 1 | **Range** — How much the signal is attenuated when gate is closed. 0=full mute, lower=gentler. |
|
|
521
|
+
| `attack` | `0.005` | 0.001 – 0.05 s (log) | **Attack** — How fast the gate opens when signal exceeds threshold. Short = tight, long = gentle fade-in. Automatable: `params.attack` is a native AudioParam. |
|
|
522
|
+
| `release` | `0.1` | 0.01 – 0.5 s (log) | **Release** — How fast the gate closes when signal falls below threshold. Automatable: `params.release` is a native AudioParam. |
|
|
523
|
+
|
|
524
|
+
## GLIDE
|
|
525
|
+
|
|
526
|
+
`import { Glide } from '@jpdutoit/squelchy'`
|
|
527
|
+
|
|
528
|
+
**Glide / Portamento** — Slew limiter that smooths CV transitions. Connect a gate signal for legato-only glide: new notes after silence snap to pitch instantly, overlapping notes glide smoothly.
|
|
529
|
+
|
|
530
|
+
Categories: Modulators, Utility · Worklets: glide
|
|
531
|
+
|
|
532
|
+
### Ports
|
|
533
|
+
|
|
534
|
+
| Slug | Direction | Signal | Description |
|
|
535
|
+
|---|---|---|---|
|
|
536
|
+
| `in` | input | pitch | **Pitch CV In** — Pitch CV to smooth. Works on any CV, but tuned for semitone-space pitch. |
|
|
537
|
+
| `gate` | input | gate | **Gate Input** — Gate signal for legato-only glide. New notes snap to pitch; held notes glide. Leave unconnected for always-on glide. |
|
|
538
|
+
| `out` | output | pitch | **Pitch CV Out** — Smoothed pitch CV with portamento. Connect to any V/OCT input. |
|
|
539
|
+
|
|
540
|
+
### Params
|
|
541
|
+
|
|
542
|
+
| Param | Default | Range | Description |
|
|
543
|
+
|---|---|---|---|
|
|
544
|
+
| `time` | `0.1` | 0.01 – 10 s (log) | **Glide Time** — How long it takes to slide between pitches. Longer = more portamento. Automatable: `params.time` is a native AudioParam. |
|
|
545
|
+
|
|
546
|
+
## HAAS
|
|
547
|
+
|
|
548
|
+
`import { HaasWidener } from '@jpdutoit/squelchy'`
|
|
549
|
+
|
|
550
|
+
**Haas Stereo Widener** — Uses micro-delays (1-35ms) to create stereo width from mono. The Haas effect tricks the ear into perceiving wider stereo image.
|
|
551
|
+
|
|
552
|
+
Categories: Stereo
|
|
553
|
+
|
|
554
|
+
### Ports
|
|
555
|
+
|
|
556
|
+
| Slug | Direction | Signal | Description |
|
|
557
|
+
|---|---|---|---|
|
|
558
|
+
| `in` | input | audio | **Audio Input** — Mono signal to widen using Haas effect. |
|
|
559
|
+
| `out` | output | audio | **Stereo Output** — Stereo-widened audio using micro-delays. |
|
|
560
|
+
|
|
561
|
+
### Params
|
|
562
|
+
|
|
563
|
+
| Param | Default | Range | Description |
|
|
564
|
+
|---|---|---|---|
|
|
565
|
+
| `delay` | `15` | 1 – 35 ms | **Micro-Delay** — Delay time in milliseconds (1–35 ms). The Haas effect range. |
|
|
566
|
+
| `side` | `"right"` | `left` / `right` | **Delayed Side** — Which channel receives the delay — left or right. |
|
|
567
|
+
| `mix` | `1` | 0 – 1 | **Effect Level** — Amount of stereo widening effect. 0 = mono passthrough, 1 = fully delayed side. Automatable: `params.mix` is a native AudioParam. |
|
|
568
|
+
|
|
569
|
+
## H-TREM
|
|
570
|
+
|
|
571
|
+
`import { HarmonicTremolo } from '@jpdutoit/squelchy'`
|
|
572
|
+
|
|
573
|
+
**Harmonic Tremolo** — Fender Brownface-style tremolo that splits signal by frequency. Highs and lows pulse opposite to each other for lush, watery modulation.
|
|
574
|
+
|
|
575
|
+
Categories: Effects
|
|
576
|
+
|
|
577
|
+
### Ports
|
|
578
|
+
|
|
579
|
+
| Slug | Direction | Signal | Description |
|
|
580
|
+
|---|---|---|---|
|
|
581
|
+
| `in` | input | audio | **Audio Input** — Audio signal for harmonic tremolo. |
|
|
582
|
+
| `out` | output | audio | **Audio Output** — Audio with frequency-split tremolo applied. |
|
|
583
|
+
| `modRate` | modulation | modulation | **Rate CV** — Modulate the tremolo LFO speed. |
|
|
584
|
+
| `modCrossover` | modulation | modulation | **Crossover CV** — Modulate the low/high crossover frequency. |
|
|
585
|
+
|
|
586
|
+
### Params
|
|
587
|
+
|
|
588
|
+
| Param | Default | Range | Description |
|
|
589
|
+
|---|---|---|---|
|
|
590
|
+
| `rate` | `4` | 1 – 10 Hz | **Rate** — Tremolo LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Automatable: `params.rate` is a native AudioParam. |
|
|
591
|
+
| `depth` | `0.7` | 0 – 1 | **Modulation Depth** — Intensity of the volume modulation. Split across the low- and high-band LFO gains, so it is set-only (no single AudioParam carries it). |
|
|
592
|
+
| `crossover` | `800` | 200 – 2000 Hz | **Crossover Frequency** — Frequency where signal splits into low and high bands. Only the lowpass moves; the high band is derived (input − LP) and follows. modCrossover sums into the same AudioParam. Automatable: `params.crossover` is a native AudioParam. |
|
|
593
|
+
|
|
594
|
+
## LADDER
|
|
595
|
+
|
|
596
|
+
`import { LadderFilter } from '@jpdutoit/squelchy'`
|
|
597
|
+
|
|
598
|
+
**Moog-style Ladder Filter** — True 4-pole transistor-ladder lowpass (24 dB/octave): one saturating feedback loop around four one-pole stages, like the original circuit. At 100% RES it self-oscillates into a playable sine — patch a Pitch CV into V/OCT and play the filter as a voice. DRIVE saturates inside the ladder for that thick, compressed growl.
|
|
599
|
+
|
|
600
|
+
Categories: Filters · Worklets: ladder-filter, map-voct-to-freq
|
|
601
|
+
|
|
602
|
+
### Ports
|
|
603
|
+
|
|
604
|
+
| Slug | Direction | Signal | Description |
|
|
605
|
+
|---|---|---|---|
|
|
606
|
+
| `in` | input | audio | **Audio Input** — Audio signal to filter through the transistor-ladder model. |
|
|
607
|
+
| `out` | output | audio | **Audio Output** — Warm 24 dB/oct lowpass output. Passband thins slightly as resonance rises — authentic ladder behavior. |
|
|
608
|
+
| `modFreq` | modulation | modulation | **Cutoff V/Oct** — Modulate cutoff in semitones (V/Oct). ±12 = one octave. At full resonance this plays the self-oscillation like an oscillator. |
|
|
609
|
+
| `modRes` | modulation | modulation | **Resonance CV** — Resonance CV: +1 sweeps the full RES range (100% = self-oscillation), adds to the knob, clamped inside the filter. |
|
|
610
|
+
|
|
611
|
+
### Params
|
|
612
|
+
|
|
613
|
+
| Param | Default | Range | Description |
|
|
614
|
+
|---|---|---|---|
|
|
615
|
+
| `note` | `83` | 15 – 135 notes | **Cutoff Note** — Filter cutoff as a note (83 ≈ 1 kHz, 69 = 440 Hz). Drives the V/OCT worklet 1:1 — the panel knob shows the equivalent Hz. At full resonance this plays the self-oscillation like an oscillator. Automatable: `params.note` is a native AudioParam. |
|
|
616
|
+
| `resonance` | `2.5` | 0 – 4 (sqrt) | **Resonance** — Feedback around the whole ladder. At 100% the filter self-oscillates into a sine you can play via the V/OCT input. |
|
|
617
|
+
| `drive` | `0.3` | 0 – 1 | **Input Drive** — Saturation inside the ladder loop — thicker and more compressed as you push it, just like overdriving the original circuit. Automatable: `params.drive` is a native AudioParam. |
|
|
618
|
+
|
|
619
|
+
## LFO
|
|
620
|
+
|
|
621
|
+
`import { Lfo } from '@jpdutoit/squelchy'`
|
|
622
|
+
|
|
623
|
+
**Low Frequency Oscillator** — Generates slow, sub-audio waveforms for modulation. Skew and shape morph continuously between sine, triangle, square and saw. Connect to filter cutoff for wobble, to pitch for vibrato, or to VCA for tremolo.
|
|
624
|
+
|
|
625
|
+
Categories: Modulators · Worklets: waveshaper
|
|
626
|
+
|
|
627
|
+
### Ports
|
|
628
|
+
|
|
629
|
+
| Slug | Direction | Signal | Description |
|
|
630
|
+
|---|---|---|---|
|
|
631
|
+
| `out` | output | modulation | **Modulation Output** — Low frequency oscillation output. Connect to modulation inputs (purple ports) to animate parameters. |
|
|
632
|
+
| `modRate` | modulation | modulation | **Rate CV** — Modulate the LFO speed. |
|
|
633
|
+
| `modAmount` | modulation | modulation | **Amount CV** — Modulate the LFO output depth. |
|
|
634
|
+
| `modSkew` | modulation | modulation | **Skew Modulation** — Modulate waveshape symmetry. |
|
|
635
|
+
| `modShape` | modulation | modulation | **Shape Modulation** — Modulate waveshape curvature. |
|
|
636
|
+
|
|
637
|
+
### Params
|
|
638
|
+
|
|
639
|
+
| Param | Default | Range | Description |
|
|
640
|
+
|---|---|---|---|
|
|
641
|
+
| `skew` | `0` | -1 – 1 | **Skew** — Waveform symmetry. 0 = symmetric; ±1 folds the cycle into a rising or falling ramp. Automatable: `params.skew` is a native AudioParam. |
|
|
642
|
+
| `shape` | `1` | -1 – 1 | **Shape** — Waveform curvature. +1 = sine, 0 = triangle, −1 = exact square. With skew ±1 and shape 0 the output is a saw. Automatable: `params.shape` is a native AudioParam. |
|
|
643
|
+
| `frequency` | `2` | -10 – 20 Hz | **Frequency** — Base oscillation rate, summed with the modRate input. 0 freezes the phase; negative values run the waveform backwards. Automatable: `params.frequency` is a native AudioParam. |
|
|
644
|
+
| `amount` | `12` | 0 – 500 semitones (sqrt) | **Amount** — Output scale: out swings ±amount (semitones when patched to a V/Oct-style mod input). modAmount is summed onto it. Automatable: `params.amount` is a native AudioParam. |
|
|
645
|
+
|
|
646
|
+
## LO-FI
|
|
647
|
+
|
|
648
|
+
`import { LoFi } from '@jpdutoit/squelchy'`
|
|
649
|
+
|
|
650
|
+
**Lo-Fi Processor** — Lo-fi processor with saturation, lowpass filtering, vinyl noise, and pitch wobble. Perfect for vintage, degraded textures.
|
|
651
|
+
|
|
652
|
+
Categories: Distortion, Vintage
|
|
653
|
+
|
|
654
|
+
### Ports
|
|
655
|
+
|
|
656
|
+
| Slug | Direction | Signal | Description |
|
|
657
|
+
|---|---|---|---|
|
|
658
|
+
| `in` | input | audio | **Audio Input** — Audio signal for vintage degradation. |
|
|
659
|
+
| `out` | output | audio | **Audio Output** — Warm, degraded lo-fi audio with vinyl character. |
|
|
660
|
+
| `modCutoff` | modulation | modulation | **Cutoff CV** — Modulate the lowpass cutoff frequency. |
|
|
661
|
+
|
|
662
|
+
### Params
|
|
663
|
+
|
|
664
|
+
| Param | Default | Range | Description |
|
|
665
|
+
|---|---|---|---|
|
|
666
|
+
| `drive` | `0.3` | 0 – 1 | **Saturation** — Amount of warm tape-like saturation and compression. Rebuilds the waveshaper curve, so it is set-only (no single AudioParam carries it). |
|
|
667
|
+
| `cutoff` | `4000` | 500 – 8000 Hz | **Cutoff** — Lowpass filter frequency. Lower = more muffled, vintage sound. Automatable: `params.cutoff` is a native AudioParam. |
|
|
668
|
+
| `noise` | `0.2` | 0 – 1 | **Vinyl Noise** — Amount of background crackle and hiss for authentic vinyl character. Scaled onto the noise gain, so it is set-only (no single AudioParam carries it 1:1). |
|
|
669
|
+
| `wobble` | `0.1` | 0 – 1 | **Wobble** — Pitch instability like a worn tape or warped record. Scaled onto the wobble-LFO gain, so it is set-only (no single AudioParam carries it 1:1). |
|
|
670
|
+
|
|
671
|
+
## M/S
|
|
672
|
+
|
|
673
|
+
`import { MidSide } from '@jpdutoit/squelchy'`
|
|
674
|
+
|
|
675
|
+
**Mid-Side Processor** — Encodes stereo into mid (center) and side (edges) components. Adjust balance for mono compatibility or extreme widening. Essential mastering tool.
|
|
676
|
+
|
|
677
|
+
Categories: Stereo
|
|
678
|
+
|
|
679
|
+
### Ports
|
|
680
|
+
|
|
681
|
+
| Slug | Direction | Signal | Description |
|
|
682
|
+
|---|---|---|---|
|
|
683
|
+
| `in` | input | audio | **Stereo Input** — Stereo audio signal for M/S processing. |
|
|
684
|
+
| `out` | output | audio | **Stereo Output** — Processed stereo audio with adjusted M/S balance. |
|
|
685
|
+
|
|
686
|
+
### Params
|
|
687
|
+
|
|
688
|
+
| Param | Default | Range | Description |
|
|
689
|
+
|---|---|---|---|
|
|
690
|
+
| `midGain` | `1` | 0 – 2 | **Mid Gain** — Controls the center/mono content of the stereo image. Automatable: `params.midGain` is a native AudioParam. |
|
|
691
|
+
| `sideGain` | `1` | 0 – 2 | **Side Gain** — Controls the stereo edges/differences between left and right. Automatable: `params.sideGain` is a native AudioParam. |
|
|
692
|
+
|
|
693
|
+
## NOISE
|
|
694
|
+
|
|
695
|
+
`import { Noise } from '@jpdutoit/squelchy'`
|
|
696
|
+
|
|
697
|
+
**Noise Generator** — Produces random audio (white, pink, brown noise). Use for percussion, wind effects, or filter sweep textures.
|
|
698
|
+
|
|
699
|
+
Categories: Sources
|
|
700
|
+
|
|
701
|
+
### Ports
|
|
702
|
+
|
|
703
|
+
| Slug | Direction | Signal | Description |
|
|
704
|
+
|---|---|---|---|
|
|
705
|
+
| `out` | output | audio | **Noise Output** — White, pink, or brown noise output. |
|
|
706
|
+
| `modLevel` | modulation | modulation | **Level CV** — Modulate output level. Connect an envelope for amplitude shaping or an LFO for tremolo. |
|
|
707
|
+
|
|
708
|
+
### Params
|
|
709
|
+
|
|
710
|
+
| Param | Default | Range | Description |
|
|
711
|
+
|---|---|---|---|
|
|
712
|
+
| `noiseType` | `"white"` | `white` / `pink` / `brown` | **Noise Color** — White, pink, or brown noise spectrum. |
|
|
713
|
+
| `gain` | `0.3` | 0 – 1 | **Noise Level** — Output amplitude of the noise generator. Automatable: `params.gain` is a native AudioParam. |
|
|
714
|
+
|
|
715
|
+
## OCTAVE
|
|
716
|
+
|
|
717
|
+
`import { Octaver } from '@jpdutoit/squelchy'`
|
|
718
|
+
|
|
719
|
+
**Analog Octaver** — Classic analog-style octave effect. Zero-crossing flip-flop frequency division gives true -1 and -2 octave square waves (as in a Boss OC-2), while the +1 octave comes from full-wave rectification through a bandpass that tracks the detected fundamental. Monophonic, like the hardware.
|
|
720
|
+
|
|
721
|
+
Categories: Effects · Worklets: freq-divider
|
|
722
|
+
|
|
723
|
+
### Ports
|
|
724
|
+
|
|
725
|
+
| Slug | Direction | Signal | Description |
|
|
726
|
+
|---|---|---|---|
|
|
727
|
+
| `in` | input | audio | **Audio Input** — Monophonic audio signal for octave processing. |
|
|
728
|
+
| `out` | output | audio | **Audio Output** — Dry signal blended with true divided sub-octaves and a tracked octave-up. |
|
|
729
|
+
|
|
730
|
+
### Params
|
|
731
|
+
|
|
732
|
+
| Param | Default | Range | Description |
|
|
733
|
+
|---|---|---|---|
|
|
734
|
+
| `octDown2` | `0.3` | 0 – 1 | **Two Octaves Down** — Level of the ÷4 divided square wave — two octaves below the input. Automatable: `params.octDown2` is a native AudioParam. |
|
|
735
|
+
| `octDown1` | `0.5` | 0 – 1 | **One Octave Down** — Level of the ÷2 divided square wave — one octave below the input. Automatable: `params.octDown1` is a native AudioParam. |
|
|
736
|
+
| `dry` | `0.7` | 0 – 1 | **Dry Level** — Level of the original unprocessed signal. Automatable: `params.dry` is a native AudioParam. |
|
|
737
|
+
| `octUp` | `0` | 0 – 1 | **One Octave Up** — Level of the rectified octave-up voice, bandpassed around the tracked fundamental. Automatable: `params.octUp` is a native AudioParam. |
|
|
738
|
+
|
|
739
|
+
## PHASER
|
|
740
|
+
|
|
741
|
+
`import { Phaser } from '@jpdutoit/squelchy'`
|
|
742
|
+
|
|
743
|
+
**Phaser Effect** — Creates swooshing, jet-like sweeps by splitting signal through allpass filters. Rate controls speed, depth the intensity, feedback adds resonance.
|
|
744
|
+
|
|
745
|
+
Categories: Time, Effects
|
|
746
|
+
|
|
747
|
+
### Ports
|
|
748
|
+
|
|
749
|
+
| Slug | Direction | Signal | Description |
|
|
750
|
+
|---|---|---|---|
|
|
751
|
+
| `in` | input | audio | **Audio Input** — Audio signal for phase-shifting effect. |
|
|
752
|
+
| `out` | output | audio | **Audio Output** — Swooshing, jet-like phased audio output. |
|
|
753
|
+
| `modRate` | modulation | modulation | **Rate CV** — Modulate the phaser sweep speed. |
|
|
754
|
+
| `modFeedback` | modulation | modulation | **Feedback CV** — Modulate the resonance feedback amount. |
|
|
755
|
+
| `modMix` | modulation | modulation | **Mix CV** — Modulate the dry/wet balance. |
|
|
756
|
+
|
|
757
|
+
### Params
|
|
758
|
+
|
|
759
|
+
| Param | Default | Range | Description |
|
|
760
|
+
|---|---|---|---|
|
|
761
|
+
| `rate` | `0.5` | 0.1 – 10 Hz | **Rate** — Phaser sweep LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Automatable: `params.rate` is a native AudioParam. |
|
|
762
|
+
| `depth` | `0.7` | 0 – 1 | **Modulation Depth** — Intensity of the phase shifting effect. Split proportionally across the four allpass stage gains, so it is set-only (no single AudioParam carries it). |
|
|
763
|
+
| `feedback` | `0.6` | 0 – 0.9 | **Feedback** — Resonance amount. Higher values create more pronounced, whistling sweeps. modFeedback sums into the same AudioParam. Automatable: `params.feedback` is a native AudioParam. |
|
|
764
|
+
| `mix` | `0.5` | 0 – 1 | **Dry/Wet Mix** — Balance between original and phased signal, driven by one ConstantSource (linear law: dry = 1 − mix, wet = mix). Automatable: `params.mix` is a native AudioParam. |
|
|
765
|
+
|
|
766
|
+
## PING
|
|
767
|
+
|
|
768
|
+
`import { PingPong } from '@jpdutoit/squelchy'`
|
|
769
|
+
|
|
770
|
+
**Ping Pong Delay** — Stereo delay that bounces between left and right channels. Creates wide, rhythmic echoes. Spread controls how far apart the bounces are panned.
|
|
771
|
+
|
|
772
|
+
Categories: Time · Worklets: ping-pong
|
|
773
|
+
|
|
774
|
+
### Ports
|
|
775
|
+
|
|
776
|
+
| Slug | Direction | Signal | Description |
|
|
777
|
+
|---|---|---|---|
|
|
778
|
+
| `in` | input | audio | **Audio Input** — Audio signal for ping-pong delay. |
|
|
779
|
+
| `out` | output | audio | **Stereo Output** — Stereo delay with bouncing echoes. |
|
|
780
|
+
|
|
781
|
+
### Params
|
|
782
|
+
|
|
783
|
+
| Param | Default | Range | Description |
|
|
784
|
+
|---|---|---|---|
|
|
785
|
+
| `time` | `0.3` | 0.1 – 1 s (log) | **Delay Time** — Time between each stereo bounce. Automatable: `params.time` is a native AudioParam. |
|
|
786
|
+
| `feedback` | `0.4` | 0 – 0.9 | **Feedback** — How much delayed signal feeds back for more repeats. Automatable: `params.feedback` is a native AudioParam. |
|
|
787
|
+
| `spread` | `1` | 0 – 1 | **Stereo Spread** — Controls how far left/right the bounces are panned. 0% = mono center, 100% = full stereo. |
|
|
788
|
+
| `mix` | `0.5` | 0 – 1 | **Dry/Wet Mix** — Balance between original and delayed signal. Automatable: `params.mix` is a native AudioParam. |
|
|
789
|
+
|
|
790
|
+
## RESO
|
|
791
|
+
|
|
792
|
+
`import { Resonator } from '@jpdutoit/squelchy'`
|
|
793
|
+
|
|
794
|
+
**Resonator** — Modal resonator: five tuned second-order modes that ring when struck. The whole partial series tracks the root note and the V/OCT input exponentially; STRUCT sets the spacing, DAMP the decay time.
|
|
795
|
+
|
|
796
|
+
Categories: Filters · Worklets: map-voct-to-freq
|
|
797
|
+
|
|
798
|
+
### Ports
|
|
799
|
+
|
|
800
|
+
| Slug | Direction | Signal | Description |
|
|
801
|
+
|---|---|---|---|
|
|
802
|
+
| `in` | input | audio | **Audio Input** — Audio signal to excite the resonator. |
|
|
803
|
+
| `out` | output | audio | **Audio Output** — Resonant, pitched harmonics from the input. |
|
|
804
|
+
| `voct` | input | pitch | **Root V/Oct** — Pitch CV from a keyboard or sequencer — every partial plays the incoming notes. |
|
|
805
|
+
| `modFreq` | modulation | modulation | **Root Modulation** — Sweeps every partial in semitones, ±12 = one octave. Patch an LFO here for vowel-like wobbles. |
|
|
806
|
+
|
|
807
|
+
### Params
|
|
808
|
+
|
|
809
|
+
| Param | Default | Range | Description |
|
|
810
|
+
|---|---|---|---|
|
|
811
|
+
| `offset` | `57` | -48 – 108 semitones | **Root Pitch Offset** — Semitones added to the V/OCT input. Unpatched the input is silent, so this is the root note itself: 57 = A3 (220 Hz). Driven by a keyboard or sequencer, 0 tracks the incoming notes. Every partial follows. Automatable: `params.offset` is a native AudioParam. |
|
|
812
|
+
| `structure` | `0` | 0 – 1 | **Structure** — Harmonic spacing of the resonator partials. Left = standard harmonic series, center = bell-like, right = metallic/inharmonic. |
|
|
813
|
+
| `damping` | `0.5` | 0 – 1 | **Damping** — Decay time of the modes, exponential across the knob: at A3 the ring lasts ~10 s at 0, ~0.45 s at the centre and ~20 ms at 1 (T60 ≈ 2.2·Q/f, Q 1000 → 2). Upper partials fade faster than the root, as on a real string. Loudness holds across the range — less damping spreads the same strike over a longer ring instead of making it quieter. |
|
|
814
|
+
| `mix` | `0.5` | 0 – 1 | **Dry/Wet Mix** — Balance between original and resonated signal. Automatable: `params.mix` is a native AudioParam. |
|
|
815
|
+
|
|
816
|
+
## REVERB
|
|
817
|
+
|
|
818
|
+
`import { Reverb } from '@jpdutoit/squelchy'`
|
|
819
|
+
|
|
820
|
+
**Reverb Effect** — Algorithmic Schroeder/FDN reverb: four damped comb filters cross-mixed through a Hadamard matrix, with separate mid and side output taps — a stereo tail that stays exactly mono-compatible, and a stereo input keeps its image. Decay sets RT60 and updates smoothly — nothing is re-rendered when you turn a knob.
|
|
821
|
+
|
|
822
|
+
Categories: Time · Worklets: fdn-reverb
|
|
823
|
+
|
|
824
|
+
### Ports
|
|
825
|
+
|
|
826
|
+
| Slug | Direction | Signal | Description |
|
|
827
|
+
|---|---|---|---|
|
|
828
|
+
| `in` | input | audio | **Audio Input** — Audio signal to add reverb to. |
|
|
829
|
+
| `out` | output | audio | **Audio Output** — Reverberant audio signal mixed with dry signal. |
|
|
830
|
+
|
|
831
|
+
### Params
|
|
832
|
+
|
|
833
|
+
| Param | Default | Range | Description |
|
|
834
|
+
|---|---|---|---|
|
|
835
|
+
| `decay` | `2` | 0.1 – 8 s (log) | **Decay Time (RT60)** — How long the tail takes to fall 60 dB. Short = room, long = hall or cathedral. Automatable: `params.decay` is a native AudioParam. |
|
|
836
|
+
| `mix` | `0.3` | 0 – 1 | **Dry/Wet Mix** — Equal-power balance between original (dry) and reverberant (wet) signal. Automatable: `params.mix` is a native AudioParam. |
|
|
837
|
+
|
|
838
|
+
## RING
|
|
839
|
+
|
|
840
|
+
`import { RingModulator } from '@jpdutoit/squelchy'`
|
|
841
|
+
|
|
842
|
+
**Ring Modulator** — Multiplies input with an internal carrier oscillator, creating metallic, bell-like, and robotic tones. Classic Dalek voice effect!
|
|
843
|
+
|
|
844
|
+
Categories: Effects · Worklets: map-voct-to-freq
|
|
845
|
+
|
|
846
|
+
### Ports
|
|
847
|
+
|
|
848
|
+
| Slug | Direction | Signal | Description |
|
|
849
|
+
|---|---|---|---|
|
|
850
|
+
| `in` | input | audio | **Audio Input** — Audio signal for ring modulation. |
|
|
851
|
+
| `out` | output | audio | **Audio Output** — Metallic, bell-like ring-modulated audio output. |
|
|
852
|
+
| `voct` | input | pitch | **Carrier Pitch CV** — Pitch CV from a keyboard or sequencer — the carrier plays the incoming notes. |
|
|
853
|
+
| `modFreq` | modulation | modulation | **Carrier Modulation** — Sweeps the carrier in semitones, ±12 = one octave. Patch an LFO here for gliding sci-fi sidebands. |
|
|
854
|
+
|
|
855
|
+
### Params
|
|
856
|
+
|
|
857
|
+
| Param | Default | Range | Description |
|
|
858
|
+
|---|---|---|---|
|
|
859
|
+
| `offset` | `69` | -48 – 108 semitones | **Carrier Pitch Offset** — Semitones added to the V/OCT input. Unpatched the input is silent, so this is the carrier note itself: 69 = 440 Hz. Driven by a keyboard or sequencer, 0 tracks the incoming notes. Automatable: `params.offset` is a native AudioParam. |
|
|
860
|
+
| `mix` | `0.5` | 0 – 1 | **Dry/Wet Mix** — Balance between original and ring-modulated signal. |
|
|
861
|
+
|
|
862
|
+
## ROTARY
|
|
863
|
+
|
|
864
|
+
`import { Rotary } from '@jpdutoit/squelchy'`
|
|
865
|
+
|
|
866
|
+
**Rotary Speaker** — Two-rotor Leslie cabinet: 800 Hz crossover into a treble horn and bass drum, each with its own speed, inertia, Doppler and directivity, picked up by a stereo mic pair. Switching SLOW↔FAST ramps the rotors like the real thing — the horn in about a second, the drum over several.
|
|
867
|
+
|
|
868
|
+
Categories: Effects, Vintage
|
|
869
|
+
|
|
870
|
+
### Ports
|
|
871
|
+
|
|
872
|
+
| Slug | Direction | Signal | Description |
|
|
873
|
+
|---|---|---|---|
|
|
874
|
+
| `in` | input | audio | **Audio Input** — Audio signal for Leslie cabinet simulation. |
|
|
875
|
+
| `out` | output | audio | **Audio Output** — Stereo rotary output: Doppler and tremolo swirling between the two mics. |
|
|
876
|
+
| `modMix` | modulation | modulation | **Mix CV** — Modulate the dry/wet balance. |
|
|
877
|
+
|
|
878
|
+
### Params
|
|
879
|
+
|
|
880
|
+
| Param | Default | Range | Description |
|
|
881
|
+
|---|---|---|---|
|
|
882
|
+
| `speed` | `"slow"` | `slow` / `fast` | **Speed Mode** — Toggle between slow "chorale" and fast "tremolo". The rotors ramp between speeds with inertia — horn in ~1 s, drum in ~4–5 s — so this is a mode switch, not a continuous rate. |
|
|
883
|
+
| `slowRate` | `0.8` | 0.5 – 2 Hz | **Slow Rate** — Horn speed in chorale mode (the drum turns at 0.85× this). Applied via an inertia ramp, so it is set-only. |
|
|
884
|
+
| `fastRate` | `6` | 4 – 8 Hz | **Fast Rate** — Horn speed in tremolo mode (the drum turns at 0.85× this). Applied via an inertia ramp, so it is set-only. |
|
|
885
|
+
| `mix` | `0.7` | 0 – 1 | **Dry/Wet Mix** — Balance between original and rotary speaker signal, driven by one ConstantSource (linear law: dry = 1 − mix, wet = mix). Automatable: `params.mix` is a native AudioParam. |
|
|
886
|
+
|
|
887
|
+
## SAT
|
|
888
|
+
|
|
889
|
+
`import { Saturator } from '@jpdutoit/squelchy'`
|
|
890
|
+
|
|
891
|
+
**Tape Saturator** — Adds warm analog-style harmonic saturation. Drive pushes into soft clipping, warmth adds low-end emphasis. Subtle grit to heavy crunch.
|
|
892
|
+
|
|
893
|
+
Categories: Distortion
|
|
894
|
+
|
|
895
|
+
### Ports
|
|
896
|
+
|
|
897
|
+
| Slug | Direction | Signal | Description |
|
|
898
|
+
|---|---|---|---|
|
|
899
|
+
| `in` | input | audio | **Audio Input** — Audio signal for warm saturation. |
|
|
900
|
+
| `out` | output | audio | **Audio Output** — Warm, harmonically-rich saturated audio output. |
|
|
901
|
+
|
|
902
|
+
### Params
|
|
903
|
+
|
|
904
|
+
| Param | Default | Range | Description |
|
|
905
|
+
|---|---|---|---|
|
|
906
|
+
| `drive` | `0.5` | 0 – 1 | **Drive** — How hard to push into saturation. Adds harmonics and soft compression. |
|
|
907
|
+
| `warmth` | `0.5` | 0 – 1 | **Warmth** — Low frequency emphasis for a thicker, analog-like tone. |
|
|
908
|
+
| `mix` | `1` | 0 – 1 | **Dry/Wet Mix** — Balance between clean and saturated signal. Automatable: `params.mix` is a native AudioParam. |
|
|
909
|
+
|
|
910
|
+
## SHIMMER
|
|
911
|
+
|
|
912
|
+
`import { Shimmer } from '@jpdutoit/squelchy'`
|
|
913
|
+
|
|
914
|
+
**Shimmer Reverb** — A real shimmer: a Schroeder/FDN reverb tank whose feedback path runs through a granular pitch shifter, so every pass through the tank is transposed again and the tail climbs as it decays. Fully stereo: the tank keeps a stereo input's image, and each channel has its own pitch shifter in the feedback loop so the rising tail stays wide. +12 = octave up, +7 = fifth.
|
|
915
|
+
|
|
916
|
+
Categories: Time · Worklets: pitch-shifter, fdn-reverb
|
|
917
|
+
|
|
918
|
+
### Ports
|
|
919
|
+
|
|
920
|
+
| Slug | Direction | Signal | Description |
|
|
921
|
+
|---|---|---|---|
|
|
922
|
+
| `in` | input | audio | **Audio Input** — Audio signal for shimmer reverb processing. |
|
|
923
|
+
| `out` | output | audio | **Audio Output** — Ethereal, pitch-shifted reverb output. |
|
|
924
|
+
|
|
925
|
+
### Params
|
|
926
|
+
|
|
927
|
+
| Param | Default | Range | Description |
|
|
928
|
+
|---|---|---|---|
|
|
929
|
+
| `decay` | `3` | 0.5 – 10 s (log) | **Reverb Decay** — RT60 of the reverb tank in seconds. |
|
|
930
|
+
| `pitch` | `12` | -12 – 24 semitones | **Pitch Shift** — Transposition applied by the granular pitch shifter on every trip round the feedback loop (12 = one octave). +12 = octave up, +7 = fifth up, -12 = octave down. |
|
|
931
|
+
| `mix` | `0.5` | 0 – 1 | **Dry/Wet Mix** — Equal-power balance between dry signal and shimmer output — independent of the regen amount. Automatable: `params.mix` is a native AudioParam. |
|
|
932
|
+
| `shimmer` | `0.5` | 0 – 0.95 | **Shimmer Regen** — How much pitch-shifted signal is fed back into the tank. High = endless rising choir. Automatable: `params.shimmer` is a native AudioParam. |
|
|
933
|
+
|
|
934
|
+
## LIMIT
|
|
935
|
+
|
|
936
|
+
`import { SoftLimiter } from '@jpdutoit/squelchy'`
|
|
937
|
+
|
|
938
|
+
**Soft Limiter** — Gentle brickwall limiting with soft knee. Prevents clipping while preserving dynamics. Use ceiling control to set maximum output level.
|
|
939
|
+
|
|
940
|
+
Categories: Dynamics
|
|
941
|
+
|
|
942
|
+
### Ports
|
|
943
|
+
|
|
944
|
+
| Slug | Direction | Signal | Description |
|
|
945
|
+
|---|---|---|---|
|
|
946
|
+
| `in` | input | audio | **Audio Input** — Audio signal to be limited. |
|
|
947
|
+
| `out` | output | audio | **Audio Output** — Limited audio with controlled peaks. |
|
|
948
|
+
|
|
949
|
+
### Params
|
|
950
|
+
|
|
951
|
+
| Param | Default | Range | Description |
|
|
952
|
+
|---|---|---|---|
|
|
953
|
+
| `drive` | `0.5` | 0 – 1 | **Input Drive** — Pushes signal into the limiter for more saturation and loudness. |
|
|
954
|
+
| `knee` | `0.5` | 0 – 1 | **Soft Knee** — How gradually limiting kicks in. Higher = softer, more transparent. |
|
|
955
|
+
| `ceiling` | `-0.5` | -12 – 0 dB | **Ceiling** — Maximum output level in dB. Prevents clipping above this level. |
|
|
956
|
+
|
|
957
|
+
## SPRING
|
|
958
|
+
|
|
959
|
+
`import { SpringReverb } from '@jpdutoit/squelchy'`
|
|
960
|
+
|
|
961
|
+
**Spring Tank Reverb** — A modeled spring tank: dispersive spring lines turn transients into the classic descending "boing", the tail darkens with every pass, and KNOCK whacks the tank for the kicked-amp crash.
|
|
962
|
+
|
|
963
|
+
Categories: Time, Vintage · Worklets: spring-reverb
|
|
964
|
+
|
|
965
|
+
### Ports
|
|
966
|
+
|
|
967
|
+
| Slug | Direction | Signal | Description |
|
|
968
|
+
|---|---|---|---|
|
|
969
|
+
| `in` | input | audio | **Audio Input** — Audio driven into the spring tank. Hit it hard and the springs overload into a crash. |
|
|
970
|
+
| `knock` | input | gate | **Knock Trigger** — Rising edge whacks the tank — a mechanical thump straight into the springs, like kicking the amp. Patch a clock for rhythmic dub crashes. |
|
|
971
|
+
| `out` | output | audio | **Audio Output** — Dry/wet blend of the spring tank — dispersive boing, flutter echoes and all. |
|
|
972
|
+
|
|
973
|
+
### Params
|
|
974
|
+
|
|
975
|
+
| Param | Default | Range | Description |
|
|
976
|
+
|---|---|---|---|
|
|
977
|
+
| `mix` | `0.35` | 0 – 1 | **Dry/Wet Mix** — Equal-power blend of dry signal and spring output. Automatable: `params.mix` is a native AudioParam. |
|
|
978
|
+
| `decay` | `1.5` | 0.3 – 4 s (log) | **Reverb Decay** — Stretch/sag of the spring's dispersion — higher values ring longer and smear more. Automatable: `params.decay` is a native AudioParam. |
|
|
979
|
+
| `tone` | `0.6` | 0 – 1 | **Tone** — Brightness of the spring output: darkens the rattly top end as it falls. Automatable: `params.tone` is a native AudioParam. |
|
|
980
|
+
| `drip` | `0.5` | 0 – 1 | **Drip** — Spring bounce character — how much the delayed tail drips and boings. Automatable: `params.drip` is a native AudioParam. |
|
|
981
|
+
|
|
982
|
+
## SPREAD
|
|
983
|
+
|
|
984
|
+
`import { StereoSpread } from '@jpdutoit/squelchy'`
|
|
985
|
+
|
|
986
|
+
**Stereo Spreader** — Frequency-dependent stereo widening using the Haas effect. Highs above the crossover are split into two paths with micro-delay for real psychoacoustic width. Lows stay mono and centered.
|
|
987
|
+
|
|
988
|
+
Categories: Stereo
|
|
989
|
+
|
|
990
|
+
### Ports
|
|
991
|
+
|
|
992
|
+
| Slug | Direction | Signal | Description |
|
|
993
|
+
|---|---|---|---|
|
|
994
|
+
| `in` | input | audio | **Audio Input** — Audio signal for stereo spreading. |
|
|
995
|
+
| `out` | output | audio | **Audio Output** — Wide stereo audio with frequency-dependent Haas widening. |
|
|
996
|
+
|
|
997
|
+
### Params
|
|
998
|
+
|
|
999
|
+
| Param | Default | Range | Description |
|
|
1000
|
+
|---|---|---|---|
|
|
1001
|
+
| `spread` | `0.7` | 0 – 1 | **Spread Amount** — Controls the micro-delay time for Haas widening (0–5ms). More spread = wider perceived stereo image. |
|
|
1002
|
+
| `center` | `800` | 200 – 2000 Hz (log) | **Crossover Frequency** — Frequency above which Haas spreading is applied. Lows below this stay centered for mono compatibility. |
|
|
1003
|
+
|
|
1004
|
+
## SUB OCT
|
|
1005
|
+
|
|
1006
|
+
`import { Subharmonic } from '@jpdutoit/squelchy'`
|
|
1007
|
+
|
|
1008
|
+
**Sub Octave Generator** — Generates square waves one and two octaves below the input using zero-crossing frequency division, like classic analog octave pedals.
|
|
1009
|
+
|
|
1010
|
+
Categories: Sources · Worklets: freq-divider
|
|
1011
|
+
|
|
1012
|
+
### Ports
|
|
1013
|
+
|
|
1014
|
+
| Slug | Direction | Signal | Description |
|
|
1015
|
+
|---|---|---|---|
|
|
1016
|
+
| `in` | input | audio | **Audio Input** — Audio signal for sub-octave generation. |
|
|
1017
|
+
| `out` | output | audio | **Audio Output** — Audio with added sub-octave content. |
|
|
1018
|
+
|
|
1019
|
+
### Params
|
|
1020
|
+
|
|
1021
|
+
| Param | Default | Range | Description |
|
|
1022
|
+
|---|---|---|---|
|
|
1023
|
+
| `direct` | `1` | 0 – 1 | **Direct Level** — Level of the dry input signal passed through to the output. Automatable: `params.direct` is a native AudioParam. |
|
|
1024
|
+
| `octave1` | `0.5` | 0 – 1 | **Octave Down** — Level of the first sub-octave (one octave below input via ÷2 frequency division). Automatable: `params.octave1` is a native AudioParam. |
|
|
1025
|
+
| `octave2` | `0.3` | 0 – 1 | **Two Octaves Down** — Level of the second sub-octave (two octaves below input via ÷4 frequency division). Automatable: `params.octave2` is a native AudioParam. |
|
|
1026
|
+
|
|
1027
|
+
## TAPE
|
|
1028
|
+
|
|
1029
|
+
`import { TapeDelay } from '@jpdutoit/squelchy'`
|
|
1030
|
+
|
|
1031
|
+
**Tape Echo** — Vintage-style delay with analog warmth. Repeats darken like real tape, wow and flutter add speed wobble, saturation adds harmonic richness, and the TIME knob bends pitch like a varispeed motor.
|
|
1032
|
+
|
|
1033
|
+
Categories: Time, Vintage · Worklets: tape-delay
|
|
1034
|
+
|
|
1035
|
+
### Ports
|
|
1036
|
+
|
|
1037
|
+
| Slug | Direction | Signal | Description |
|
|
1038
|
+
|---|---|---|---|
|
|
1039
|
+
| `in` | input | audio | **Audio Input** — Audio signal for warm tape echo processing. |
|
|
1040
|
+
| `out` | output | audio | **Audio Output** — Lush tape delay with wow, flutter, per-repeat darkening, and saturation. |
|
|
1041
|
+
|
|
1042
|
+
### Params
|
|
1043
|
+
|
|
1044
|
+
| Param | Default | Range | Description |
|
|
1045
|
+
|---|---|---|---|
|
|
1046
|
+
| `time` | `0.375` | 0.05 – 1.5 s (log) | **Delay Time** — Echo time. Changes glide with a tape-style pitch bend instead of jumping. Automatable: `params.time` is a native AudioParam. |
|
|
1047
|
+
| `feedback` | `0.5` | 0 – 0.95 | **Feedback** — Repeat intensity. High values create dreamy, degrading echoes. Automatable: `params.feedback` is a native AudioParam. |
|
|
1048
|
+
| `mix` | `0.4` | 0 – 1 | **Dry/Wet Mix** — Balance between original and delayed signal. Automatable: `params.mix` is a native AudioParam. |
|
|
1049
|
+
| `flutter` | `0.3` | 0 – 1 | **Wow & Flutter** — Slow wow plus fast flutter — tape transport speed wobble, proportional to delay time. Automatable: `params.flutter` is a native AudioParam. |
|
|
1050
|
+
| `saturation` | `0.4` | 0 – 1 | **Saturation** — Tape saturation warmth and subtle compression, applied on every pass. Automatable: `params.saturation` is a native AudioParam. |
|
|
1051
|
+
|
|
1052
|
+
## TAPE STOP
|
|
1053
|
+
|
|
1054
|
+
`import { TapeStop } from '@jpdutoit/squelchy'`
|
|
1055
|
+
|
|
1056
|
+
**Tape Stop Effect** — Classic DJ/producer tape-stop effect with real pitch-dropping slowdown via ring-buffer resampling. Trigger to toggle between stopped and playing.
|
|
1057
|
+
|
|
1058
|
+
Categories: Time · Worklets: tape-stop
|
|
1059
|
+
|
|
1060
|
+
### Ports
|
|
1061
|
+
|
|
1062
|
+
| Slug | Direction | Signal | Description |
|
|
1063
|
+
|---|---|---|---|
|
|
1064
|
+
| `in` | input | audio | **Audio Input** — Audio signal to apply tape stop effect. |
|
|
1065
|
+
| `trigger` | input | gate | **Trigger Input** — Rising edge toggles between stop and start. Works with clock or audio-rate triggers. |
|
|
1066
|
+
| `out` | output | audio | **Audio Output** — Audio with tape stop/start effect applied. |
|
|
1067
|
+
|
|
1068
|
+
### Params
|
|
1069
|
+
|
|
1070
|
+
| Param | Default | Range | Description |
|
|
1071
|
+
|---|---|---|---|
|
|
1072
|
+
| `time` | `0.5` | 0.01 – 4 s (log) | **Stop/Start Time** — Duration of the tape deceleration or acceleration ramp. Automatable: `params.time` is a native AudioParam. |
|
|
1073
|
+
| `mix` | `1` | 0 – 1 | **Dry/Wet Mix** — Balance between original signal and tape-stopped signal. Automatable: `params.mix` is a native AudioParam. |
|
|
1074
|
+
|
|
1075
|
+
## TILT
|
|
1076
|
+
|
|
1077
|
+
`import { Tilt } from '@jpdutoit/squelchy'`
|
|
1078
|
+
|
|
1079
|
+
**Tilt EQ** — Single-knob tone control that tilts the frequency balance around a pivot point. Positive = brighter, negative = darker. Simple but powerful.
|
|
1080
|
+
|
|
1081
|
+
Categories: Filters
|
|
1082
|
+
|
|
1083
|
+
### Ports
|
|
1084
|
+
|
|
1085
|
+
| Slug | Direction | Signal | Description |
|
|
1086
|
+
|---|---|---|---|
|
|
1087
|
+
| `in` | input | audio | **Audio Input** — Audio signal for tilt EQ processing. |
|
|
1088
|
+
| `out` | output | audio | **Audio Output** — Frequency-tilted audio output. |
|
|
1089
|
+
|
|
1090
|
+
### Params
|
|
1091
|
+
|
|
1092
|
+
| Param | Default | Range | Description |
|
|
1093
|
+
|---|---|---|---|
|
|
1094
|
+
| `tilt` | `0` | -12 – 12 dB | **Tilt Amount** — Positive tilts towards highs (brighter), negative towards lows (darker). Drives the low shelf (inverted) and high shelf gains. |
|
|
1095
|
+
| `frequency` | `1000` | 200 – 5000 Hz | **Pivot Frequency** — Center frequency around which the tilt occurs, shared by both the low and high shelf filters. |
|
|
1096
|
+
|
|
1097
|
+
## TREMOLO
|
|
1098
|
+
|
|
1099
|
+
`import { Tremolo } from '@jpdutoit/squelchy'`
|
|
1100
|
+
|
|
1101
|
+
**Tremolo Effect** — Classic amplitude modulation found in vintage amps. Creates pulsing, rhythmic volume changes. Square wave shape gives choppy helicopter effect.
|
|
1102
|
+
|
|
1103
|
+
Categories: Effects
|
|
1104
|
+
|
|
1105
|
+
### Ports
|
|
1106
|
+
|
|
1107
|
+
| Slug | Direction | Signal | Description |
|
|
1108
|
+
|---|---|---|---|
|
|
1109
|
+
| `in` | input | audio | **Audio Input** — Audio signal for amplitude modulation. |
|
|
1110
|
+
| `out` | output | audio | **Audio Output** — Pulsing, rhythmic tremolo audio output. |
|
|
1111
|
+
| `modRate` | modulation | modulation | **Rate CV** — Modulate the tremolo LFO speed. |
|
|
1112
|
+
|
|
1113
|
+
### Params
|
|
1114
|
+
|
|
1115
|
+
| Param | Default | Range | Description |
|
|
1116
|
+
|---|---|---|---|
|
|
1117
|
+
| `rate` | `5` | 0.5 – 20 Hz | **Rate** — Amplitude-modulation LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Automatable: `params.rate` is a native AudioParam. |
|
|
1118
|
+
| `depth` | `0.5` | 0 – 1 | **Modulation Depth** — How much the volume varies. 100% goes from silence to full volume. Split across a depth gain and a DC offset, so it is set-only (no single AudioParam carries it). |
|
|
1119
|
+
| `shape` | `"sine"` | `sine` / `triangle` / `square` | **LFO Shape** — Waveform shape: sine for smooth, triangle for linear, square for choppy. |
|
|
1120
|
+
|
|
1121
|
+
## VCA
|
|
1122
|
+
|
|
1123
|
+
`import { Vca } from '@jpdutoit/squelchy'`
|
|
1124
|
+
|
|
1125
|
+
**Voltage Controlled Amplifier** — Controls signal level. GAIN sets the resting level, CV AMT scales (or inverts) the control voltage. Gain is clamped at zero, so deep CV closes the VCA instead of flipping phase.
|
|
1126
|
+
|
|
1127
|
+
Categories: Dynamics · Worklets: vca
|
|
1128
|
+
|
|
1129
|
+
### Ports
|
|
1130
|
+
|
|
1131
|
+
| Slug | Direction | Signal | Description |
|
|
1132
|
+
|---|---|---|---|
|
|
1133
|
+
| `in` | input | audio | **Audio Input** — Audio signal to be amplified. |
|
|
1134
|
+
| `out` | output | audio | **Audio Output** — Amplified audio signal output. |
|
|
1135
|
+
| `modGain` | modulation | modulation | **Gain CV** — Modulate the level. Scaled by CV AMT and added to GAIN, then clamped to 0–2. Envelope for volume shaping, LFO for tremolo. |
|
|
1136
|
+
|
|
1137
|
+
### Params
|
|
1138
|
+
|
|
1139
|
+
| Param | Default | Range | Description |
|
|
1140
|
+
|---|---|---|---|
|
|
1141
|
+
| `gain` | `0.5` | 0 – 2 | **Resting level** — Sets the level when no CV is patched, and the offset the CV rides on. Leave at 0 for envelope-gated patches so the VCA fully closes. Automatable: `params.gain` is a native AudioParam. |
|
|
1142
|
+
| `cvAmount` | `1` | -1 – 1 | **CV attenuverter** — Scales the control voltage from the CV input. Negative values invert it, so the signal ducks instead of swelling. Automatable: `params.cvAmount` is a native AudioParam. |
|
|
1143
|
+
|
|
1144
|
+
## VCF
|
|
1145
|
+
|
|
1146
|
+
`import { Vcf } from '@jpdutoit/squelchy'`
|
|
1147
|
+
|
|
1148
|
+
**Voltage Controlled Filter** — SEM-style multimode filter (12 dB/oct lowpass, highpass, bandpass, notch). Cutoff modulation is exponential (V/Oct) — ±12 = one octave. RES is true filter Q in every mode; like the SEM it stays clean and never self-oscillates — reach for LADDER when you want scream.
|
|
1149
|
+
|
|
1150
|
+
Categories: Filters · Worklets: map-res, map-voct-to-freq
|
|
1151
|
+
|
|
1152
|
+
### Ports
|
|
1153
|
+
|
|
1154
|
+
| Slug | Direction | Signal | Description |
|
|
1155
|
+
|---|---|---|---|
|
|
1156
|
+
| `in` | input | audio | **Audio Input** — Audio signal to be filtered. |
|
|
1157
|
+
| `out` | output | audio | **Audio Output** — Filtered audio signal output. |
|
|
1158
|
+
| `modFreq` | modulation | modulation | **Cutoff V/Oct** — Modulate cutoff in semitones (V/Oct). ±12 = one octave. Connect an LFO or envelope for musical sweeps. |
|
|
1159
|
+
| `modQ` | modulation | modulation | **Resonance CV** — Resonance CV: +1 sweeps the full RES range (Q 0.1–20), adds to the knob, clamped. Same true-Q behavior in every filter mode. |
|
|
1160
|
+
|
|
1161
|
+
### Params
|
|
1162
|
+
|
|
1163
|
+
| Param | Default | Range | Description |
|
|
1164
|
+
|---|---|---|---|
|
|
1165
|
+
| `filterType` | `"lowpass"` | `lowpass` / `highpass` / `bandpass` / `notch` | **Filter Type** — Selects lowpass, highpass, bandpass, or notch response. |
|
|
1166
|
+
| `note` | `83` | 15 – 135 notes | **Cutoff Note** — Filter cutoff as a note (83 ≈ 1 kHz, 69 = 440 Hz). Drives the V/OCT worklet 1:1 — the panel knob shows the equivalent Hz. Automatable: `params.note` is a native AudioParam. |
|
|
1167
|
+
| `resonance` | `1` | 0.1 – 20 (sqrt) | **Resonance (Q)** — True filter Q, identical in every mode: Q 0.707 is maximally flat, Q 8 peaks ~+18 dB in lowpass and narrows bandpass to f/8. |
|
|
1168
|
+
|
|
1169
|
+
## VCO
|
|
1170
|
+
|
|
1171
|
+
`import { Vco } from '@jpdutoit/squelchy'`
|
|
1172
|
+
|
|
1173
|
+
**Voltage Controlled Oscillator** — Continuously morphable waveform generator. The X-Y pad controls waveshape: X = skew (symmetry), Y = shape (curvature). Covers sine, triangle, square, sawtooth, and everything in between.
|
|
1174
|
+
|
|
1175
|
+
Categories: Sources · Worklets: map-voct-to-freq, waveshaper
|
|
1176
|
+
|
|
1177
|
+
### Ports
|
|
1178
|
+
|
|
1179
|
+
| Slug | Direction | Signal | Description |
|
|
1180
|
+
|---|---|---|---|
|
|
1181
|
+
| `voct` | input | pitch | **Pitch CV** — Pitch CV input — plays the oscillator chromatically from keyboard or sequencer CV. |
|
|
1182
|
+
| `out` | output | audio | **Audio Output** — Main audio signal output from the oscillator. |
|
|
1183
|
+
| `modSkew` | modulation | modulation | **Skew Modulation** — Modulate waveshape symmetry. At center = symmetric, fully right = sawtooth. |
|
|
1184
|
+
| `modShape` | modulation | modulation | **Shape Modulation** — Modulate waveshape curvature. Bottom = square, middle = triangle, top = sine. |
|
|
1185
|
+
| `modDetune` | modulation | modulation | **Detune Modulation** — Modulate fine pitch in semitones. Connect an LFO for vibrato (amount ~0.1–0.3). |
|
|
1186
|
+
|
|
1187
|
+
### Params
|
|
1188
|
+
|
|
1189
|
+
| Param | Default | Range | Description |
|
|
1190
|
+
|---|---|---|---|
|
|
1191
|
+
| `skew` | `1` | -1 – 1 | **Waveshape Skew** — Symmetry of the waveform: −1 reversed sawtooth, 0 symmetric, +1 sawtooth. Automatable: `params.skew` is a native AudioParam. |
|
|
1192
|
+
| `shape` | `0` | -1 – 1 | **Waveshape Curvature** — Curvature of the waveform: −1 square, 0 triangle, +1 sine. Automatable: `params.shape` is a native AudioParam. |
|
|
1193
|
+
| `offset` | `69` | -48 – 108 semitones | **Pitch Offset** — Semitones added to the V/OCT input (12 = one octave). Unpatched the input is silent, so this is the note itself: 69 = A4. Driven by an absolute pitch CV (keyboard, sequencer), set 0 to play as-is or ±12 to shift an octave. Automatable: `params.offset` is a native AudioParam. |
|
|
1194
|
+
| `detune` | `0` | -1 – 1 semitones | **Detune** — Fine pitch offset in semitones; ±1 = ±100 cents. Use for detuning oscillators against each other. Automatable: `params.detune` is a native AudioParam. |
|
|
1195
|
+
| `gain` | `0.5` | 0 – 1 | **Output Level** — Amplitude of the oscillator output signal. Automatable: `params.gain` is a native AudioParam. |
|
|
1196
|
+
|
|
1197
|
+
## WAH
|
|
1198
|
+
|
|
1199
|
+
`import { Wah } from '@jpdutoit/squelchy'`
|
|
1200
|
+
|
|
1201
|
+
**Auto-Wah** — Classic wah-wah filter: a resonant bandpass swept by an internal LFO, with exponential (V/Oct) frequency response. Like a real pedal it boosts at the resonant peak, so RES changes the vocal character rather than the volume. Patch an envelope follower into V/OCT for auto-wah.
|
|
1202
|
+
|
|
1203
|
+
Categories: Filters, Effects · Worklets: map-voct-to-freq
|
|
1204
|
+
|
|
1205
|
+
### Ports
|
|
1206
|
+
|
|
1207
|
+
| Slug | Direction | Signal | Description |
|
|
1208
|
+
|---|---|---|---|
|
|
1209
|
+
| `in` | input | audio | **Audio Input** — Audio signal for wah effect processing. |
|
|
1210
|
+
| `out` | output | audio | **Audio Output** — Funky, vocal-like wah audio output. |
|
|
1211
|
+
| `modFreq` | modulation | modulation | **Frequency V/Oct** — Modulate center frequency in semitones (V/Oct). Connect an envelope follower for auto-wah. |
|
|
1212
|
+
|
|
1213
|
+
### Params
|
|
1214
|
+
|
|
1215
|
+
| Param | Default | Range | Description |
|
|
1216
|
+
|---|---|---|---|
|
|
1217
|
+
| `note` | `79` | 55 – 95 notes | **Center Note** — Wah center frequency as a note (79 ≈ 800 Hz, 69 = 440 Hz). Drives the V/OCT worklet 1:1 — the panel knob shows the equivalent Hz. Automatable: `params.note` is a native AudioParam. |
|
|
1218
|
+
| `resonance` | `8` | 1 – 20 (log) | **Resonance** — How pronounced and vocal the wah peak sounds. |
|
|
1219
|
+
| `rate` | `1` | 0.1 – 10 Hz (log) | **Auto-Wah Rate** — Speed of the automatic wah sweep in Hz. Automatable: `params.rate` is a native AudioParam. |
|
|
1220
|
+
| `depth` | `0.6` | 0 – 1 | **Modulation Depth** — How much the frequency sweeps. Full depth ≈ 3 octaves. |
|
|
1221
|
+
|
|
1222
|
+
## FOLD
|
|
1223
|
+
|
|
1224
|
+
`import { Wavefolder } from '@jpdutoit/squelchy'`
|
|
1225
|
+
|
|
1226
|
+
**Wavefolder** — West Coast synthesis classic. Folds waveform peaks back on themselves, adding rich harmonics. Essential for complex timbres from simple waves.
|
|
1227
|
+
|
|
1228
|
+
Categories: Distortion
|
|
1229
|
+
|
|
1230
|
+
### Ports
|
|
1231
|
+
|
|
1232
|
+
| Slug | Direction | Signal | Description |
|
|
1233
|
+
|---|---|---|---|
|
|
1234
|
+
| `in` | input | audio | **Audio Input** — Audio signal for waveshaping/folding. |
|
|
1235
|
+
| `out` | output | audio | **Audio Output** — Harmonically rich wavefolded audio output. |
|
|
1236
|
+
|
|
1237
|
+
### Params
|
|
1238
|
+
|
|
1239
|
+
| Param | Default | Range | Description |
|
|
1240
|
+
|---|---|---|---|
|
|
1241
|
+
| `folds` | `2` | 1 – 10 | **Fold Amount** — How many times the waveform folds back. More folds = richer harmonics. |
|
|
1242
|
+
| `symmetry` | `0` | -1 – 1 | **Symmetry** — Asymmetric folding creates even harmonics for different timbres. |
|
|
1243
|
+
| `mix` | `1` | 0 – 1 | **Dry/Wet Mix** — Balance between original and wavefolded signal. Automatable: `params.mix` is a native AudioParam. |
|
|
1244
|
+
|