@jpdutoit/squelchy 0.0.5 → 0.0.6
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/README.md +2 -0
- package/{chunk-N7J25N5J.js → chunk-PJDNZ52Q.js} +21 -5
- package/chunk-PJDNZ52Q.js.map +7 -0
- package/docs/GUIDE.md +27 -4
- package/docs/MODULES.md +46 -36
- package/docs/modules.json +113 -31
- package/index.d.ts +75 -25
- package/index.js +526 -350
- package/index.js.map +3 -3
- package/kits/compu-78/bd.flac +0 -0
- package/kits/compu-78/ch.flac +0 -0
- package/kits/compu-78/clap.flac +0 -0
- package/kits/compu-78/cym.flac +0 -0
- package/kits/compu-78/ht.flac +0 -0
- package/kits/compu-78/lt.flac +0 -0
- package/kits/compu-78/mt.flac +0 -0
- package/kits/compu-78/oh.flac +0 -0
- package/kits/compu-78/perc.flac +0 -0
- package/kits/compu-78/rim.flac +0 -0
- package/kits/compu-78/sd.flac +0 -0
- package/kits/deep-analogue/bd.flac +0 -0
- package/kits/deep-analogue/ch.flac +0 -0
- package/kits/deep-analogue/clap.flac +0 -0
- package/kits/deep-analogue/cym.flac +0 -0
- package/kits/deep-analogue/ht.flac +0 -0
- package/kits/deep-analogue/lt.flac +0 -0
- package/kits/deep-analogue/mt.flac +0 -0
- package/kits/deep-analogue/oh.flac +0 -0
- package/kits/deep-analogue/perc.flac +0 -0
- package/kits/deep-analogue/rim.flac +0 -0
- package/kits/deep-analogue/sd.flac +0 -0
- package/kits/hard-cell/bd.flac +0 -0
- package/kits/hard-cell/ch.flac +0 -0
- package/kits/hard-cell/clap.flac +0 -0
- package/kits/hard-cell/cym.flac +0 -0
- package/kits/hard-cell/ht.flac +0 -0
- package/kits/hard-cell/lt.flac +0 -0
- package/kits/hard-cell/mt.flac +0 -0
- package/kits/hard-cell/oh.flac +0 -0
- package/kits/hard-cell/perc.flac +0 -0
- package/kits/hard-cell/rim.flac +0 -0
- package/kits/hard-cell/sd.flac +0 -0
- package/kits/micro-click/bd.flac +0 -0
- package/kits/micro-click/ch.flac +0 -0
- package/kits/micro-click/clap.flac +0 -0
- package/kits/micro-click/cym.flac +0 -0
- package/kits/micro-click/ht.flac +0 -0
- package/kits/micro-click/lt.flac +0 -0
- package/kits/micro-click/mt.flac +0 -0
- package/kits/micro-click/oh.flac +0 -0
- package/kits/micro-click/perc.flac +0 -0
- package/kits/micro-click/rim.flac +0 -0
- package/kits/micro-click/sd.flac +0 -0
- package/kits/tape-dust/bd.flac +0 -0
- package/kits/tape-dust/ch.flac +0 -0
- package/kits/tape-dust/clap.flac +0 -0
- package/kits/tape-dust/cym.flac +0 -0
- package/kits/tape-dust/ht.flac +0 -0
- package/kits/tape-dust/lt.flac +0 -0
- package/kits/tape-dust/mt.flac +0 -0
- package/kits/tape-dust/oh.flac +0 -0
- package/kits/tape-dust/perc.flac +0 -0
- package/kits/tape-dust/rim.flac +0 -0
- package/kits/tape-dust/sd.flac +0 -0
- package/package.json +1 -1
- package/{worklets-inline-EF3OTQ4D.js → worklets-inline-NWG5PWND.js} +10 -2
- package/{worklets-inline-EF3OTQ4D.js.map → worklets-inline-NWG5PWND.js.map} +2 -2
- package/chunk-N7J25N5J.js.map +0 -7
package/docs/MODULES.md
CHANGED
|
@@ -87,7 +87,7 @@ Categories: Filters · Worklets: adsr-envelope, map-voct-to-freq
|
|
|
87
87
|
|
|
88
88
|
**Auto-Panner** — Stereo auto-panner using LFO-controlled panning. Creates movement and animation in the stereo field.
|
|
89
89
|
|
|
90
|
-
Categories: Effects, Stereo
|
|
90
|
+
Categories: Effects, Stereo · Worklets: waveshaper
|
|
91
91
|
|
|
92
92
|
### Ports
|
|
93
93
|
|
|
@@ -120,12 +120,15 @@ Categories: Distortion · Worklets: bitcrusher
|
|
|
120
120
|
|---|---|---|---|
|
|
121
121
|
| `in` | input | audio | **Audio Input** — Audio signal for lo-fi bit and sample rate reduction. |
|
|
122
122
|
| `out` | output | audio | **Audio Output** — Crunchy, retro bit-crushed audio output. |
|
|
123
|
+
| `modBits` | modulation | modulation | **Bit Depth CV** — Added to the BITS knob, in bits (+1 = one more bit). Sweeps smoothly between depths; the result stays within 1–16. |
|
|
124
|
+
| `modRate` | modulation | modulation | **Sample Rate CV** — Added to the RATE knob (+0.1 = 10% of the original rate). The result stays within 1–100%. |
|
|
125
|
+
| `modMix` | modulation | modulation | **Mix CV** — Added to the MIX knob (+0.1 = 10% wetter). |
|
|
123
126
|
|
|
124
127
|
### Params
|
|
125
128
|
|
|
126
129
|
| Param | Default | Range | Description |
|
|
127
130
|
|---|---|---|---|
|
|
128
|
-
| `bits` | `8` | 1 – 16 | **Bit Depth** — Number of bits for quantization. Lower = crunchier, more lo-fi. Automatable: `params.bits` is a native AudioParam. |
|
|
131
|
+
| `bits` | `8` | 1 – 16 | **Bit Depth** — Number of bits for quantization. Lower = crunchier, more lo-fi. 1 bit = two levels: a hard full-scale square at the input's pitch. Automatable: `params.bits` is a native AudioParam. |
|
|
129
132
|
| `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
133
|
| `mix` | `1` | 0 – 1 | **Dry/Wet Mix** — Balance between clean and crushed signal. Automatable: `params.mix` is a native AudioParam. |
|
|
131
134
|
|
|
@@ -151,7 +154,7 @@ Categories: Time, Effects
|
|
|
151
154
|
| Param | Default | Range | Description |
|
|
152
155
|
|---|---|---|---|
|
|
153
156
|
| `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
|
|
157
|
+
| `depth` | `0.5` | 0 – 1 | **Modulation Depth** — How far each delay line swings around its 5.66 ms centre: ±4 ms at 1. About 0.46 matches a Juno-60's Chorus I/II swing; more = wider detuning. Scaled onto the LFO gain, so it is set-only (no single AudioParam carries it 1:1). `set()` only. |
|
|
155
158
|
| `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
159
|
|
|
157
160
|
## COMB
|
|
@@ -184,27 +187,29 @@ Categories: Filters · Worklets: map-voct-to-period, comb-filter
|
|
|
184
187
|
|
|
185
188
|
`import { Compressor } from '@jpdutoit/squelchy'`
|
|
186
189
|
|
|
187
|
-
**Dynamics Compressor** —
|
|
190
|
+
**Dynamics Compressor** — Feed-forward peak compressor with zero latency: turns loud signals down by RATIO above THRS, with attack and release that mean exactly what they say. Stereo signals get one linked gain, so the image never moves. A KEY input (side-chain) lets another signal do the squeezing.
|
|
188
191
|
|
|
189
|
-
Categories: Dynamics
|
|
192
|
+
Categories: Dynamics · Worklets: compressor
|
|
190
193
|
|
|
191
194
|
### Ports
|
|
192
195
|
|
|
193
196
|
| Slug | Direction | Signal | Description |
|
|
194
197
|
|---|---|---|---|
|
|
195
198
|
| `in` | input | audio | **Audio Input** — Audio signal to compress. |
|
|
199
|
+
| `key` | input | audio | **Key (Side-chain) Input** — What the compressor listens to when KEY is set to EXT, e.g. a kick drum to duck a bass. Ignored on INT. |
|
|
196
200
|
| `out` | output | audio | **Audio Output** — Compressed audio with makeup gain applied. |
|
|
197
201
|
|
|
198
202
|
### Params
|
|
199
203
|
|
|
200
204
|
| Param | Default | Range | Description |
|
|
201
205
|
|---|---|---|---|
|
|
202
|
-
| `threshold` | `-24` | -60 – 0 dB | **Threshold** —
|
|
206
|
+
| `threshold` | `-24` | -60 – 0 dB | **Threshold** — Peak level (dBFS) above which compression kicks in. Lower = more compression. With a soft KNEE it eases in from half the knee width below. Automatable: `params.threshold` is a native AudioParam. |
|
|
203
207
|
| `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.
|
|
205
|
-
| `release` | `0.25` | 0.01 – 1 s (log) | **Release** — How fast compression
|
|
206
|
-
| `knee` | `10` | 0 – 40 dB | **Knee** — Width of the transition zone
|
|
207
|
-
| `makeup` | `0` | 0 – 30 dB | **Makeup Gain** — Boosts the output level to compensate for gain reduction. Up to +30 dB. `
|
|
208
|
+
| `attack` | `0.003` | 0.0001 – 1 s (log) | **Attack** — How fast compression grabs a loud signal: the gain reduction gets 63% of the way in this time (nearly all of it in 3×), however hard you hit it. Automatable: `params.attack` is a native AudioParam. |
|
|
209
|
+
| `release` | `0.25` | 0.01 – 1 s (log) | **Release** — How fast compression lets go once the signal drops: the gain reduction falls 63% of the way back in this time (nearly all of it in 3×). Automatable: `params.release` is a native AudioParam. |
|
|
210
|
+
| `knee` | `10` | 0 – 40 dB | **Knee** — Width of the transition zone centred on the threshold. 0 = hard knee (abrupt), 40 = soft knee (gradual). Automatable: `params.knee` is a native AudioParam. |
|
|
211
|
+
| `makeup` | `0` | 0 – 30 dB | **Makeup Gain** — Boosts the output level to compensate for gain reduction. Up to +30 dB. Automatable: `params.makeup` is a native AudioParam. |
|
|
212
|
+
| `keySource` | `"internal"` | `internal` / `external` | **Key Source** — What the compressor listens to. INT: the signal it is compressing. EXT: whatever is patched into KEY (side-chain), e.g. a kick that ducks a bass or pad. The gain still lands on IN. `set()` only. |
|
|
208
213
|
|
|
209
214
|
## X-FADE
|
|
210
215
|
|
|
@@ -256,7 +261,7 @@ Categories: Time · Worklets: comb-filter
|
|
|
256
261
|
|
|
257
262
|
`import { Dimension } from '@jpdutoit/squelchy'`
|
|
258
263
|
|
|
259
|
-
**Dimension Expander** — Roland Dimension-
|
|
264
|
+
**Dimension Expander** — Roland Dimension D-style stereo widener: the dry signal plus two short antiphase-modulated delay lines, each cross-fed inverted into the opposite channel. Wide and moving in stereo, clean and unwarbled in mono.
|
|
260
265
|
|
|
261
266
|
Categories: Effects
|
|
262
267
|
|
|
@@ -272,8 +277,9 @@ Categories: Effects
|
|
|
272
277
|
|
|
273
278
|
| Param | Default | Range | Description |
|
|
274
279
|
|---|---|---|---|
|
|
280
|
+
| `width` | `1.5` | 0 – 2 | **Stereo Width** — Adjusts stereo image. 0=mono, 1=normal, 2=extra wide. Split across a four-gain matrix, so it is set-only (no single AudioParam carries it). `set()` only. |
|
|
275
281
|
| `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** —
|
|
282
|
+
| `depth` | `0.3` | 0 – 1 | **Modulation Depth** — How far the two BBD-style delay lines sweep (full = 1.65–5.35 ms, in antiphase). The dry signal stays in both channels, so this adds movement and width, not vibrato. Scaled onto the LFO gains, so it is set-only (no single AudioParam carries it 1:1). `set()` only. |
|
|
277
283
|
|
|
278
284
|
## DIST
|
|
279
285
|
|
|
@@ -281,7 +287,7 @@ Categories: Effects
|
|
|
281
287
|
|
|
282
288
|
**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
289
|
|
|
284
|
-
Categories: Distortion
|
|
290
|
+
Categories: Distortion · Worklets: shaper
|
|
285
291
|
|
|
286
292
|
### Ports
|
|
287
293
|
|
|
@@ -405,7 +411,7 @@ Categories: Filters
|
|
|
405
411
|
|
|
406
412
|
**Harmonic Exciter** — Adds high-frequency harmonics and "air" to dull signals. Generates subtle saturation in the treble range for presence and sparkle.
|
|
407
413
|
|
|
408
|
-
Categories: Dynamics
|
|
414
|
+
Categories: Dynamics · Worklets: shaper
|
|
409
415
|
|
|
410
416
|
### Ports
|
|
411
417
|
|
|
@@ -471,7 +477,7 @@ Categories: Filters · Worklets: formant-table
|
|
|
471
477
|
| Param | Default | Range | Description |
|
|
472
478
|
|---|---|---|---|
|
|
473
479
|
| `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. `set()` only. |
|
|
474
|
-
| `resonance` | `6` | 1 – 20 (sqrt) | **Resonance** — Sharpness of the formant peaks
|
|
480
|
+
| `resonance` | `6` | 1 – 20 (sqrt) | **Resonance** — Sharpness of the formant peaks. 6 = the bandwidths of a real voice (F1 ≈ 50–80 Hz wide); every band is 6/RES times that, so 1 is soft and blurred, 20 rings like a talk box. Loudness holds across the range. Automatable: `params.resonance` is a native AudioParam. |
|
|
475
481
|
| `mix` | `1` | 0 – 1 | **Dry/Wet Mix** — Balance between the original signal and the formant-filtered output. 0 = dry, 1 = fully wet. `set()` only. |
|
|
476
482
|
|
|
477
483
|
## SHIFT
|
|
@@ -503,23 +509,25 @@ Categories: Effects · Worklets: freq-shifter
|
|
|
503
509
|
|
|
504
510
|
**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
511
|
|
|
506
|
-
Categories: Dynamics · Worklets:
|
|
512
|
+
Categories: Dynamics · Worklets: gate
|
|
507
513
|
|
|
508
514
|
### Ports
|
|
509
515
|
|
|
510
516
|
| Slug | Direction | Signal | Description |
|
|
511
517
|
|---|---|---|---|
|
|
512
518
|
| `in` | input | audio | **Audio Input** — Audio signal to be gated. |
|
|
519
|
+
| `key` | input | audio | **Key Input** — What opens the gate when KEY is set to EXT, e.g. a clock, a gate or a hi-hat. Ignored on INT. |
|
|
513
520
|
| `out` | output | audio | **Audio Output** — Gated audio - silent when below threshold. |
|
|
514
521
|
|
|
515
522
|
### Params
|
|
516
523
|
|
|
517
524
|
| Param | Default | Range | Description |
|
|
518
525
|
|---|---|---|---|
|
|
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. `
|
|
526
|
+
| `threshold` | `-40` | -60 – 0 dB | **Threshold** — Level below which the gate closes and silences audio. Automatable: `params.threshold` is a native AudioParam. |
|
|
527
|
+
| `range` | `0.8` | 0 – 1 | **Range** — How much the signal is attenuated when gate is closed. 0=full mute, lower=gentler. Automatable: `params.range` is a native AudioParam. |
|
|
521
528
|
| `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
529
|
| `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. |
|
|
530
|
+
| `keySource` | `"internal"` | `internal` / `external` | **Key Source** — What opens the gate. INT: the signal being gated. EXT: whatever is patched into KEY, e.g. a clock or hi-hat that chops a pad into rhythm. `set()` only. |
|
|
523
531
|
|
|
524
532
|
## GLIDE
|
|
525
533
|
|
|
@@ -589,7 +597,7 @@ Categories: Effects
|
|
|
589
597
|
|---|---|---|---|
|
|
590
598
|
| `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
599
|
| `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). `set()` only. |
|
|
592
|
-
| `crossover` | `800` | 200 – 2000 Hz | **Crossover Frequency** — Frequency where signal splits into low and high bands
|
|
600
|
+
| `crossover` | `800` | 200 – 2000 Hz | **Crossover Frequency** — Frequency where signal splits into low and high bands (−6 dB point of a Linkwitz-Riley 2nd-order pair: both bands 12 dB/oct, summing flat). One audio-rate value drives both filters, so modCrossover moves the split, not just one side. Automatable: `params.crossover` is a native AudioParam. |
|
|
593
601
|
|
|
594
602
|
## LADDER
|
|
595
603
|
|
|
@@ -647,9 +655,9 @@ Categories: Modulators · Worklets: waveshaper
|
|
|
647
655
|
|
|
648
656
|
`import { LoFi } from '@jpdutoit/squelchy'`
|
|
649
657
|
|
|
650
|
-
**Lo-Fi Processor** —
|
|
658
|
+
**Lo-Fi Processor** — Vintage degradation: asymmetric tape-style saturation (quiet signals keep their level), a lowpass, vinyl hiss and crackle that never loops, and slow wow. Perfect for worn, dusty textures.
|
|
651
659
|
|
|
652
|
-
Categories: Distortion, Vintage
|
|
660
|
+
Categories: Distortion, Vintage · Worklets: shaper, vinyl-noise
|
|
653
661
|
|
|
654
662
|
### Ports
|
|
655
663
|
|
|
@@ -663,10 +671,10 @@ Categories: Distortion, Vintage
|
|
|
663
671
|
|
|
664
672
|
| Param | Default | Range | Description |
|
|
665
673
|
|---|---|---|---|
|
|
666
|
-
| `drive` | `0.3` | 0 – 1 | **Saturation** —
|
|
674
|
+
| `drive` | `0.3` | 0 – 1 | **Saturation** — How hard the signal hits an asymmetric tape-style curve (−18 dB clean … +24 dB heavy). Quiet signals keep their level; loud peaks round off with warm even harmonics. Set-only (it reshapes the curve). `set()` only. |
|
|
667
675
|
| `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** —
|
|
669
|
-
| `wobble` | `0.1` | 0 – 1 | **Wobble** —
|
|
676
|
+
| `noise` | `0.2` | 0 – 1 | **Vinyl Noise** — Level of the vinyl surface noise: steady hiss (about −44 dBFS at full) plus random dust ticks and pops. Never repeats. Automatable: `params.noise` is a native AudioParam. |
|
|
677
|
+
| `wobble` | `0.1` | 0 – 1 | **Wobble** — Wow like a worn tape or warped record: a slow 0.73 Hz pitch drift, about ±16 cents at full. Adds WOB × 2 ms of average delay; none at 0. Automatable: `params.wobble` is a native AudioParam. |
|
|
670
678
|
|
|
671
679
|
## M/S
|
|
672
680
|
|
|
@@ -689,6 +697,7 @@ Categories: Stereo
|
|
|
689
697
|
|---|---|---|---|
|
|
690
698
|
| `midGain` | `1` | 0 – 2 | **Mid Gain** — Controls the center/mono content of the stereo image. Automatable: `params.midGain` is a native AudioParam. |
|
|
691
699
|
| `sideGain` | `1` | 0 – 2 | **Side Gain** — Controls the stereo edges/differences between left and right. Automatable: `params.sideGain` is a native AudioParam. |
|
|
700
|
+
| `width` | `1` | 0 – 2 | **Stereo Width** — Overall stereo width multiplier applied after side gain. 0=mono, 1=normal, 2=wide. Automatable: `params.width` is a native AudioParam. |
|
|
692
701
|
|
|
693
702
|
## NOISE
|
|
694
703
|
|
|
@@ -791,7 +800,7 @@ Categories: Time · Worklets: ping-pong
|
|
|
791
800
|
|
|
792
801
|
`import { Resonator } from '@jpdutoit/squelchy'`
|
|
793
802
|
|
|
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.
|
|
803
|
+
**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. A strike starts every mode at the same level and the higher ones fade first; the same hit is equally loud on every note, at every STRUCT and DAMP setting.
|
|
795
804
|
|
|
796
805
|
Categories: Filters · Worklets: map-voct-to-freq
|
|
797
806
|
|
|
@@ -809,15 +818,15 @@ Categories: Filters · Worklets: map-voct-to-freq
|
|
|
809
818
|
| Param | Default | Range | Description |
|
|
810
819
|
|---|---|---|---|
|
|
811
820
|
| `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. `set()` only. |
|
|
821
|
+
| `structure` | `0` | 0 – 1 | **Structure** — Harmonic spacing of the resonator partials. Left = standard harmonic series, center = bell-like, right = metallic/inharmonic. Loudness holds across the knob. `set()` only. |
|
|
813
822
|
| `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. `set()` only. |
|
|
814
|
-
| `mix` | `
|
|
823
|
+
| `mix` | `1` | 0 – 1 | **Dry/Wet Mix** — Balance between the input and the ringing modes. Fully wet by default, like a hardware resonator: at 1 you hear only the modes; turn it down to keep the original transient under the ring. Automatable: `params.mix` is a native AudioParam. |
|
|
815
824
|
|
|
816
825
|
## REVERB
|
|
817
826
|
|
|
818
827
|
`import { Reverb } from '@jpdutoit/squelchy'`
|
|
819
828
|
|
|
820
|
-
**Reverb Effect** — Algorithmic
|
|
829
|
+
**Reverb Effect** — Algorithmic FDN reverb: sixteen damped delay lines cross-mixed through a slowly rotating matrix, so long tails stay smooth and never hum at fixed bass pitches. Left and right have their own lines and taps, so a stereo input keeps its image and a mono one gets a wide, decorrelated tail. Decay sets RT60 and updates smoothly, and nothing is re-rendered when you turn a knob.
|
|
821
830
|
|
|
822
831
|
Categories: Time · Worklets: fdn-reverb
|
|
823
832
|
|
|
@@ -888,9 +897,9 @@ Categories: Effects, Vintage
|
|
|
888
897
|
|
|
889
898
|
`import { Saturator } from '@jpdutoit/squelchy'`
|
|
890
899
|
|
|
891
|
-
**Tape Saturator** —
|
|
900
|
+
**Tape Saturator** — Tape-style saturation aligned like a tape machine: quiet signals pass at the same level, loud peaks round off into warm odd harmonics and soft compression. DRIVE moves the knee (tone, not volume), WARMTH adds low-end weight. Subtle glue to heavy crunch.
|
|
892
901
|
|
|
893
|
-
Categories: Distortion
|
|
902
|
+
Categories: Distortion · Worklets: shaper
|
|
894
903
|
|
|
895
904
|
### Ports
|
|
896
905
|
|
|
@@ -903,8 +912,8 @@ Categories: Distortion
|
|
|
903
912
|
|
|
904
913
|
| Param | Default | Range | Description |
|
|
905
914
|
|---|---|---|---|
|
|
906
|
-
| `drive` | `0.5` | 0 – 1 | **Drive** — How hard to
|
|
907
|
-
| `warmth` | `0.5` | 0 – 1 | **Warmth** — Low
|
|
915
|
+
| `drive` | `0.5` | 0 – 1 | **Drive** — How hard the signal hits the tape curve, from −12 dB (clean) to +24 dB (heavy). The output is trimmed back by the same amount, like a tape machine aligned to its operating level: quiet signals pass at unity, loud peaks round off into harmonics and soft compression. DRIVE changes the tone, not the volume. Set-only (it reshapes the curve). `set()` only. |
|
|
916
|
+
| `warmth` | `0.5` | 0 – 1 | **Warmth** — Low-shelf boost below 300 Hz, up to +6 dB, after the saturation. A tone control for low-end weight, not more distortion. `set()` only. |
|
|
908
917
|
| `mix` | `1` | 0 – 1 | **Dry/Wet Mix** — Balance between clean and saturated signal. Automatable: `params.mix` is a native AudioParam. |
|
|
909
918
|
|
|
910
919
|
## SHIMMER
|
|
@@ -935,9 +944,9 @@ Categories: Time · Worklets: pitch-shifter, fdn-reverb
|
|
|
935
944
|
|
|
936
945
|
`import { SoftLimiter } from '@jpdutoit/squelchy'`
|
|
937
946
|
|
|
938
|
-
**Soft Limiter** —
|
|
947
|
+
**Soft Limiter** — Static soft-clip limiter: a smooth curve rounds peaks off toward the ceiling, so the output never exceeds it. No attack or release; it shapes the waveform instantly instead of riding the gain, so pushing it hard adds saturation. Use the ceiling control to set the maximum output level.
|
|
939
948
|
|
|
940
|
-
Categories: Dynamics
|
|
949
|
+
Categories: Dynamics · Worklets: shaper
|
|
941
950
|
|
|
942
951
|
### Ports
|
|
943
952
|
|
|
@@ -999,6 +1008,7 @@ Categories: Stereo
|
|
|
999
1008
|
| Param | Default | Range | Description |
|
|
1000
1009
|
|---|---|---|---|
|
|
1001
1010
|
| `spread` | `0.7` | 0 – 1 | **Spread Amount** — Controls the micro-delay time for Haas widening (0–5ms). More spread = wider perceived stereo image. `set()` only. |
|
|
1011
|
+
| `width` | `1` | 0 – 2 | **Dry/Wet** — Balance between mono (0%) and widened (200%) high frequencies. Automatable: `params.width` is a native AudioParam. |
|
|
1002
1012
|
| `center` | `800` | 200 – 2000 Hz (log) | **Crossover Frequency** — Frequency above which Haas spreading is applied. Lows below this stay centered for mono compatibility. `set()` only. |
|
|
1003
1013
|
|
|
1004
1014
|
## SUB OCT
|
|
@@ -1217,7 +1227,7 @@ Categories: Filters, Effects · Worklets: map-voct-to-freq
|
|
|
1217
1227
|
| `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
1228
|
| `resonance` | `8` | 1 – 20 (log) | **Resonance** — How pronounced and vocal the wah peak sounds. `set()` only. |
|
|
1219
1229
|
| `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
|
|
1230
|
+
| `depth` | `0.6` | 0 – 1 | **Modulation Depth** — How much the frequency sweeps. Full depth = 3 octaves top to bottom (±1.5 octaves around the center). `set()` only. |
|
|
1221
1231
|
|
|
1222
1232
|
## FOLD
|
|
1223
1233
|
|
|
@@ -1225,7 +1235,7 @@ Categories: Filters, Effects · Worklets: map-voct-to-freq
|
|
|
1225
1235
|
|
|
1226
1236
|
**Wavefolder** — West Coast synthesis classic. Folds waveform peaks back on themselves, adding rich harmonics. Essential for complex timbres from simple waves.
|
|
1227
1237
|
|
|
1228
|
-
Categories: Distortion
|
|
1238
|
+
Categories: Distortion · Worklets: shaper
|
|
1229
1239
|
|
|
1230
1240
|
### Ports
|
|
1231
1241
|
|