@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.
Files changed (68) hide show
  1. package/README.md +2 -0
  2. package/{chunk-N7J25N5J.js → chunk-PJDNZ52Q.js} +21 -5
  3. package/chunk-PJDNZ52Q.js.map +7 -0
  4. package/docs/GUIDE.md +27 -4
  5. package/docs/MODULES.md +46 -36
  6. package/docs/modules.json +113 -31
  7. package/index.d.ts +75 -25
  8. package/index.js +526 -350
  9. package/index.js.map +3 -3
  10. package/kits/compu-78/bd.flac +0 -0
  11. package/kits/compu-78/ch.flac +0 -0
  12. package/kits/compu-78/clap.flac +0 -0
  13. package/kits/compu-78/cym.flac +0 -0
  14. package/kits/compu-78/ht.flac +0 -0
  15. package/kits/compu-78/lt.flac +0 -0
  16. package/kits/compu-78/mt.flac +0 -0
  17. package/kits/compu-78/oh.flac +0 -0
  18. package/kits/compu-78/perc.flac +0 -0
  19. package/kits/compu-78/rim.flac +0 -0
  20. package/kits/compu-78/sd.flac +0 -0
  21. package/kits/deep-analogue/bd.flac +0 -0
  22. package/kits/deep-analogue/ch.flac +0 -0
  23. package/kits/deep-analogue/clap.flac +0 -0
  24. package/kits/deep-analogue/cym.flac +0 -0
  25. package/kits/deep-analogue/ht.flac +0 -0
  26. package/kits/deep-analogue/lt.flac +0 -0
  27. package/kits/deep-analogue/mt.flac +0 -0
  28. package/kits/deep-analogue/oh.flac +0 -0
  29. package/kits/deep-analogue/perc.flac +0 -0
  30. package/kits/deep-analogue/rim.flac +0 -0
  31. package/kits/deep-analogue/sd.flac +0 -0
  32. package/kits/hard-cell/bd.flac +0 -0
  33. package/kits/hard-cell/ch.flac +0 -0
  34. package/kits/hard-cell/clap.flac +0 -0
  35. package/kits/hard-cell/cym.flac +0 -0
  36. package/kits/hard-cell/ht.flac +0 -0
  37. package/kits/hard-cell/lt.flac +0 -0
  38. package/kits/hard-cell/mt.flac +0 -0
  39. package/kits/hard-cell/oh.flac +0 -0
  40. package/kits/hard-cell/perc.flac +0 -0
  41. package/kits/hard-cell/rim.flac +0 -0
  42. package/kits/hard-cell/sd.flac +0 -0
  43. package/kits/micro-click/bd.flac +0 -0
  44. package/kits/micro-click/ch.flac +0 -0
  45. package/kits/micro-click/clap.flac +0 -0
  46. package/kits/micro-click/cym.flac +0 -0
  47. package/kits/micro-click/ht.flac +0 -0
  48. package/kits/micro-click/lt.flac +0 -0
  49. package/kits/micro-click/mt.flac +0 -0
  50. package/kits/micro-click/oh.flac +0 -0
  51. package/kits/micro-click/perc.flac +0 -0
  52. package/kits/micro-click/rim.flac +0 -0
  53. package/kits/micro-click/sd.flac +0 -0
  54. package/kits/tape-dust/bd.flac +0 -0
  55. package/kits/tape-dust/ch.flac +0 -0
  56. package/kits/tape-dust/clap.flac +0 -0
  57. package/kits/tape-dust/cym.flac +0 -0
  58. package/kits/tape-dust/ht.flac +0 -0
  59. package/kits/tape-dust/lt.flac +0 -0
  60. package/kits/tape-dust/mt.flac +0 -0
  61. package/kits/tape-dust/oh.flac +0 -0
  62. package/kits/tape-dust/perc.flac +0 -0
  63. package/kits/tape-dust/rim.flac +0 -0
  64. package/kits/tape-dust/sd.flac +0 -0
  65. package/package.json +1 -1
  66. package/{worklets-inline-EF3OTQ4D.js → worklets-inline-NWG5PWND.js} +10 -2
  67. package/{worklets-inline-EF3OTQ4D.js.map → worklets-inline-NWG5PWND.js.map} +2 -2
  68. package/chunk-N7J25N5J.js.map +0 -7
package/index.d.ts CHANGED
@@ -270,17 +270,29 @@ export declare const Hat: {
270
270
  create(ctx: BaseAudioContext): VoiceInstance;
271
271
  };
272
272
  /**
273
- * Gate + pitch CV for driving patchable modules (Envelope trig, V/Oct inputs).
274
- * `gate` goes to the hit's velocity at `time`, back to 0 after `duration`;
275
- * `pitch` holds the note (absolute key position, 69 = A4), typed as the
276
- * library's pitch signal like every other V/OCT output. Both are
277
- * ConstantSourceNodes.
273
+ * Gate, pitch and velocity CV for driving patchable modules, like a
274
+ * MIDI-to-CV interface: `gate` into an Envelope's trigger, `pitch` into V/Oct
275
+ * inputs, `velocity` into whatever should follow how hard the note was hit
276
+ * (a VCA's gain, a filter's cutoff CV, an envelope depth).
277
+ *
278
+ * - `gate` is a fixed-height gate, like Eurorack: 1 while a note is held, 0
279
+ * otherwise, whatever the velocity. (Gate inputs open above 0.5, so a gate
280
+ * carrying velocity would silence every soft note.)
281
+ * - `pitch` holds the note (absolute key position, 69 = A4), typed as the
282
+ * library's pitch signal like every other V/OCT output.
283
+ * - `velocity` is the hit's velocity 0..1, set at note-on and held until the
284
+ * next note, so the release tail keeps the level it was played at. 0 until
285
+ * the first note.
286
+ *
287
+ * All three are ConstantSourceNodes.
278
288
  */
279
289
  export interface NoteCvInstance {
280
- /** Gate CV: the hit's velocity while a note is held, 0 otherwise. */
290
+ /** Gate CV: 1 while a note is held, 0 otherwise — every hit opens it, whatever its velocity. */
281
291
  gate: ConstantSourceNode;
282
292
  /** Pitch CV: the current note (69 = A4), held between notes. */
283
293
  pitch: ConstantSourceNode & Signal<Note>;
294
+ /** Velocity CV: the last note's velocity (0..1), held until the next note. */
295
+ velocity: ConstantSourceNode;
284
296
  trigger(time: Seconds, hit?: Partial<Hit<Note>>): void;
285
297
  dispose(): void;
286
298
  }
@@ -414,7 +426,7 @@ export type AutoPanProps = {
414
426
  };
415
427
  export declare const AutoPan: LibModule<AutoPanParams, AutoPanInputs, AutoPanOutputs, AutoPanProps>;
416
428
  export interface BitcrusherParams {
417
- /** Bit Depth. Number of bits for quantization. Lower = crunchier, more lo-fi. Range 1–16. Default 8. */
429
+ /** 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. Range 1–16. Default 8. */
418
430
  bits?: number;
419
431
  /** Sample Rate. Sample rate reduction factor. 1 = original, lower = more aliased and crunchy. Creates the classic "staircase" sample-and-hold effect. Range 0.01–1 (log). Default 0.5. */
420
432
  rate?: number;
@@ -423,6 +435,9 @@ export interface BitcrusherParams {
423
435
  }
424
436
  export type BitcrusherInputs = {
425
437
  "in": AudioNode;
438
+ "modBits": AudioParam;
439
+ "modRate": AudioParam;
440
+ "modMix": AudioParam;
426
441
  };
427
442
  export type BitcrusherOutputs = {
428
443
  "out": AudioNode;
@@ -431,6 +446,9 @@ export type BitcrusherOutputs = {
431
446
  export type BitcrusherProps = {
432
447
  "in": AudioNode;
433
448
  "out": AudioNode;
449
+ "modBits": AudioParam;
450
+ "modRate": AudioParam;
451
+ "modMix": AudioParam;
434
452
  readonly params: {
435
453
  /** Bit Depth. Native AudioParam — value is the param value 1:1. */
436
454
  "bits": AudioParam;
@@ -444,7 +462,7 @@ export declare const Bitcrusher: LibModule<BitcrusherParams, BitcrusherInputs, B
444
462
  export interface ChorusParams {
445
463
  /** Rate. Chorus sweep LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Range 0.1–5 Hz. Default 1.5. */
446
464
  rate?: Hz;
447
- /** 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). Range 0–1. Default 0.5. */
465
+ /** 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). Range 0–1. Default 0.5. */
448
466
  depth?: number;
449
467
  /** 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). Range 0–1. Default 0.5. */
450
468
  mix?: number;
@@ -506,21 +524,24 @@ export type CombFilterProps = {
506
524
  };
507
525
  export declare const CombFilter: LibModule<CombFilterParams, CombFilterInputs, CombFilterOutputs, CombFilterProps>;
508
526
  export interface CompressorParams {
509
- /** Threshold. Level above which compression kicks in. Lower = more compression. Range -60–0 dB. Default -24. */
527
+ /** 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. Range -60–0 dB. Default -24. */
510
528
  threshold?: Decibels;
511
529
  /** Ratio. How much to reduce signal above threshold. 4:1 = every 4dB over becomes 1dB. Range 1–20 (log). Default 4. */
512
530
  ratio?: number;
513
- /** Attack. How fast compression responds to loud signals. Range 0.001–1 s (log). Default 0.003. */
531
+ /** 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. Range 0.0001–1 s (log). Default 0.003. */
514
532
  attack?: Seconds;
515
- /** Release. How fast compression releases after signal drops. Range 0.01–1 s (log). Default 0.25. */
533
+ /** 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×). Range 0.01–1 s (log). Default 0.25. */
516
534
  release?: Seconds;
517
- /** Knee. Width of the transition zone around the threshold. 0 = hard knee (abrupt), 40 = soft knee (gradual). Range 0–40 dB. Default 10. */
535
+ /** Knee. Width of the transition zone centred on the threshold. 0 = hard knee (abrupt), 40 = soft knee (gradual). Range 0–40 dB. Default 10. */
518
536
  knee?: Decibels;
519
537
  /** Makeup Gain. Boosts the output level to compensate for gain reduction. Up to +30 dB. Range 0–30 dB. Default 0. */
520
538
  makeup?: Decibels;
539
+ /** 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. Default "internal". */
540
+ keySource?: "internal" | "external";
521
541
  }
522
542
  export type CompressorInputs = {
523
543
  "in": AudioNode;
544
+ "key": AudioNode;
524
545
  };
525
546
  export type CompressorOutputs = {
526
547
  "out": AudioNode;
@@ -528,6 +549,7 @@ export type CompressorOutputs = {
528
549
  /** Port properties on the instance: slug → native connect target (same as input()/output()). */
529
550
  export type CompressorProps = {
530
551
  "in": AudioNode;
552
+ "key": AudioNode;
531
553
  "out": AudioNode;
532
554
  readonly params: {
533
555
  /** Threshold. Native AudioParam — value is dB 1:1. */
@@ -540,6 +562,8 @@ export type CompressorProps = {
540
562
  "release": AudioParam;
541
563
  /** Knee. Native AudioParam — value is dB 1:1. */
542
564
  "knee": AudioParam;
565
+ /** Makeup Gain. Native AudioParam — value is dB 1:1. */
566
+ "makeup": AudioParam;
543
567
  };
544
568
  };
545
569
  export declare const Compressor: LibModule<CompressorParams, CompressorInputs, CompressorOutputs, CompressorProps>;
@@ -596,9 +620,11 @@ export type DelayProps = {
596
620
  };
597
621
  export declare const Delay: LibModule<DelayParams, DelayInputs, DelayOutputs, DelayProps>;
598
622
  export interface DimensionParams {
623
+ /** 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). Range 0–2. Default 1.5. */
624
+ width?: number;
599
625
  /** Rate. Widening LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Range 0.1–5 Hz. Default 0.5. */
600
626
  rate?: Hz;
601
- /** 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). Range 0–1. Default 0.3. */
627
+ /** 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). Range 0–1. Default 0.3. */
602
628
  depth?: number;
603
629
  }
604
630
  export type DimensionInputs = {
@@ -846,7 +872,7 @@ export declare const Flanger: LibModule<FlangerParams, FlangerInputs, FlangerOut
846
872
  export interface FormantParams {
847
873
  /** 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. Range 0–5. Default 0. */
848
874
  morph?: number;
849
- /** Resonance. Sharpness of the formant peaks, scaled per band. Higher values sound more pronounced and vocal. Range 1–20 (sqrt). Default 6. */
875
+ /** 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. Range 1–20 (sqrt). Default 6. */
850
876
  resonance?: number;
851
877
  /** Dry/Wet Mix. Balance between the original signal and the formant-filtered output. 0 = dry, 1 = fully wet. Range 0–1. Default 1. */
852
878
  mix?: number;
@@ -863,7 +889,10 @@ export type FormantProps = {
863
889
  "in": AudioNode;
864
890
  "out": AudioNode;
865
891
  "modVowel": AudioNode;
866
- readonly params: Record<never, never>;
892
+ readonly params: {
893
+ /** Resonance. Native AudioParam — value is the param value 1:1. */
894
+ "resonance": AudioParam;
895
+ };
867
896
  };
868
897
  export declare const Formant: LibModule<FormantParams, FormantInputs, FormantOutputs, FormantProps>;
869
898
  export interface FrequencyShifterParams {
@@ -901,9 +930,12 @@ export interface GateParams {
901
930
  attack?: Seconds;
902
931
  /** Release. How fast the gate closes when signal falls below threshold. Range 0.01–0.5 s (log). Default 0.1. */
903
932
  release?: Seconds;
933
+ /** 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. Default "internal". */
934
+ keySource?: "internal" | "external";
904
935
  }
905
936
  export type GateInputs = {
906
937
  "in": AudioNode;
938
+ "key": AudioNode;
907
939
  };
908
940
  export type GateOutputs = {
909
941
  "out": AudioNode;
@@ -911,8 +943,13 @@ export type GateOutputs = {
911
943
  /** Port properties on the instance: slug → native connect target (same as input()/output()). */
912
944
  export type GateProps = {
913
945
  "in": AudioNode;
946
+ "key": AudioNode;
914
947
  "out": AudioNode;
915
948
  readonly params: {
949
+ /** Threshold. Native AudioParam — value is dB 1:1. */
950
+ "threshold": AudioParam;
951
+ /** Range. Native AudioParam — value is the param value 1:1. */
952
+ "range": AudioParam;
916
953
  /** Attack. Native AudioParam — value is s 1:1. */
917
954
  "attack": AudioParam;
918
955
  /** Release. Native AudioParam — value is s 1:1. */
@@ -971,7 +1008,7 @@ export interface HarmonicTremoloParams {
971
1008
  rate?: Hz;
972
1009
  /** 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). Range 0–1. Default 0.7. */
973
1010
  depth?: number;
974
- /** 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. Range 200–2000 Hz. Default 800. */
1011
+ /** 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. Range 200–2000 Hz. Default 800. */
975
1012
  crossover?: Hz;
976
1013
  }
977
1014
  export type HarmonicTremoloInputs = {
@@ -1065,13 +1102,13 @@ export type LfoProps = {
1065
1102
  };
1066
1103
  export declare const Lfo: LibModule<LfoParams, LfoInputs, LfoOutputs, LfoProps>;
1067
1104
  export interface LoFiParams {
1068
- /** Saturation. Amount of warm tape-like saturation and compression. Rebuilds the waveshaper curve, so it is set-only (no single AudioParam carries it). Range 0–1. Default 0.3. */
1105
+ /** 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). Range 0–1. Default 0.3. */
1069
1106
  drive?: number;
1070
1107
  /** Cutoff. Lowpass filter frequency. Lower = more muffled, vintage sound. Range 500–8000 Hz. Default 4000. */
1071
1108
  cutoff?: Hz;
1072
- /** 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). Range 0–1. Default 0.2. */
1109
+ /** Vinyl Noise. Level of the vinyl surface noise: steady hiss (about −44 dBFS at full) plus random dust ticks and pops. Never repeats. Range 0–1. Default 0.2. */
1073
1110
  noise?: number;
1074
- /** 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). Range 0–1. Default 0.1. */
1111
+ /** 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. Range 0–1. Default 0.1. */
1075
1112
  wobble?: number;
1076
1113
  }
1077
1114
  export type LoFiInputs = {
@@ -1089,6 +1126,10 @@ export type LoFiProps = {
1089
1126
  readonly params: {
1090
1127
  /** Cutoff. Native AudioParam — value is Hz 1:1. */
1091
1128
  "cutoff": AudioParam;
1129
+ /** Vinyl Noise. Native AudioParam — value is the param value 1:1. */
1130
+ "noise": AudioParam;
1131
+ /** Wobble. Native AudioParam — value is the param value 1:1. */
1132
+ "wobble": AudioParam;
1092
1133
  };
1093
1134
  };
1094
1135
  export declare const LoFi: LibModule<LoFiParams, LoFiInputs, LoFiOutputs, LoFiProps>;
@@ -1097,6 +1138,8 @@ export interface MidSideParams {
1097
1138
  midGain?: number;
1098
1139
  /** Side Gain. Controls the stereo edges/differences between left and right. Range 0–2. Default 1. */
1099
1140
  sideGain?: number;
1141
+ /** Stereo Width. Overall stereo width multiplier applied after side gain. 0=mono, 1=normal, 2=wide. Range 0–2. Default 1. */
1142
+ width?: number;
1100
1143
  }
1101
1144
  export type MidSideInputs = {
1102
1145
  "in": AudioNode;
@@ -1113,6 +1156,8 @@ export type MidSideProps = {
1113
1156
  "midGain": AudioParam;
1114
1157
  /** Side Gain. Native AudioParam — value is the param value 1:1. */
1115
1158
  "sideGain": AudioParam;
1159
+ /** Stereo Width. Native AudioParam — value is the param value 1:1. */
1160
+ "width": AudioParam;
1116
1161
  };
1117
1162
  };
1118
1163
  export declare const MidSide: LibModule<MidSideParams, MidSideInputs, MidSideOutputs, MidSideProps>;
@@ -1239,11 +1284,11 @@ export declare const PingPong: LibModule<PingPongParams, PingPongInputs, PingPon
1239
1284
  export interface ResonatorParams {
1240
1285
  /** 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. Range -48–108 semitones. Default 57. */
1241
1286
  offset?: Semitones;
1242
- /** Structure. Harmonic spacing of the resonator partials. Left = standard harmonic series, center = bell-like, right = metallic/inharmonic. Range 0–1. Default 0. */
1287
+ /** Structure. Harmonic spacing of the resonator partials. Left = standard harmonic series, center = bell-like, right = metallic/inharmonic. Loudness holds across the knob. Range 0–1. Default 0. */
1243
1288
  structure?: number;
1244
1289
  /** 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. Range 0–1. Default 0.5. */
1245
1290
  damping?: number;
1246
- /** Dry/Wet Mix. Balance between original and resonated signal. Range 0–1. Default 0.5. */
1291
+ /** 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. Range 0–1. Default 1. */
1247
1292
  mix?: number;
1248
1293
  }
1249
1294
  export type ResonatorInputs = {
@@ -1347,9 +1392,9 @@ export type RotaryProps = {
1347
1392
  };
1348
1393
  export declare const Rotary: LibModule<RotaryParams, RotaryInputs, RotaryOutputs, RotaryProps>;
1349
1394
  export interface SaturatorParams {
1350
- /** Drive. How hard to push into saturation. Adds harmonics and soft compression. Range 0–1. Default 0.5. */
1395
+ /** 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). Range 0–1. Default 0.5. */
1351
1396
  drive?: number;
1352
- /** Warmth. Low frequency emphasis for a thicker, analog-like tone. Range 0–1. Default 0.5. */
1397
+ /** Warmth. Low-shelf boost below 300 Hz, up to +6 dB, after the saturation. A tone control for low-end weight, not more distortion. Range 0–1. Default 0.5. */
1353
1398
  warmth?: number;
1354
1399
  /** Dry/Wet Mix. Balance between clean and saturated signal. Range 0–1. Default 1. */
1355
1400
  mix?: number;
@@ -1456,6 +1501,8 @@ export declare const SpringReverb: LibModule<SpringReverbParams, SpringReverbInp
1456
1501
  export interface StereoSpreadParams {
1457
1502
  /** Spread Amount. Controls the micro-delay time for Haas widening (0–5ms). More spread = wider perceived stereo image. Range 0–1. Default 0.7. */
1458
1503
  spread?: number;
1504
+ /** Dry/Wet. Balance between mono (0%) and widened (200%) high frequencies. Range 0–2. Default 1. */
1505
+ width?: number;
1459
1506
  /** Crossover Frequency. Frequency above which Haas spreading is applied. Lows below this stay centered for mono compatibility. Range 200–2000 Hz (log). Default 800. */
1460
1507
  center?: Hz;
1461
1508
  }
@@ -1469,7 +1516,10 @@ export type StereoSpreadOutputs = {
1469
1516
  export type StereoSpreadProps = {
1470
1517
  "in": AudioNode;
1471
1518
  "out": AudioNode;
1472
- readonly params: Record<never, never>;
1519
+ readonly params: {
1520
+ /** Dry/Wet. Native AudioParam — value is the param value 1:1. */
1521
+ "width": AudioParam;
1522
+ };
1473
1523
  };
1474
1524
  export declare const StereoSpread: LibModule<StereoSpreadParams, StereoSpreadInputs, StereoSpreadOutputs, StereoSpreadProps>;
1475
1525
  export interface SubharmonicParams {
@@ -1710,7 +1760,7 @@ export interface WahParams {
1710
1760
  resonance?: number;
1711
1761
  /** Auto-Wah Rate. Speed of the automatic wah sweep in Hz. Range 0.1–10 Hz (log). Default 1. */
1712
1762
  rate?: Hz;
1713
- /** Modulation Depth. How much the frequency sweeps. Full depth ≈ 3 octaves. Range 0–1. Default 0.6. */
1763
+ /** Modulation Depth. How much the frequency sweeps. Full depth = 3 octaves top to bottom (±1.5 octaves around the center). Range 0–1. Default 0.6. */
1714
1764
  depth?: number;
1715
1765
  }
1716
1766
  export type WahInputs = {