@jpdutoit/squelchy 0.0.2 → 0.0.4
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 +4 -3
- package/{chunk-NDUSYSHF.js → chunk-N7J25N5J.js} +5 -5
- package/chunk-N7J25N5J.js.map +7 -0
- package/docs/GUIDE.md +58 -13
- package/docs/MODULES.md +7 -7
- package/docs/modules.json +14 -14
- package/index.d.ts +41 -252
- package/index.js +136 -276
- package/index.js.map +4 -4
- 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/compu-78.d.ts +7 -0
- package/kits/compu-78.js +22 -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/deep-analogue.d.ts +7 -0
- package/kits/deep-analogue.js +22 -0
- package/kits/dr5-studio/bd.flac +0 -0
- package/kits/dr5-studio/ch.flac +0 -0
- package/kits/dr5-studio/clap.flac +0 -0
- package/kits/dr5-studio/cym.flac +0 -0
- package/kits/dr5-studio/ht.flac +0 -0
- package/kits/dr5-studio/lt.flac +0 -0
- package/kits/dr5-studio/mt.flac +0 -0
- package/kits/dr5-studio/oh.flac +0 -0
- package/kits/dr5-studio/perc.flac +0 -0
- package/kits/dr5-studio/rim.flac +0 -0
- package/kits/dr5-studio/sd.flac +0 -0
- package/kits/dr5-studio.d.ts +7 -0
- package/kits/dr5-studio.js +22 -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/hard-cell.d.ts +7 -0
- package/kits/hard-cell.js +22 -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/micro-click.d.ts +7 -0
- package/kits/micro-click.js +22 -0
- package/kits/roland-808/bd.flac +0 -0
- package/kits/roland-808/ch.flac +0 -0
- package/kits/roland-808/clap.flac +0 -0
- package/kits/roland-808/cym.flac +0 -0
- package/kits/roland-808/ht.flac +0 -0
- package/kits/roland-808/lt.flac +0 -0
- package/kits/roland-808/mt.flac +0 -0
- package/kits/roland-808/oh.flac +0 -0
- package/kits/roland-808/perc.flac +0 -0
- package/kits/roland-808/rim.flac +0 -0
- package/kits/roland-808/sd.flac +0 -0
- package/kits/roland-808.d.ts +7 -0
- package/kits/roland-808.js +22 -0
- package/kits/rx5-fm/bd.flac +0 -0
- package/kits/rx5-fm/ch.flac +0 -0
- package/kits/rx5-fm/clap.flac +0 -0
- package/kits/rx5-fm/cym.flac +0 -0
- package/kits/rx5-fm/ht.flac +0 -0
- package/kits/rx5-fm/lt.flac +0 -0
- package/kits/rx5-fm/mt.flac +0 -0
- package/kits/rx5-fm/oh.flac +0 -0
- package/kits/rx5-fm/perc.flac +0 -0
- package/kits/rx5-fm/rim.flac +0 -0
- package/kits/rx5-fm/sd.flac +0 -0
- package/kits/rx5-fm.d.ts +7 -0
- package/kits/rx5-fm.js +22 -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/kits/tape-dust.d.ts +7 -0
- package/kits/tape-dust.js +22 -0
- package/kits/tr-606/bd.flac +0 -0
- package/kits/tr-606/ch.flac +0 -0
- package/kits/tr-606/cym.flac +0 -0
- package/kits/tr-606/ht.flac +0 -0
- package/kits/tr-606/lt.flac +0 -0
- package/kits/tr-606/mt.flac +0 -0
- package/kits/tr-606/oh.flac +0 -0
- package/kits/tr-606/sd.flac +0 -0
- package/kits/tr-606.d.ts +7 -0
- package/kits/tr-606.js +19 -0
- package/kits/tr-707/bd.flac +0 -0
- package/kits/tr-707/ch.flac +0 -0
- package/kits/tr-707/clap.flac +0 -0
- package/kits/tr-707/cym.flac +0 -0
- package/kits/tr-707/ht.flac +0 -0
- package/kits/tr-707/lt.flac +0 -0
- package/kits/tr-707/mt.flac +0 -0
- package/kits/tr-707/oh.flac +0 -0
- package/kits/tr-707/perc.flac +0 -0
- package/kits/tr-707/rim.flac +0 -0
- package/kits/tr-707/sd.flac +0 -0
- package/kits/tr-707.d.ts +7 -0
- package/kits/tr-707.js +22 -0
- package/kits/tr-909/bd.flac +0 -0
- package/kits/tr-909/ch.flac +0 -0
- package/kits/tr-909/clap.flac +0 -0
- package/kits/tr-909/cym.flac +0 -0
- package/kits/tr-909/ht.flac +0 -0
- package/kits/tr-909/lt.flac +0 -0
- package/kits/tr-909/mt.flac +0 -0
- package/kits/tr-909/oh.flac +0 -0
- package/kits/tr-909/perc.flac +0 -0
- package/kits/tr-909/rim.flac +0 -0
- package/kits/tr-909/sd.flac +0 -0
- package/kits/tr-909.d.ts +7 -0
- package/kits/tr-909.js +22 -0
- package/package.json +6 -3
- package/{worklets-inline-MUVFLGPY.js → worklets-inline-EF3OTQ4D.js} +2 -2
- package/chunk-NDUSYSHF.js.map +0 -7
- package/meta.json +0 -4492
- /package/{worklets-inline-MUVFLGPY.js.map → worklets-inline-EF3OTQ4D.js.map} +0 -0
package/index.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export declare function preload(ctx: BaseAudioContext, opts?: {
|
|
|
50
50
|
export type ParamValue = number | string | boolean | number[] | boolean[][];
|
|
51
51
|
/** Runtime metadata — only what code needs. Human-facing text (names,
|
|
52
52
|
* descriptions, labels) is stripped from the bundle; it lives in the
|
|
53
|
-
* generated docs/MODULES.md,
|
|
53
|
+
* generated docs/MODULES.md, docs/modules.json and the .d.ts JSDoc instead. */
|
|
54
54
|
export interface ModuleMeta {
|
|
55
55
|
type: string;
|
|
56
56
|
ports: Record<string, Pick<PortDefinition, "type" | "signal">>;
|
|
@@ -139,7 +139,7 @@ export interface StepObject<V> {
|
|
|
139
139
|
/** Gate length in steps, default = the playback's `gate`. */
|
|
140
140
|
length?: number;
|
|
141
141
|
}
|
|
142
|
-
/** A pattern step: a value, a rest (null/undefined/false
|
|
142
|
+
/** A pattern step: a value (0 included), a rest (null/undefined/false), or a StepObject. */
|
|
143
143
|
export type Step<V> = V | StepObject<V> | null | undefined | false;
|
|
144
144
|
/** What a voice receives per hit. */
|
|
145
145
|
export interface Hit<V = unknown> {
|
|
@@ -151,7 +151,7 @@ export interface Hit<V = unknown> {
|
|
|
151
151
|
step: number;
|
|
152
152
|
/** Loop iteration, 0-based. */
|
|
153
153
|
cycle: number;
|
|
154
|
-
/** The step's value (true for `steps('x..x')`, a
|
|
154
|
+
/** The step's value (true for `steps('x..x')`, a Note for melodies, …). */
|
|
155
155
|
value: V;
|
|
156
156
|
velocity: number;
|
|
157
157
|
/** Gate length in seconds. */
|
|
@@ -219,10 +219,27 @@ export interface Transport {
|
|
|
219
219
|
tick(): void;
|
|
220
220
|
dispose(): void;
|
|
221
221
|
}
|
|
222
|
-
|
|
222
|
+
/** Rests are exactly the "nothing" values in `Step`: null, undefined (array
|
|
223
|
+
* holes) and false. `0` is a real value (root note, 0 semitones, CV 0);
|
|
224
|
+
* `'.'`/`'-'` are only rest syntax inside steps()/notes() strings. */
|
|
225
|
+
export declare function isRest(v: unknown): v is null | undefined | false;
|
|
223
226
|
export declare function createTransport(ctx: BaseAudioContext, opts?: TransportOptions): Transport;
|
|
224
|
-
/**
|
|
225
|
-
export
|
|
227
|
+
/** Velocities for the hit letters in `steps()`. */
|
|
228
|
+
export interface StepsLevels {
|
|
229
|
+
/** `X`. Default 1. */
|
|
230
|
+
accent?: number;
|
|
231
|
+
/** `x`. Default 0.75. */
|
|
232
|
+
normal?: number;
|
|
233
|
+
/** `o`. Default 0.4. */
|
|
234
|
+
ghost?: number;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* `steps('X..x o.x. x... x..x')` → one step per character, value `true`:
|
|
238
|
+
* `X` = accent, `x` = normal hit, `o` = ghost note (as velocity, see
|
|
239
|
+
* StepsLevels), `.`/`-` = rest. Spaces and `|` are ignored; any other
|
|
240
|
+
* character throws, so a typo can't silently become a rest.
|
|
241
|
+
*/
|
|
242
|
+
export declare function steps(s: string, levels?: StepsLevels): (StepObject<true> | null)[];
|
|
226
243
|
/** 'A4' → 69, 'C4' → 60, 'F#2' → 42; a number passes through typed. Midi numbers are the pitch unit everywhere (V/Oct = semitones). */
|
|
227
244
|
export declare function note(name: string | number): Note;
|
|
228
245
|
/** `notes('C3 . E3 G3 - C4')` → (Note | null)[]. '.'/'-' = rest. */
|
|
@@ -281,8 +298,6 @@ export declare const VOICE_KEYS: readonly [
|
|
|
281
298
|
"perc"
|
|
282
299
|
];
|
|
283
300
|
export type VoiceKey = (typeof VOICE_KEYS)[number];
|
|
284
|
-
/** Where the kit audio is hosted. Override with `loadSampleSet(..., { baseUrl })`. */
|
|
285
|
-
export declare const DEFAULT_SAMPLE_BASE_URL = "https://squelchy.studio";
|
|
286
301
|
export interface SampleSetInfo {
|
|
287
302
|
name: string;
|
|
288
303
|
blurb: string;
|
|
@@ -290,7 +305,7 @@ export interface SampleSetInfo {
|
|
|
290
305
|
credit: string;
|
|
291
306
|
license: string;
|
|
292
307
|
licenseUrl: string;
|
|
293
|
-
/**
|
|
308
|
+
/** Audio URL per voice, fetched as-is by `loadSampleSet`. */
|
|
294
309
|
voices: Partial<Record<VoiceKey, string>>;
|
|
295
310
|
}
|
|
296
311
|
export interface LoadedSampleSet {
|
|
@@ -301,246 +316,20 @@ export interface LoadedSampleSet {
|
|
|
301
316
|
}
|
|
302
317
|
/** Fetch + decode every voice of a kit in parallel. */
|
|
303
318
|
export declare function loadSampleSet(ctx: BaseAudioContext, set: SampleSetInfo, opts?: {
|
|
304
|
-
baseUrl?: string;
|
|
305
319
|
fetch?: typeof fetch;
|
|
306
320
|
}): Promise<LoadedSampleSet>;
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
321
|
+
export interface SampleVoiceOptions {
|
|
322
|
+
/** The note that plays the sample unshifted. Default 60 (C4). */
|
|
323
|
+
root?: Note;
|
|
324
|
+
}
|
|
325
|
+
/** A one-shot sample voice, like a drum machine: every hit plays the whole
|
|
326
|
+
* sample, whatever the step's gate length. velocity 0..1 scales level. A
|
|
327
|
+
* `Note` value plays the sample at that note (`root` = unshifted), the same
|
|
328
|
+
* numbers `NoteCv` plays, so `notes()` melodies work on both; anything else
|
|
329
|
+
* (e.g. `true` from steps()) plays it unshifted. */
|
|
310
330
|
export declare const SampleVoice: {
|
|
311
|
-
create(ctx: BaseAudioContext, kit: LoadedSampleSet, key: VoiceKey): VoiceInstance<
|
|
312
|
-
};
|
|
313
|
-
export declare const SampleSets: {
|
|
314
|
-
readonly "roland-808": {
|
|
315
|
-
readonly name: "Roland TR-808";
|
|
316
|
-
readonly blurb: "The original machine, sampled from hardware. Deep sub kick, ticking hats.";
|
|
317
|
-
readonly family: "Machines";
|
|
318
|
-
readonly credit: "Michael Fischer / Technopolis TR-808 sample set, released to the public domain";
|
|
319
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
320
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
321
|
-
readonly voices: {
|
|
322
|
-
readonly bd: "/__l5e/assets-v1/c4b2fc55-dcf1-4248-a7fb-2cd3653a659b/roland-808-bd.flac";
|
|
323
|
-
readonly ch: "/__l5e/assets-v1/c1ec3b3d-571f-46a6-9d05-12b2fe5f6fc5/roland-808-ch.flac";
|
|
324
|
-
readonly clap: "/__l5e/assets-v1/8bd15e4b-96b7-46b6-b26a-35283c816f1e/roland-808-clap.flac";
|
|
325
|
-
readonly cym: "/__l5e/assets-v1/033f0719-913a-4a7a-998e-92a7319d806f/roland-808-cym.flac";
|
|
326
|
-
readonly ht: "/__l5e/assets-v1/ca555782-7544-446a-a461-9b56b4d30072/roland-808-ht.flac";
|
|
327
|
-
readonly lt: "/__l5e/assets-v1/8e100e1c-3844-42aa-bbe7-9eb52b9d704e/roland-808-lt.flac";
|
|
328
|
-
readonly mt: "/__l5e/assets-v1/93dd309f-9347-4ea1-909f-56196b08dc88/roland-808-mt.flac";
|
|
329
|
-
readonly oh: "/__l5e/assets-v1/4881941c-b558-4159-babd-fe224b0f1543/roland-808-oh.flac";
|
|
330
|
-
readonly perc: "/__l5e/assets-v1/d13076b5-50ca-4675-9d4e-70afd6e6203d/roland-808-perc.flac";
|
|
331
|
-
readonly rim: "/__l5e/assets-v1/ce82e0e9-402d-4a5e-bf01-59dfb922d1ba/roland-808-rim.flac";
|
|
332
|
-
readonly sd: "/__l5e/assets-v1/67a799c9-e019-442b-8025-99d69bc493b9/roland-808-sd.flac";
|
|
333
|
-
};
|
|
334
|
-
};
|
|
335
|
-
readonly "tr-909": {
|
|
336
|
-
readonly name: "Roland TR-909";
|
|
337
|
-
readonly blurb: "Punchy transistor kick, snappy sampled snare, sizzling metal hats. House and techno.";
|
|
338
|
-
readonly family: "Machines";
|
|
339
|
-
readonly credit: "MckAudio TR8 sample pack, dedicated to the public domain (CC0)";
|
|
340
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
341
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
342
|
-
readonly voices: {
|
|
343
|
-
readonly bd: "/__l5e/assets-v1/fd3911bb-6783-4db6-bee2-bb8c5a589f26/tr-909-bd.flac";
|
|
344
|
-
readonly ch: "/__l5e/assets-v1/6f795c20-fb89-4cd5-b696-3a505d487baa/tr-909-ch.flac";
|
|
345
|
-
readonly clap: "/__l5e/assets-v1/7b1ccf8e-0dd6-4189-82d7-03a910e895f2/tr-909-clap.flac";
|
|
346
|
-
readonly cym: "/__l5e/assets-v1/f0d5ce25-3238-4e89-bb09-f5b7118fa0a7/tr-909-cym.flac";
|
|
347
|
-
readonly ht: "/__l5e/assets-v1/5f9b4c37-25a7-492c-aaed-f7fe24fbfe2c/tr-909-ht.flac";
|
|
348
|
-
readonly lt: "/__l5e/assets-v1/8477dddd-b9ed-4957-9a48-b5501bc77056/tr-909-lt.flac";
|
|
349
|
-
readonly mt: "/__l5e/assets-v1/92d461e5-d74a-4ba2-a899-4dea1ad06d13/tr-909-mt.flac";
|
|
350
|
-
readonly oh: "/__l5e/assets-v1/20c51259-d8d1-4ee3-a1d6-e850c3227b1a/tr-909-oh.flac";
|
|
351
|
-
readonly perc: "/__l5e/assets-v1/147d346e-9ae7-4413-a50a-de4f03ef7342/tr-909-perc.flac";
|
|
352
|
-
readonly rim: "/__l5e/assets-v1/0c9f157d-1329-4804-aa12-6819651d69fb/tr-909-rim.flac";
|
|
353
|
-
readonly sd: "/__l5e/assets-v1/bd8069c2-e07c-4d5c-b05a-fb5b9a31eadb/tr-909-sd.flac";
|
|
354
|
-
};
|
|
355
|
-
};
|
|
356
|
-
readonly "tr-707": {
|
|
357
|
-
readonly name: "Roland TR-707";
|
|
358
|
-
readonly blurb: "Twelve-bit sampled kit with early-digital crunch. Big eighties snare and claps.";
|
|
359
|
-
readonly family: "Machines";
|
|
360
|
-
readonly credit: "MckAudio TR8 sample pack, dedicated to the public domain (CC0)";
|
|
361
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
362
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
363
|
-
readonly voices: {
|
|
364
|
-
readonly bd: "/__l5e/assets-v1/825b2c7c-5c5f-411c-8191-306549ee26f2/tr-707-bd.flac";
|
|
365
|
-
readonly ch: "/__l5e/assets-v1/6b35b393-7e9c-462d-8d2f-dc834417062b/tr-707-ch.flac";
|
|
366
|
-
readonly clap: "/__l5e/assets-v1/efbe819a-b13e-4bf2-a6bd-9bc15a09ff3f/tr-707-clap.flac";
|
|
367
|
-
readonly cym: "/__l5e/assets-v1/4a34902b-8592-46d8-b339-05a0648cac4f/tr-707-cym.flac";
|
|
368
|
-
readonly ht: "/__l5e/assets-v1/e58beee9-45e5-4b65-af99-a05fcb96f55b/tr-707-ht.flac";
|
|
369
|
-
readonly lt: "/__l5e/assets-v1/a0d6f499-4af6-4d34-96de-5ad7c2397229/tr-707-lt.flac";
|
|
370
|
-
readonly mt: "/__l5e/assets-v1/6c4bd12b-78ff-4f70-863b-cd482f684eb6/tr-707-mt.flac";
|
|
371
|
-
readonly oh: "/__l5e/assets-v1/c07159f3-d763-4698-a786-aeae60d38ac9/tr-707-oh.flac";
|
|
372
|
-
readonly perc: "/__l5e/assets-v1/2f8cffcb-8e86-4f65-99db-a705727ed3ab/tr-707-perc.flac";
|
|
373
|
-
readonly rim: "/__l5e/assets-v1/3d6445b1-38bd-4e9f-b048-db8c079b3c03/tr-707-rim.flac";
|
|
374
|
-
readonly sd: "/__l5e/assets-v1/aaf70dd8-c740-4b05-9369-feb80f3e26be/tr-707-sd.flac";
|
|
375
|
-
};
|
|
376
|
-
};
|
|
377
|
-
readonly "tr-606": {
|
|
378
|
-
readonly name: "Roland TR-606";
|
|
379
|
-
readonly blurb: "Tiny Drumatix voices \u2014 thin kick, spitty snare, ticking hats. Perfect with a 303.";
|
|
380
|
-
readonly family: "Machines";
|
|
381
|
-
readonly credit: "MckAudio TR8 sample pack, dedicated to the public domain (CC0)";
|
|
382
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
383
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
384
|
-
readonly voices: {
|
|
385
|
-
readonly bd: "/__l5e/assets-v1/f46ec897-9319-4c25-b63b-74df979de508/tr-606-bd.flac";
|
|
386
|
-
readonly ch: "/__l5e/assets-v1/f4c57254-c711-43b0-82c6-52b011e205ba/tr-606-ch.flac";
|
|
387
|
-
readonly cym: "/__l5e/assets-v1/db524ec1-36d3-43db-bfc4-fd84a1ddd2ac/tr-606-cym.flac";
|
|
388
|
-
readonly ht: "/__l5e/assets-v1/74b486cf-c1f1-45c7-bd2a-4fd0c3794e1a/tr-606-ht.flac";
|
|
389
|
-
readonly lt: "/__l5e/assets-v1/6b1a564f-6388-40c1-8028-3ea9b6824256/tr-606-lt.flac";
|
|
390
|
-
readonly mt: "/__l5e/assets-v1/d871a86a-fcc8-45a6-b5a4-83977a689593/tr-606-mt.flac";
|
|
391
|
-
readonly oh: "/__l5e/assets-v1/a4c607d2-d62c-49b5-ac99-549fd6262468/tr-606-oh.flac";
|
|
392
|
-
readonly sd: "/__l5e/assets-v1/2062f1d4-e34f-406f-911b-2eb2ec523a89/tr-606-sd.flac";
|
|
393
|
-
};
|
|
394
|
-
};
|
|
395
|
-
readonly "compu-78": {
|
|
396
|
-
readonly name: "Compu-78";
|
|
397
|
-
readonly blurb: "Tiny, dry preset-box percussion. Bossa nova organ rhythm energy.";
|
|
398
|
-
readonly family: "Machines";
|
|
399
|
-
readonly credit: "Synthesised for Squelchy";
|
|
400
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
401
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
402
|
-
readonly voices: {
|
|
403
|
-
readonly bd: "/__l5e/assets-v1/150a91e2-8b92-40f2-80e0-10b30f10976b/compu-78-bd.flac";
|
|
404
|
-
readonly ch: "/__l5e/assets-v1/da9dcfc4-5f29-43b9-979f-9679edeb09ed/compu-78-ch.flac";
|
|
405
|
-
readonly clap: "/__l5e/assets-v1/f3b5d485-44bc-4b34-b2bc-d37f436dffc2/compu-78-clap.flac";
|
|
406
|
-
readonly cym: "/__l5e/assets-v1/627db2bf-08d5-4054-8de9-b8ec0ca4436a/compu-78-cym.flac";
|
|
407
|
-
readonly ht: "/__l5e/assets-v1/1323f20c-3c98-45fb-abd1-e4b1e4be158f/compu-78-ht.flac";
|
|
408
|
-
readonly lt: "/__l5e/assets-v1/ba67ce5c-3f01-4e1b-9fd8-a96bb5428cf4/compu-78-lt.flac";
|
|
409
|
-
readonly mt: "/__l5e/assets-v1/f8cd42d6-2f98-4e9d-9428-ba091ec125cf/compu-78-mt.flac";
|
|
410
|
-
readonly oh: "/__l5e/assets-v1/b4a1d5b2-0022-4f1b-ac52-1618ba03ea67/compu-78-oh.flac";
|
|
411
|
-
readonly perc: "/__l5e/assets-v1/55e15a92-ba17-48cb-aec0-47e5198f073f/compu-78-perc.flac";
|
|
412
|
-
readonly rim: "/__l5e/assets-v1/698aaf24-8e84-4b3b-8f13-dc95f2b3f157/compu-78-rim.flac";
|
|
413
|
-
readonly sd: "/__l5e/assets-v1/41357245-d767-410e-8415-08dbb9e7503e/compu-78-sd.flac";
|
|
414
|
-
};
|
|
415
|
-
};
|
|
416
|
-
readonly "dr5-studio": {
|
|
417
|
-
readonly name: "Studio Kit";
|
|
418
|
-
readonly blurb: "Acoustic drums in a small dry room. Skin, air and a little ambience.";
|
|
419
|
-
readonly family: "Acoustic";
|
|
420
|
-
readonly credit: "MckAudio DR5 sample pack, dedicated to the public domain (CC0)";
|
|
421
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
422
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
423
|
-
readonly voices: {
|
|
424
|
-
readonly bd: "/__l5e/assets-v1/9bc4c40f-432c-4fd1-98f8-dc3343b5dd31/dr5-studio-bd.flac";
|
|
425
|
-
readonly ch: "/__l5e/assets-v1/862411a4-6d87-45e7-a3a2-2c4062f8e79b/dr5-studio-ch.flac";
|
|
426
|
-
readonly clap: "/__l5e/assets-v1/2feebc4f-49d2-4ea0-9b5a-890059c24a9c/dr5-studio-clap.flac";
|
|
427
|
-
readonly cym: "/__l5e/assets-v1/5abff1b5-b403-403b-b681-9ac37a394442/dr5-studio-cym.flac";
|
|
428
|
-
readonly ht: "/__l5e/assets-v1/4e6883a5-e310-4035-a6ae-ee4033c7a0a1/dr5-studio-ht.flac";
|
|
429
|
-
readonly lt: "/__l5e/assets-v1/faf35ae9-f89f-4ceb-ad5e-c562dd5d261a/dr5-studio-lt.flac";
|
|
430
|
-
readonly mt: "/__l5e/assets-v1/4b923b44-9e79-4aa0-a9ef-4178a9f0279b/dr5-studio-mt.flac";
|
|
431
|
-
readonly oh: "/__l5e/assets-v1/5a5e6d0c-4c8f-4dc5-9dea-55f90083a55a/dr5-studio-oh.flac";
|
|
432
|
-
readonly perc: "/__l5e/assets-v1/8d286dd0-4201-49f6-9738-0a39e3a3d860/dr5-studio-perc.flac";
|
|
433
|
-
readonly rim: "/__l5e/assets-v1/1d139e86-288e-48bd-baba-f7d2502271a5/dr5-studio-rim.flac";
|
|
434
|
-
readonly sd: "/__l5e/assets-v1/eb7b02d6-7063-4350-9515-40010dd583cb/dr5-studio-sd.flac";
|
|
435
|
-
};
|
|
436
|
-
};
|
|
437
|
-
readonly "tape-dust": {
|
|
438
|
-
readonly name: "Tape Dust";
|
|
439
|
-
readonly blurb: "Wobbly, hissy and rolled-off. Everything through a tired cassette.";
|
|
440
|
-
readonly family: "Character";
|
|
441
|
-
readonly credit: "Synthesised for Squelchy";
|
|
442
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
443
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
444
|
-
readonly voices: {
|
|
445
|
-
readonly bd: "/__l5e/assets-v1/7e90ada0-1da8-4930-9c05-48c395e8a863/tape-dust-bd.flac";
|
|
446
|
-
readonly ch: "/__l5e/assets-v1/538fd73f-f7ee-408e-ab69-f8865506f4f5/tape-dust-ch.flac";
|
|
447
|
-
readonly clap: "/__l5e/assets-v1/21b5b5ea-6dce-495d-b740-e7162941c972/tape-dust-clap.flac";
|
|
448
|
-
readonly cym: "/__l5e/assets-v1/ac1a7f2d-9a96-4f61-b2ec-743854f15bbe/tape-dust-cym.flac";
|
|
449
|
-
readonly ht: "/__l5e/assets-v1/93dd3f9c-8267-4f4e-b292-807cf0022c9e/tape-dust-ht.flac";
|
|
450
|
-
readonly lt: "/__l5e/assets-v1/7a51ff67-62ec-408b-b6c3-4a0cae248eaf/tape-dust-lt.flac";
|
|
451
|
-
readonly mt: "/__l5e/assets-v1/ba3340c5-6ead-419a-836a-a041448f06da/tape-dust-mt.flac";
|
|
452
|
-
readonly oh: "/__l5e/assets-v1/e924553d-ac9a-427e-a69a-2939032ee618/tape-dust-oh.flac";
|
|
453
|
-
readonly perc: "/__l5e/assets-v1/abfad1e6-998b-47a8-8c98-6f511c151143/tape-dust-perc.flac";
|
|
454
|
-
readonly rim: "/__l5e/assets-v1/c86262d8-9711-41d4-b866-19a1ffcaf443/tape-dust-rim.flac";
|
|
455
|
-
readonly sd: "/__l5e/assets-v1/2d1090cf-0284-4c33-9ba2-430c5c7b4730/tape-dust-sd.flac";
|
|
456
|
-
};
|
|
457
|
-
};
|
|
458
|
-
readonly "hard-cell": {
|
|
459
|
-
readonly name: "Hard Cell";
|
|
460
|
-
readonly blurb: "Overdriven and bit-crushed. Industrial techno with no headroom left.";
|
|
461
|
-
readonly family: "Character";
|
|
462
|
-
readonly credit: "Synthesised for Squelchy";
|
|
463
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
464
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
465
|
-
readonly voices: {
|
|
466
|
-
readonly bd: "/__l5e/assets-v1/d8f1c5cf-8e07-4a1e-a519-d7f69781329b/hard-cell-bd.flac";
|
|
467
|
-
readonly ch: "/__l5e/assets-v1/c3275e9a-dd79-4ac8-b4b9-84ebe25b5529/hard-cell-ch.flac";
|
|
468
|
-
readonly clap: "/__l5e/assets-v1/160a5d2c-01e0-49da-a998-149a0cf08317/hard-cell-clap.flac";
|
|
469
|
-
readonly cym: "/__l5e/assets-v1/910f3623-0209-439f-9e34-0c0f842bc78f/hard-cell-cym.flac";
|
|
470
|
-
readonly ht: "/__l5e/assets-v1/36f5b37b-9d44-49b8-a57b-bf5d2a1aa523/hard-cell-ht.flac";
|
|
471
|
-
readonly lt: "/__l5e/assets-v1/6065e512-578b-477f-88d9-49b3ccccacea/hard-cell-lt.flac";
|
|
472
|
-
readonly mt: "/__l5e/assets-v1/4e33c147-b8da-4b03-abca-4fd254d5006d/hard-cell-mt.flac";
|
|
473
|
-
readonly oh: "/__l5e/assets-v1/3e5b3bce-f21b-4ecb-8f28-375ce871427f/hard-cell-oh.flac";
|
|
474
|
-
readonly perc: "/__l5e/assets-v1/ab27e781-3d41-4e04-8f44-f7a568543586/hard-cell-perc.flac";
|
|
475
|
-
readonly rim: "/__l5e/assets-v1/ea2989c5-2354-4574-ae38-4786deeee151/hard-cell-rim.flac";
|
|
476
|
-
readonly sd: "/__l5e/assets-v1/5bd3dca9-bdb7-4618-8e0b-9ed1c0b062c7/hard-cell-sd.flac";
|
|
477
|
-
};
|
|
478
|
-
};
|
|
479
|
-
readonly "rx5-fm": {
|
|
480
|
-
readonly name: "Yamaha RX5";
|
|
481
|
-
readonly blurb: "FM percussion \u2014 glassy, bell-like, unmistakably late-eighties digital.";
|
|
482
|
-
readonly family: "Digital";
|
|
483
|
-
readonly credit: "MckAudio RX5 sample pack, dedicated to the public domain (CC0)";
|
|
484
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
485
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
486
|
-
readonly voices: {
|
|
487
|
-
readonly bd: "/__l5e/assets-v1/22b27f9f-d301-48e2-a0e4-e6b6e538ec31/rx5-fm-bd.flac";
|
|
488
|
-
readonly ch: "/__l5e/assets-v1/236fb4f5-7d2a-48c0-be18-bc3777a6be91/rx5-fm-ch.flac";
|
|
489
|
-
readonly clap: "/__l5e/assets-v1/58402fc0-996c-4577-9074-bb40b585c26e/rx5-fm-clap.flac";
|
|
490
|
-
readonly cym: "/__l5e/assets-v1/d3e6ba9b-a2b8-4467-8923-97594723720e/rx5-fm-cym.flac";
|
|
491
|
-
readonly ht: "/__l5e/assets-v1/a5edef5d-7861-4b3a-99bc-10ece111ca64/rx5-fm-ht.flac";
|
|
492
|
-
readonly lt: "/__l5e/assets-v1/7151d30d-fe90-4ac5-9c9f-e91a808a1efa/rx5-fm-lt.flac";
|
|
493
|
-
readonly mt: "/__l5e/assets-v1/46119925-9ecd-431a-94ee-2135c8ce4382/rx5-fm-mt.flac";
|
|
494
|
-
readonly oh: "/__l5e/assets-v1/9fe4938f-fda7-43f8-84c6-c53325fd674c/rx5-fm-oh.flac";
|
|
495
|
-
readonly perc: "/__l5e/assets-v1/1aa471d4-4737-45e6-9070-6301892dcdfa/rx5-fm-perc.flac";
|
|
496
|
-
readonly rim: "/__l5e/assets-v1/2b0409a0-1aa6-41a4-9593-553247a2e624/rx5-fm-rim.flac";
|
|
497
|
-
readonly sd: "/__l5e/assets-v1/3d9c426c-7783-4106-940f-1e6b6405bdd5/rx5-fm-sd.flac";
|
|
498
|
-
};
|
|
499
|
-
};
|
|
500
|
-
readonly "micro-click": {
|
|
501
|
-
readonly name: "Micro Click";
|
|
502
|
-
readonly blurb: "Clicks, ticks and pops. Minimal and micro-house, nothing sustains.";
|
|
503
|
-
readonly family: "Digital";
|
|
504
|
-
readonly credit: "Synthesised for Squelchy";
|
|
505
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
506
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
507
|
-
readonly voices: {
|
|
508
|
-
readonly bd: "/__l5e/assets-v1/58e3ce80-d300-47c6-8d79-52b00376550f/micro-click-bd.flac";
|
|
509
|
-
readonly ch: "/__l5e/assets-v1/1c12e400-5c5f-4aae-b006-5a3fe3c6ef2c/micro-click-ch.flac";
|
|
510
|
-
readonly clap: "/__l5e/assets-v1/b1f402f6-a85d-421b-9684-4b78719726d5/micro-click-clap.flac";
|
|
511
|
-
readonly cym: "/__l5e/assets-v1/fe501055-43d7-427f-9ab4-5efd0423292e/micro-click-cym.flac";
|
|
512
|
-
readonly ht: "/__l5e/assets-v1/3aab93cb-cd84-4600-a3e5-458fa74a2a86/micro-click-ht.flac";
|
|
513
|
-
readonly lt: "/__l5e/assets-v1/b09a0d61-c9a2-4b31-b0f2-10d3c10ef83c/micro-click-lt.flac";
|
|
514
|
-
readonly mt: "/__l5e/assets-v1/988e7a56-e914-43ad-aff1-71ec3a04b8e4/micro-click-mt.flac";
|
|
515
|
-
readonly oh: "/__l5e/assets-v1/122a3f93-4542-471b-b390-996665248653/micro-click-oh.flac";
|
|
516
|
-
readonly perc: "/__l5e/assets-v1/cae413d7-a68c-411a-a4b4-b7c20a83946d/micro-click-perc.flac";
|
|
517
|
-
readonly rim: "/__l5e/assets-v1/41922292-1c6e-4bef-ac8e-fa1ce09eefca/micro-click-rim.flac";
|
|
518
|
-
readonly sd: "/__l5e/assets-v1/6218ccdd-cba1-466e-af8b-665d7a2d4640/micro-click-sd.flac";
|
|
519
|
-
};
|
|
520
|
-
};
|
|
521
|
-
readonly "deep-analogue": {
|
|
522
|
-
readonly name: "Deep Analogue";
|
|
523
|
-
readonly blurb: "Long sub kick, soft snare, warm hats. Deep house at three in the morning.";
|
|
524
|
-
readonly family: "Acoustic";
|
|
525
|
-
readonly credit: "Synthesised for Squelchy";
|
|
526
|
-
readonly license: "CC0 1.0 / public domain \u2014 free to use, no attribution required";
|
|
527
|
-
readonly licenseUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
528
|
-
readonly voices: {
|
|
529
|
-
readonly bd: "/__l5e/assets-v1/93c55e12-44f1-4cf9-8b19-82833257a68f/deep-analogue-bd.flac";
|
|
530
|
-
readonly ch: "/__l5e/assets-v1/7c881111-83d8-4c1a-b4af-4f09d2a09f4b/deep-analogue-ch.flac";
|
|
531
|
-
readonly clap: "/__l5e/assets-v1/e8b67bb8-8f7f-4b87-9ee4-d9cb7bc43efe/deep-analogue-clap.flac";
|
|
532
|
-
readonly cym: "/__l5e/assets-v1/b329f9e1-3eb0-471c-b7c7-8ad7f639323f/deep-analogue-cym.flac";
|
|
533
|
-
readonly ht: "/__l5e/assets-v1/a381a6b5-fd09-4fa6-b88e-86a29b8f25d9/deep-analogue-ht.flac";
|
|
534
|
-
readonly lt: "/__l5e/assets-v1/c9ebc90a-20aa-4f76-9e79-f440258d4bac/deep-analogue-lt.flac";
|
|
535
|
-
readonly mt: "/__l5e/assets-v1/5e1b803c-748e-4f09-bed7-c7b4511dc8b0/deep-analogue-mt.flac";
|
|
536
|
-
readonly oh: "/__l5e/assets-v1/289d67f2-6d55-4a04-8607-302442465e81/deep-analogue-oh.flac";
|
|
537
|
-
readonly perc: "/__l5e/assets-v1/8ef1f592-a3a4-45a5-9ea4-80362953aee4/deep-analogue-perc.flac";
|
|
538
|
-
readonly rim: "/__l5e/assets-v1/102a1c23-6e5f-468e-95c8-e414ce849884/deep-analogue-rim.flac";
|
|
539
|
-
readonly sd: "/__l5e/assets-v1/9be98c57-13c4-4337-bb2f-53c0b2ff7150/deep-analogue-sd.flac";
|
|
540
|
-
};
|
|
541
|
-
};
|
|
331
|
+
create(ctx: BaseAudioContext, kit: LoadedSampleSet, key: VoiceKey, opts?: SampleVoiceOptions): VoiceInstance<Note | boolean>;
|
|
542
332
|
};
|
|
543
|
-
export type SampleSetId = keyof typeof SampleSets;
|
|
544
333
|
export interface AcidFilterParams {
|
|
545
334
|
/** 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. */
|
|
546
335
|
note?: Note;
|
|
@@ -550,7 +339,7 @@ export interface AcidFilterParams {
|
|
|
550
339
|
envMod?: number;
|
|
551
340
|
/** Accent. Intensifies the envelope sweep for more aggressive acid sounds. Range 0–1. Default 0.5. */
|
|
552
341
|
accent?: number;
|
|
553
|
-
/** Decay Time.
|
|
342
|
+
/** Decay Time. Time for the exponential filter sweep to fall 60 dB after each trigger. Short = plucky squelch, long = slow, singing sweeps. Range 0.2–5 s (log). Default 0.92. */
|
|
554
343
|
decay?: Seconds;
|
|
555
344
|
}
|
|
556
345
|
export type AcidFilterInputs = {
|
|
@@ -900,13 +689,13 @@ export type EnvelopeFollowerProps = {
|
|
|
900
689
|
};
|
|
901
690
|
export declare const EnvelopeFollower: LibModule<EnvelopeFollowerParams, EnvelopeFollowerInputs, EnvelopeFollowerOutputs, EnvelopeFollowerProps>;
|
|
902
691
|
export interface EnvelopeParams {
|
|
903
|
-
/** Attack. Time for
|
|
692
|
+
/** Attack. Time for the level to rise from zero to full, in a straight line. Range 0.001–2 s (log). Default 0.01. */
|
|
904
693
|
attack?: Seconds;
|
|
905
|
-
/** Decay. Time to fall from peak to sustain level
|
|
694
|
+
/** 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. */
|
|
906
695
|
decay?: Seconds;
|
|
907
|
-
/** Sustain. Level held while the note is held. 0 = plucky, 1 = organ-like. Range 0–1. Default 0.7. */
|
|
696
|
+
/** 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. */
|
|
908
697
|
sustain?: number;
|
|
909
|
-
/** Release. Time to fade to silence after note is released. Range 0.001–
|
|
698
|
+
/** 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. */
|
|
910
699
|
release?: Seconds;
|
|
911
700
|
/** 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. */
|
|
912
701
|
depth?: Semitones;
|
|
@@ -1563,13 +1352,13 @@ export type SaturatorProps = {
|
|
|
1563
1352
|
};
|
|
1564
1353
|
export declare const Saturator: LibModule<SaturatorParams, SaturatorInputs, SaturatorOutputs, SaturatorProps>;
|
|
1565
1354
|
export interface ShimmerParams {
|
|
1566
|
-
/** Reverb Decay. RT60 of the reverb tank in seconds. Range 0.5–10 s (log). Default 3. */
|
|
1355
|
+
/** 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. */
|
|
1567
1356
|
decay?: Seconds;
|
|
1568
1357
|
/** 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. */
|
|
1569
1358
|
pitch?: Semitones;
|
|
1570
1359
|
/** Dry/Wet Mix. Equal-power balance between dry signal and shimmer output — independent of the regen amount. Range 0–1. Default 0.5. */
|
|
1571
1360
|
mix?: number;
|
|
1572
|
-
/** Shimmer Regen.
|
|
1361
|
+
/** 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. At PITCH 0 the loop is plain reverb feedback and the regen is held under its self-oscillation edge, so 0.95 is a near-frozen, slowly breathing tail that always dies away. Range 0–0.95. Default 0.5. */
|
|
1573
1362
|
shimmer?: number;
|
|
1574
1363
|
}
|
|
1575
1364
|
export type ShimmerInputs = {
|