@jpdutoit/squelchy 0.0.1 → 0.0.3

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 (154) hide show
  1. package/README.md +9 -7
  2. package/{chunk-NDUSYSHF.js → chunk-MEZE4P3U.js} +5 -5
  3. package/chunk-MEZE4P3U.js.map +7 -0
  4. package/docs/GUIDE.md +420 -0
  5. package/docs/MODULES.md +62 -62
  6. package/docs/modules.json +3332 -0
  7. package/index.d.ts +24 -251
  8. package/index.js +68 -260
  9. package/index.js.map +4 -4
  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/compu-78.d.ts +7 -0
  22. package/kits/compu-78.js +22 -0
  23. package/kits/deep-analogue/bd.flac +0 -0
  24. package/kits/deep-analogue/ch.flac +0 -0
  25. package/kits/deep-analogue/clap.flac +0 -0
  26. package/kits/deep-analogue/cym.flac +0 -0
  27. package/kits/deep-analogue/ht.flac +0 -0
  28. package/kits/deep-analogue/lt.flac +0 -0
  29. package/kits/deep-analogue/mt.flac +0 -0
  30. package/kits/deep-analogue/oh.flac +0 -0
  31. package/kits/deep-analogue/perc.flac +0 -0
  32. package/kits/deep-analogue/rim.flac +0 -0
  33. package/kits/deep-analogue/sd.flac +0 -0
  34. package/kits/deep-analogue.d.ts +7 -0
  35. package/kits/deep-analogue.js +22 -0
  36. package/kits/dr5-studio/bd.flac +0 -0
  37. package/kits/dr5-studio/ch.flac +0 -0
  38. package/kits/dr5-studio/clap.flac +0 -0
  39. package/kits/dr5-studio/cym.flac +0 -0
  40. package/kits/dr5-studio/ht.flac +0 -0
  41. package/kits/dr5-studio/lt.flac +0 -0
  42. package/kits/dr5-studio/mt.flac +0 -0
  43. package/kits/dr5-studio/oh.flac +0 -0
  44. package/kits/dr5-studio/perc.flac +0 -0
  45. package/kits/dr5-studio/rim.flac +0 -0
  46. package/kits/dr5-studio/sd.flac +0 -0
  47. package/kits/dr5-studio.d.ts +7 -0
  48. package/kits/dr5-studio.js +22 -0
  49. package/kits/hard-cell/bd.flac +0 -0
  50. package/kits/hard-cell/ch.flac +0 -0
  51. package/kits/hard-cell/clap.flac +0 -0
  52. package/kits/hard-cell/cym.flac +0 -0
  53. package/kits/hard-cell/ht.flac +0 -0
  54. package/kits/hard-cell/lt.flac +0 -0
  55. package/kits/hard-cell/mt.flac +0 -0
  56. package/kits/hard-cell/oh.flac +0 -0
  57. package/kits/hard-cell/perc.flac +0 -0
  58. package/kits/hard-cell/rim.flac +0 -0
  59. package/kits/hard-cell/sd.flac +0 -0
  60. package/kits/hard-cell.d.ts +7 -0
  61. package/kits/hard-cell.js +22 -0
  62. package/kits/micro-click/bd.flac +0 -0
  63. package/kits/micro-click/ch.flac +0 -0
  64. package/kits/micro-click/clap.flac +0 -0
  65. package/kits/micro-click/cym.flac +0 -0
  66. package/kits/micro-click/ht.flac +0 -0
  67. package/kits/micro-click/lt.flac +0 -0
  68. package/kits/micro-click/mt.flac +0 -0
  69. package/kits/micro-click/oh.flac +0 -0
  70. package/kits/micro-click/perc.flac +0 -0
  71. package/kits/micro-click/rim.flac +0 -0
  72. package/kits/micro-click/sd.flac +0 -0
  73. package/kits/micro-click.d.ts +7 -0
  74. package/kits/micro-click.js +22 -0
  75. package/kits/roland-808/bd.flac +0 -0
  76. package/kits/roland-808/ch.flac +0 -0
  77. package/kits/roland-808/clap.flac +0 -0
  78. package/kits/roland-808/cym.flac +0 -0
  79. package/kits/roland-808/ht.flac +0 -0
  80. package/kits/roland-808/lt.flac +0 -0
  81. package/kits/roland-808/mt.flac +0 -0
  82. package/kits/roland-808/oh.flac +0 -0
  83. package/kits/roland-808/perc.flac +0 -0
  84. package/kits/roland-808/rim.flac +0 -0
  85. package/kits/roland-808/sd.flac +0 -0
  86. package/kits/roland-808.d.ts +7 -0
  87. package/kits/roland-808.js +22 -0
  88. package/kits/rx5-fm/bd.flac +0 -0
  89. package/kits/rx5-fm/ch.flac +0 -0
  90. package/kits/rx5-fm/clap.flac +0 -0
  91. package/kits/rx5-fm/cym.flac +0 -0
  92. package/kits/rx5-fm/ht.flac +0 -0
  93. package/kits/rx5-fm/lt.flac +0 -0
  94. package/kits/rx5-fm/mt.flac +0 -0
  95. package/kits/rx5-fm/oh.flac +0 -0
  96. package/kits/rx5-fm/perc.flac +0 -0
  97. package/kits/rx5-fm/rim.flac +0 -0
  98. package/kits/rx5-fm/sd.flac +0 -0
  99. package/kits/rx5-fm.d.ts +7 -0
  100. package/kits/rx5-fm.js +22 -0
  101. package/kits/tape-dust/bd.flac +0 -0
  102. package/kits/tape-dust/ch.flac +0 -0
  103. package/kits/tape-dust/clap.flac +0 -0
  104. package/kits/tape-dust/cym.flac +0 -0
  105. package/kits/tape-dust/ht.flac +0 -0
  106. package/kits/tape-dust/lt.flac +0 -0
  107. package/kits/tape-dust/mt.flac +0 -0
  108. package/kits/tape-dust/oh.flac +0 -0
  109. package/kits/tape-dust/perc.flac +0 -0
  110. package/kits/tape-dust/rim.flac +0 -0
  111. package/kits/tape-dust/sd.flac +0 -0
  112. package/kits/tape-dust.d.ts +7 -0
  113. package/kits/tape-dust.js +22 -0
  114. package/kits/tr-606/bd.flac +0 -0
  115. package/kits/tr-606/ch.flac +0 -0
  116. package/kits/tr-606/cym.flac +0 -0
  117. package/kits/tr-606/ht.flac +0 -0
  118. package/kits/tr-606/lt.flac +0 -0
  119. package/kits/tr-606/mt.flac +0 -0
  120. package/kits/tr-606/oh.flac +0 -0
  121. package/kits/tr-606/sd.flac +0 -0
  122. package/kits/tr-606.d.ts +7 -0
  123. package/kits/tr-606.js +19 -0
  124. package/kits/tr-707/bd.flac +0 -0
  125. package/kits/tr-707/ch.flac +0 -0
  126. package/kits/tr-707/clap.flac +0 -0
  127. package/kits/tr-707/cym.flac +0 -0
  128. package/kits/tr-707/ht.flac +0 -0
  129. package/kits/tr-707/lt.flac +0 -0
  130. package/kits/tr-707/mt.flac +0 -0
  131. package/kits/tr-707/oh.flac +0 -0
  132. package/kits/tr-707/perc.flac +0 -0
  133. package/kits/tr-707/rim.flac +0 -0
  134. package/kits/tr-707/sd.flac +0 -0
  135. package/kits/tr-707.d.ts +7 -0
  136. package/kits/tr-707.js +22 -0
  137. package/kits/tr-909/bd.flac +0 -0
  138. package/kits/tr-909/ch.flac +0 -0
  139. package/kits/tr-909/clap.flac +0 -0
  140. package/kits/tr-909/cym.flac +0 -0
  141. package/kits/tr-909/ht.flac +0 -0
  142. package/kits/tr-909/lt.flac +0 -0
  143. package/kits/tr-909/mt.flac +0 -0
  144. package/kits/tr-909/oh.flac +0 -0
  145. package/kits/tr-909/perc.flac +0 -0
  146. package/kits/tr-909/rim.flac +0 -0
  147. package/kits/tr-909/sd.flac +0 -0
  148. package/kits/tr-909.d.ts +7 -0
  149. package/kits/tr-909.js +22 -0
  150. package/meta.json +16 -16
  151. package/package.json +7 -1
  152. package/{worklets-inline-MUVFLGPY.js → worklets-inline-DFWINMCS.js} +2 -2
  153. package/chunk-NDUSYSHF.js.map +0 -7
  154. /package/{worklets-inline-MUVFLGPY.js.map → worklets-inline-DFWINMCS.js.map} +0 -0
package/index.d.ts CHANGED
@@ -244,16 +244,21 @@ export declare const Hat: {
244
244
  };
245
245
  /**
246
246
  * Gate + pitch CV for driving patchable modules (Envelope trig, V/Oct inputs).
247
- * `gate` goes 1 at `time`, back to 0 after `duration`; `pitch` holds the midi
248
- * value (semitones = the project's V/Oct unit). Both are ConstantSourceNodes.
247
+ * `gate` goes to the hit's velocity at `time`, back to 0 after `duration`;
248
+ * `pitch` holds the note (absolute key position, 69 = A4), typed as the
249
+ * library's pitch signal like every other V/OCT output. Both are
250
+ * ConstantSourceNodes.
249
251
  */
252
+ export interface NoteCvInstance {
253
+ /** Gate CV: the hit's velocity while a note is held, 0 otherwise. */
254
+ gate: ConstantSourceNode;
255
+ /** Pitch CV: the current note (69 = A4), held between notes. */
256
+ pitch: ConstantSourceNode & Signal<Note>;
257
+ trigger(time: Seconds, hit?: Partial<Hit<Note>>): void;
258
+ dispose(): void;
259
+ }
250
260
  export declare const NoteCv: {
251
- create(ctx: BaseAudioContext): {
252
- gate: ConstantSourceNode;
253
- pitch: ConstantSourceNode;
254
- trigger(time: Seconds, h?: Partial<Hit<Note>>): void;
255
- dispose(): void;
256
- };
261
+ create(ctx: BaseAudioContext): NoteCvInstance;
257
262
  };
258
263
  export declare function pulse(target: AudioNode, when?: number): void;
259
264
  /** Canonical percussion voice keys shared by every sample set and by any
@@ -276,8 +281,6 @@ export declare const VOICE_KEYS: readonly [
276
281
  "perc"
277
282
  ];
278
283
  export type VoiceKey = (typeof VOICE_KEYS)[number];
279
- /** Where the kit audio is hosted. Override with `loadSampleSet(..., { baseUrl })`. */
280
- export declare const DEFAULT_SAMPLE_BASE_URL = "https://squelchy.studio";
281
284
  export interface SampleSetInfo {
282
285
  name: string;
283
286
  blurb: string;
@@ -285,7 +288,7 @@ export interface SampleSetInfo {
285
288
  credit: string;
286
289
  license: string;
287
290
  licenseUrl: string;
288
- /** Root-relative sample path per voice; resolved against baseUrl on load. */
291
+ /** Audio URL per voice, fetched as-is by `loadSampleSet`. */
289
292
  voices: Partial<Record<VoiceKey, string>>;
290
293
  }
291
294
  export interface LoadedSampleSet {
@@ -296,244 +299,14 @@ export interface LoadedSampleSet {
296
299
  }
297
300
  /** Fetch + decode every voice of a kit in parallel. */
298
301
  export declare function loadSampleSet(ctx: BaseAudioContext, set: SampleSetInfo, opts?: {
299
- baseUrl?: string;
300
302
  fetch?: typeof fetch;
301
303
  }): Promise<LoadedSampleSet>;
302
- /** A one-sample voice. velocity 0..1 scales level; `value` (semitones) repitches. */
304
+ /** A one-sample voice. velocity 0..1 scales level; a number `value`
305
+ * repitches in semitones, anything else (e.g. `true` from steps()) plays it
306
+ * unshifted. */
303
307
  export declare const SampleVoice: {
304
- create(ctx: BaseAudioContext, kit: LoadedSampleSet, key: VoiceKey): VoiceInstance<number>;
305
- };
306
- export declare const SampleSets: {
307
- readonly "roland-808": {
308
- readonly name: "Roland TR-808";
309
- readonly blurb: "The original machine, sampled from hardware. Deep sub kick, ticking hats.";
310
- readonly family: "Machines";
311
- readonly credit: "Michael Fischer / Technopolis TR-808 sample set, released to the public domain";
312
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
313
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
314
- readonly voices: {
315
- readonly bd: "/__l5e/assets-v1/c4b2fc55-dcf1-4248-a7fb-2cd3653a659b/roland-808-bd.flac";
316
- readonly ch: "/__l5e/assets-v1/c1ec3b3d-571f-46a6-9d05-12b2fe5f6fc5/roland-808-ch.flac";
317
- readonly clap: "/__l5e/assets-v1/8bd15e4b-96b7-46b6-b26a-35283c816f1e/roland-808-clap.flac";
318
- readonly cym: "/__l5e/assets-v1/033f0719-913a-4a7a-998e-92a7319d806f/roland-808-cym.flac";
319
- readonly ht: "/__l5e/assets-v1/ca555782-7544-446a-a461-9b56b4d30072/roland-808-ht.flac";
320
- readonly lt: "/__l5e/assets-v1/8e100e1c-3844-42aa-bbe7-9eb52b9d704e/roland-808-lt.flac";
321
- readonly mt: "/__l5e/assets-v1/93dd309f-9347-4ea1-909f-56196b08dc88/roland-808-mt.flac";
322
- readonly oh: "/__l5e/assets-v1/4881941c-b558-4159-babd-fe224b0f1543/roland-808-oh.flac";
323
- readonly perc: "/__l5e/assets-v1/d13076b5-50ca-4675-9d4e-70afd6e6203d/roland-808-perc.flac";
324
- readonly rim: "/__l5e/assets-v1/ce82e0e9-402d-4a5e-bf01-59dfb922d1ba/roland-808-rim.flac";
325
- readonly sd: "/__l5e/assets-v1/67a799c9-e019-442b-8025-99d69bc493b9/roland-808-sd.flac";
326
- };
327
- };
328
- readonly "tr-909": {
329
- readonly name: "Roland TR-909";
330
- readonly blurb: "Punchy transistor kick, snappy sampled snare, sizzling metal hats. House and techno.";
331
- readonly family: "Machines";
332
- readonly credit: "MckAudio TR8 sample pack, dedicated to the public domain (CC0)";
333
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
334
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
335
- readonly voices: {
336
- readonly bd: "/__l5e/assets-v1/fd3911bb-6783-4db6-bee2-bb8c5a589f26/tr-909-bd.flac";
337
- readonly ch: "/__l5e/assets-v1/6f795c20-fb89-4cd5-b696-3a505d487baa/tr-909-ch.flac";
338
- readonly clap: "/__l5e/assets-v1/7b1ccf8e-0dd6-4189-82d7-03a910e895f2/tr-909-clap.flac";
339
- readonly cym: "/__l5e/assets-v1/f0d5ce25-3238-4e89-bb09-f5b7118fa0a7/tr-909-cym.flac";
340
- readonly ht: "/__l5e/assets-v1/5f9b4c37-25a7-492c-aaed-f7fe24fbfe2c/tr-909-ht.flac";
341
- readonly lt: "/__l5e/assets-v1/8477dddd-b9ed-4957-9a48-b5501bc77056/tr-909-lt.flac";
342
- readonly mt: "/__l5e/assets-v1/92d461e5-d74a-4ba2-a899-4dea1ad06d13/tr-909-mt.flac";
343
- readonly oh: "/__l5e/assets-v1/20c51259-d8d1-4ee3-a1d6-e850c3227b1a/tr-909-oh.flac";
344
- readonly perc: "/__l5e/assets-v1/147d346e-9ae7-4413-a50a-de4f03ef7342/tr-909-perc.flac";
345
- readonly rim: "/__l5e/assets-v1/0c9f157d-1329-4804-aa12-6819651d69fb/tr-909-rim.flac";
346
- readonly sd: "/__l5e/assets-v1/bd8069c2-e07c-4d5c-b05a-fb5b9a31eadb/tr-909-sd.flac";
347
- };
348
- };
349
- readonly "tr-707": {
350
- readonly name: "Roland TR-707";
351
- readonly blurb: "Twelve-bit sampled kit with early-digital crunch. Big eighties snare and claps.";
352
- readonly family: "Machines";
353
- readonly credit: "MckAudio TR8 sample pack, dedicated to the public domain (CC0)";
354
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
355
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
356
- readonly voices: {
357
- readonly bd: "/__l5e/assets-v1/825b2c7c-5c5f-411c-8191-306549ee26f2/tr-707-bd.flac";
358
- readonly ch: "/__l5e/assets-v1/6b35b393-7e9c-462d-8d2f-dc834417062b/tr-707-ch.flac";
359
- readonly clap: "/__l5e/assets-v1/efbe819a-b13e-4bf2-a6bd-9bc15a09ff3f/tr-707-clap.flac";
360
- readonly cym: "/__l5e/assets-v1/4a34902b-8592-46d8-b339-05a0648cac4f/tr-707-cym.flac";
361
- readonly ht: "/__l5e/assets-v1/e58beee9-45e5-4b65-af99-a05fcb96f55b/tr-707-ht.flac";
362
- readonly lt: "/__l5e/assets-v1/a0d6f499-4af6-4d34-96de-5ad7c2397229/tr-707-lt.flac";
363
- readonly mt: "/__l5e/assets-v1/6c4bd12b-78ff-4f70-863b-cd482f684eb6/tr-707-mt.flac";
364
- readonly oh: "/__l5e/assets-v1/c07159f3-d763-4698-a786-aeae60d38ac9/tr-707-oh.flac";
365
- readonly perc: "/__l5e/assets-v1/2f8cffcb-8e86-4f65-99db-a705727ed3ab/tr-707-perc.flac";
366
- readonly rim: "/__l5e/assets-v1/3d6445b1-38bd-4e9f-b048-db8c079b3c03/tr-707-rim.flac";
367
- readonly sd: "/__l5e/assets-v1/aaf70dd8-c740-4b05-9369-feb80f3e26be/tr-707-sd.flac";
368
- };
369
- };
370
- readonly "tr-606": {
371
- readonly name: "Roland TR-606";
372
- readonly blurb: "Tiny Drumatix voices \u2014 thin kick, spitty snare, ticking hats. Perfect with a 303.";
373
- readonly family: "Machines";
374
- readonly credit: "MckAudio TR8 sample pack, dedicated to the public domain (CC0)";
375
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
376
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
377
- readonly voices: {
378
- readonly bd: "/__l5e/assets-v1/f46ec897-9319-4c25-b63b-74df979de508/tr-606-bd.flac";
379
- readonly ch: "/__l5e/assets-v1/f4c57254-c711-43b0-82c6-52b011e205ba/tr-606-ch.flac";
380
- readonly cym: "/__l5e/assets-v1/db524ec1-36d3-43db-bfc4-fd84a1ddd2ac/tr-606-cym.flac";
381
- readonly ht: "/__l5e/assets-v1/74b486cf-c1f1-45c7-bd2a-4fd0c3794e1a/tr-606-ht.flac";
382
- readonly lt: "/__l5e/assets-v1/6b1a564f-6388-40c1-8028-3ea9b6824256/tr-606-lt.flac";
383
- readonly mt: "/__l5e/assets-v1/d871a86a-fcc8-45a6-b5a4-83977a689593/tr-606-mt.flac";
384
- readonly oh: "/__l5e/assets-v1/a4c607d2-d62c-49b5-ac99-549fd6262468/tr-606-oh.flac";
385
- readonly sd: "/__l5e/assets-v1/2062f1d4-e34f-406f-911b-2eb2ec523a89/tr-606-sd.flac";
386
- };
387
- };
388
- readonly "compu-78": {
389
- readonly name: "Compu-78";
390
- readonly blurb: "Tiny, dry preset-box percussion. Bossa nova organ rhythm energy.";
391
- readonly family: "Machines";
392
- readonly credit: "Synthesised for Squelchy";
393
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
394
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
395
- readonly voices: {
396
- readonly bd: "/__l5e/assets-v1/150a91e2-8b92-40f2-80e0-10b30f10976b/compu-78-bd.flac";
397
- readonly ch: "/__l5e/assets-v1/da9dcfc4-5f29-43b9-979f-9679edeb09ed/compu-78-ch.flac";
398
- readonly clap: "/__l5e/assets-v1/f3b5d485-44bc-4b34-b2bc-d37f436dffc2/compu-78-clap.flac";
399
- readonly cym: "/__l5e/assets-v1/627db2bf-08d5-4054-8de9-b8ec0ca4436a/compu-78-cym.flac";
400
- readonly ht: "/__l5e/assets-v1/1323f20c-3c98-45fb-abd1-e4b1e4be158f/compu-78-ht.flac";
401
- readonly lt: "/__l5e/assets-v1/ba67ce5c-3f01-4e1b-9fd8-a96bb5428cf4/compu-78-lt.flac";
402
- readonly mt: "/__l5e/assets-v1/f8cd42d6-2f98-4e9d-9428-ba091ec125cf/compu-78-mt.flac";
403
- readonly oh: "/__l5e/assets-v1/b4a1d5b2-0022-4f1b-ac52-1618ba03ea67/compu-78-oh.flac";
404
- readonly perc: "/__l5e/assets-v1/55e15a92-ba17-48cb-aec0-47e5198f073f/compu-78-perc.flac";
405
- readonly rim: "/__l5e/assets-v1/698aaf24-8e84-4b3b-8f13-dc95f2b3f157/compu-78-rim.flac";
406
- readonly sd: "/__l5e/assets-v1/41357245-d767-410e-8415-08dbb9e7503e/compu-78-sd.flac";
407
- };
408
- };
409
- readonly "dr5-studio": {
410
- readonly name: "Studio Kit";
411
- readonly blurb: "Acoustic drums in a small dry room. Skin, air and a little ambience.";
412
- readonly family: "Acoustic";
413
- readonly credit: "MckAudio DR5 sample pack, dedicated to the public domain (CC0)";
414
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
415
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
416
- readonly voices: {
417
- readonly bd: "/__l5e/assets-v1/9bc4c40f-432c-4fd1-98f8-dc3343b5dd31/dr5-studio-bd.flac";
418
- readonly ch: "/__l5e/assets-v1/862411a4-6d87-45e7-a3a2-2c4062f8e79b/dr5-studio-ch.flac";
419
- readonly clap: "/__l5e/assets-v1/2feebc4f-49d2-4ea0-9b5a-890059c24a9c/dr5-studio-clap.flac";
420
- readonly cym: "/__l5e/assets-v1/5abff1b5-b403-403b-b681-9ac37a394442/dr5-studio-cym.flac";
421
- readonly ht: "/__l5e/assets-v1/4e6883a5-e310-4035-a6ae-ee4033c7a0a1/dr5-studio-ht.flac";
422
- readonly lt: "/__l5e/assets-v1/faf35ae9-f89f-4ceb-ad5e-c562dd5d261a/dr5-studio-lt.flac";
423
- readonly mt: "/__l5e/assets-v1/4b923b44-9e79-4aa0-a9ef-4178a9f0279b/dr5-studio-mt.flac";
424
- readonly oh: "/__l5e/assets-v1/5a5e6d0c-4c8f-4dc5-9dea-55f90083a55a/dr5-studio-oh.flac";
425
- readonly perc: "/__l5e/assets-v1/8d286dd0-4201-49f6-9738-0a39e3a3d860/dr5-studio-perc.flac";
426
- readonly rim: "/__l5e/assets-v1/1d139e86-288e-48bd-baba-f7d2502271a5/dr5-studio-rim.flac";
427
- readonly sd: "/__l5e/assets-v1/eb7b02d6-7063-4350-9515-40010dd583cb/dr5-studio-sd.flac";
428
- };
429
- };
430
- readonly "tape-dust": {
431
- readonly name: "Tape Dust";
432
- readonly blurb: "Wobbly, hissy and rolled-off. Everything through a tired cassette.";
433
- readonly family: "Character";
434
- readonly credit: "Synthesised for Squelchy";
435
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
436
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
437
- readonly voices: {
438
- readonly bd: "/__l5e/assets-v1/7e90ada0-1da8-4930-9c05-48c395e8a863/tape-dust-bd.flac";
439
- readonly ch: "/__l5e/assets-v1/538fd73f-f7ee-408e-ab69-f8865506f4f5/tape-dust-ch.flac";
440
- readonly clap: "/__l5e/assets-v1/21b5b5ea-6dce-495d-b740-e7162941c972/tape-dust-clap.flac";
441
- readonly cym: "/__l5e/assets-v1/ac1a7f2d-9a96-4f61-b2ec-743854f15bbe/tape-dust-cym.flac";
442
- readonly ht: "/__l5e/assets-v1/93dd3f9c-8267-4f4e-b292-807cf0022c9e/tape-dust-ht.flac";
443
- readonly lt: "/__l5e/assets-v1/7a51ff67-62ec-408b-b6c3-4a0cae248eaf/tape-dust-lt.flac";
444
- readonly mt: "/__l5e/assets-v1/ba3340c5-6ead-419a-836a-a041448f06da/tape-dust-mt.flac";
445
- readonly oh: "/__l5e/assets-v1/e924553d-ac9a-427e-a69a-2939032ee618/tape-dust-oh.flac";
446
- readonly perc: "/__l5e/assets-v1/abfad1e6-998b-47a8-8c98-6f511c151143/tape-dust-perc.flac";
447
- readonly rim: "/__l5e/assets-v1/c86262d8-9711-41d4-b866-19a1ffcaf443/tape-dust-rim.flac";
448
- readonly sd: "/__l5e/assets-v1/2d1090cf-0284-4c33-9ba2-430c5c7b4730/tape-dust-sd.flac";
449
- };
450
- };
451
- readonly "hard-cell": {
452
- readonly name: "Hard Cell";
453
- readonly blurb: "Overdriven and bit-crushed. Industrial techno with no headroom left.";
454
- readonly family: "Character";
455
- readonly credit: "Synthesised for Squelchy";
456
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
457
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
458
- readonly voices: {
459
- readonly bd: "/__l5e/assets-v1/d8f1c5cf-8e07-4a1e-a519-d7f69781329b/hard-cell-bd.flac";
460
- readonly ch: "/__l5e/assets-v1/c3275e9a-dd79-4ac8-b4b9-84ebe25b5529/hard-cell-ch.flac";
461
- readonly clap: "/__l5e/assets-v1/160a5d2c-01e0-49da-a998-149a0cf08317/hard-cell-clap.flac";
462
- readonly cym: "/__l5e/assets-v1/910f3623-0209-439f-9e34-0c0f842bc78f/hard-cell-cym.flac";
463
- readonly ht: "/__l5e/assets-v1/36f5b37b-9d44-49b8-a57b-bf5d2a1aa523/hard-cell-ht.flac";
464
- readonly lt: "/__l5e/assets-v1/6065e512-578b-477f-88d9-49b3ccccacea/hard-cell-lt.flac";
465
- readonly mt: "/__l5e/assets-v1/4e33c147-b8da-4b03-abca-4fd254d5006d/hard-cell-mt.flac";
466
- readonly oh: "/__l5e/assets-v1/3e5b3bce-f21b-4ecb-8f28-375ce871427f/hard-cell-oh.flac";
467
- readonly perc: "/__l5e/assets-v1/ab27e781-3d41-4e04-8f44-f7a568543586/hard-cell-perc.flac";
468
- readonly rim: "/__l5e/assets-v1/ea2989c5-2354-4574-ae38-4786deeee151/hard-cell-rim.flac";
469
- readonly sd: "/__l5e/assets-v1/5bd3dca9-bdb7-4618-8e0b-9ed1c0b062c7/hard-cell-sd.flac";
470
- };
471
- };
472
- readonly "rx5-fm": {
473
- readonly name: "Yamaha RX5";
474
- readonly blurb: "FM percussion \u2014 glassy, bell-like, unmistakably late-eighties digital.";
475
- readonly family: "Digital";
476
- readonly credit: "MckAudio RX5 sample pack, dedicated to the public domain (CC0)";
477
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
478
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
479
- readonly voices: {
480
- readonly bd: "/__l5e/assets-v1/22b27f9f-d301-48e2-a0e4-e6b6e538ec31/rx5-fm-bd.flac";
481
- readonly ch: "/__l5e/assets-v1/236fb4f5-7d2a-48c0-be18-bc3777a6be91/rx5-fm-ch.flac";
482
- readonly clap: "/__l5e/assets-v1/58402fc0-996c-4577-9074-bb40b585c26e/rx5-fm-clap.flac";
483
- readonly cym: "/__l5e/assets-v1/d3e6ba9b-a2b8-4467-8923-97594723720e/rx5-fm-cym.flac";
484
- readonly ht: "/__l5e/assets-v1/a5edef5d-7861-4b3a-99bc-10ece111ca64/rx5-fm-ht.flac";
485
- readonly lt: "/__l5e/assets-v1/7151d30d-fe90-4ac5-9c9f-e91a808a1efa/rx5-fm-lt.flac";
486
- readonly mt: "/__l5e/assets-v1/46119925-9ecd-431a-94ee-2135c8ce4382/rx5-fm-mt.flac";
487
- readonly oh: "/__l5e/assets-v1/9fe4938f-fda7-43f8-84c6-c53325fd674c/rx5-fm-oh.flac";
488
- readonly perc: "/__l5e/assets-v1/1aa471d4-4737-45e6-9070-6301892dcdfa/rx5-fm-perc.flac";
489
- readonly rim: "/__l5e/assets-v1/2b0409a0-1aa6-41a4-9593-553247a2e624/rx5-fm-rim.flac";
490
- readonly sd: "/__l5e/assets-v1/3d9c426c-7783-4106-940f-1e6b6405bdd5/rx5-fm-sd.flac";
491
- };
492
- };
493
- readonly "micro-click": {
494
- readonly name: "Micro Click";
495
- readonly blurb: "Clicks, ticks and pops. Minimal and micro-house, nothing sustains.";
496
- readonly family: "Digital";
497
- readonly credit: "Synthesised for Squelchy";
498
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
499
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
500
- readonly voices: {
501
- readonly bd: "/__l5e/assets-v1/58e3ce80-d300-47c6-8d79-52b00376550f/micro-click-bd.flac";
502
- readonly ch: "/__l5e/assets-v1/1c12e400-5c5f-4aae-b006-5a3fe3c6ef2c/micro-click-ch.flac";
503
- readonly clap: "/__l5e/assets-v1/b1f402f6-a85d-421b-9684-4b78719726d5/micro-click-clap.flac";
504
- readonly cym: "/__l5e/assets-v1/fe501055-43d7-427f-9ab4-5efd0423292e/micro-click-cym.flac";
505
- readonly ht: "/__l5e/assets-v1/3aab93cb-cd84-4600-a3e5-458fa74a2a86/micro-click-ht.flac";
506
- readonly lt: "/__l5e/assets-v1/b09a0d61-c9a2-4b31-b0f2-10d3c10ef83c/micro-click-lt.flac";
507
- readonly mt: "/__l5e/assets-v1/988e7a56-e914-43ad-aff1-71ec3a04b8e4/micro-click-mt.flac";
508
- readonly oh: "/__l5e/assets-v1/122a3f93-4542-471b-b390-996665248653/micro-click-oh.flac";
509
- readonly perc: "/__l5e/assets-v1/cae413d7-a68c-411a-a4b4-b7c20a83946d/micro-click-perc.flac";
510
- readonly rim: "/__l5e/assets-v1/41922292-1c6e-4bef-ac8e-fa1ce09eefca/micro-click-rim.flac";
511
- readonly sd: "/__l5e/assets-v1/6218ccdd-cba1-466e-af8b-665d7a2d4640/micro-click-sd.flac";
512
- };
513
- };
514
- readonly "deep-analogue": {
515
- readonly name: "Deep Analogue";
516
- readonly blurb: "Long sub kick, soft snare, warm hats. Deep house at three in the morning.";
517
- readonly family: "Acoustic";
518
- readonly credit: "Synthesised for Squelchy";
519
- readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
520
- readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
521
- readonly voices: {
522
- readonly bd: "/__l5e/assets-v1/93c55e12-44f1-4cf9-8b19-82833257a68f/deep-analogue-bd.flac";
523
- readonly ch: "/__l5e/assets-v1/7c881111-83d8-4c1a-b4af-4f09d2a09f4b/deep-analogue-ch.flac";
524
- readonly clap: "/__l5e/assets-v1/e8b67bb8-8f7f-4b87-9ee4-d9cb7bc43efe/deep-analogue-clap.flac";
525
- readonly cym: "/__l5e/assets-v1/b329f9e1-3eb0-471c-b7c7-8ad7f639323f/deep-analogue-cym.flac";
526
- readonly ht: "/__l5e/assets-v1/a381a6b5-fd09-4fa6-b88e-86a29b8f25d9/deep-analogue-ht.flac";
527
- readonly lt: "/__l5e/assets-v1/c9ebc90a-20aa-4f76-9e79-f440258d4bac/deep-analogue-lt.flac";
528
- readonly mt: "/__l5e/assets-v1/5e1b803c-748e-4f09-bed7-c7b4511dc8b0/deep-analogue-mt.flac";
529
- readonly oh: "/__l5e/assets-v1/289d67f2-6d55-4a04-8607-302442465e81/deep-analogue-oh.flac";
530
- readonly perc: "/__l5e/assets-v1/8ef1f592-a3a4-45a5-9ea4-80362953aee4/deep-analogue-perc.flac";
531
- readonly rim: "/__l5e/assets-v1/102a1c23-6e5f-468e-95c8-e414ce849884/deep-analogue-rim.flac";
532
- readonly sd: "/__l5e/assets-v1/9be98c57-13c4-4337-bb2f-53c0b2ff7150/deep-analogue-sd.flac";
533
- };
534
- };
308
+ create(ctx: BaseAudioContext, kit: LoadedSampleSet, key: VoiceKey): VoiceInstance<number | boolean>;
535
309
  };
536
- export type SampleSetId = keyof typeof SampleSets;
537
310
  export interface AcidFilterParams {
538
311
  /** 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. Range 15–135 notes. Default 67. */
539
312
  note?: Note;
@@ -893,13 +666,13 @@ export type EnvelopeFollowerProps = {
893
666
  };
894
667
  export declare const EnvelopeFollower: LibModule<EnvelopeFollowerParams, EnvelopeFollowerInputs, EnvelopeFollowerOutputs, EnvelopeFollowerProps>;
895
668
  export interface EnvelopeParams {
896
- /** Attack. Time for signal to rise from zero to full level when triggered. Range 0.001–2 s (log). Default 0.01. */
669
+ /** Attack. Time for the level to rise from zero to full, in a straight line. Range 0.001–2 s (log). Default 0.01. */
897
670
  attack?: Seconds;
898
- /** Decay. Time to fall from peak to sustain level after attack completes. Range 0.001–2 s (log). Default 0.1. */
671
+ /** Decay. Time to fall from the peak to the sustain level, on an exponential curve like an analog envelope. The time for the gap to sustain to shrink by 60 dB. Range 0.001–10 s (log). Default 0.46. */
899
672
  decay?: Seconds;
900
- /** Sustain. Level held while the note is held. 0 = plucky, 1 = organ-like. Range 0–1. Default 0.7. */
673
+ /** Sustain. Level held while the note is held. 0 = plucky, 1 = organ-like. Moving it while a note is held glides at the decay speed. Range 0–1. Default 0.7. */
901
674
  sustain?: number;
902
- /** Release. Time to fade to silence after note is released. Range 0.001–3 s (log). Default 0.3. */
675
+ /** Release. Time to fade to silence (60 dB down) after the note is released, on an exponential curve like an analog envelope. Range 0.001–20 s (log). Default 2.1. */
903
676
  release?: Seconds;
904
677
  /** 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. Range 0–96 semitones (sqrt). Default 48. */
905
678
  depth?: Semitones;
@@ -1556,13 +1329,13 @@ export type SaturatorProps = {
1556
1329
  };
1557
1330
  export declare const Saturator: LibModule<SaturatorParams, SaturatorInputs, SaturatorOutputs, SaturatorProps>;
1558
1331
  export interface ShimmerParams {
1559
- /** Reverb Decay. RT60 of the reverb tank in seconds. Range 0.5–10 s (log). Default 3. */
1332
+ /** Reverb Decay. RT60 of the reverb tank in seconds — the time to fall 60 dB, measured at 500 Hz. Treble dies faster, like a real hall. Range 0.5–10 s (log). Default 3. */
1560
1333
  decay?: Seconds;
1561
1334
  /** 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. Range -12–24 semitones. Default 12. */
1562
1335
  pitch?: Semitones;
1563
1336
  /** Dry/Wet Mix. Equal-power balance between dry signal and shimmer output — independent of the regen amount. Range 0–1. Default 0.5. */
1564
1337
  mix?: number;
1565
- /** Shimmer Regen. How much pitch-shifted signal is fed back into the tank. High = endless rising choir. Range 0–0.95. Default 0.5. */
1338
+ /** Shimmer Regen. Gain once round the pitch-shifted feedback loop, measured at 500 Hz: 0.5 = each new octave 6 dB quieter than the last, 0.95 = an almost endless rising choir. Means the same at every DECAY setting. Range 0–0.95. Default 0.5. */
1566
1339
  shimmer?: number;
1567
1340
  }
1568
1341
  export type ShimmerInputs = {