@jpdutoit/squelchy 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +73 -0
- package/chunk-NDUSYSHF.js +87 -0
- package/chunk-NDUSYSHF.js.map +7 -0
- package/docs/MODULES.md +1244 -0
- package/index.d.ts +1946 -0
- package/index.js +4846 -0
- package/index.js.map +7 -0
- package/meta.json +4492 -0
- package/package.json +43 -0
- package/worklets-inline-MUVFLGPY.js +60 -0
- package/worklets-inline-MUVFLGPY.js.map +7 -0
package/index.d.ts
ADDED
|
@@ -0,0 +1,1946 @@
|
|
|
1
|
+
interface ParamSpec {
|
|
2
|
+
/** Optional convenience for modules whose panel maps 1:1 onto params.
|
|
3
|
+
* When the UI diverges (connection-dependent labels/ranges), omit it and
|
|
4
|
+
* keep labels + hover tips in the UI layer (see lfo). Never shipped in docs. */
|
|
5
|
+
label?: string;
|
|
6
|
+
default: number | string | boolean;
|
|
7
|
+
/** One-shot actions are not params: they are rising edges on a gate port
|
|
8
|
+
* (panel buttons use `pulse()` from src/lib/dsp/pulse.ts). */
|
|
9
|
+
kind?: "number" | "enum";
|
|
10
|
+
min?: number;
|
|
11
|
+
max?: number;
|
|
12
|
+
scale?: "linear" | "log" | "sqrt";
|
|
13
|
+
unit?: string;
|
|
14
|
+
options?: readonly string[];
|
|
15
|
+
/** Backing AudioParam, resolved like ports: key in the createNodes record
|
|
16
|
+
* + AudioParam property (or worklet parameter) name. Declare ONLY when the
|
|
17
|
+
* param value is written to that AudioParam 1:1 — no conversion, no split.
|
|
18
|
+
* The library exposes it as `instance.params.<key>` for native automation. */
|
|
19
|
+
node?: string;
|
|
20
|
+
field?: string;
|
|
21
|
+
short: string;
|
|
22
|
+
long: string;
|
|
23
|
+
}
|
|
24
|
+
interface PortDefinition {
|
|
25
|
+
type: "input" | "output" | "modulation" | "trigger";
|
|
26
|
+
label: string;
|
|
27
|
+
name: string;
|
|
28
|
+
desc: string;
|
|
29
|
+
/** Key in the createNodes record that this port maps to.
|
|
30
|
+
* Omit for trigger ports which are routed by the engine without audio nodes. */
|
|
31
|
+
node?: string;
|
|
32
|
+
/** For modulation ports: the AudioParam property name on the target node (e.g. 'frequency', 'gain'). */
|
|
33
|
+
field?: string;
|
|
34
|
+
/** Signal semantics — determines port and cable colour.
|
|
35
|
+
* 'audio' = emerald, 'pitch' = amber, 'gate' = orange, 'modulation' = violet. */
|
|
36
|
+
signal: "audio" | "pitch" | "gate" | "modulation";
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Register every bundled worklet processor on `ctx`. Required before any
|
|
40
|
+
* module's create() on that context. Safe to call twice or concurrently —
|
|
41
|
+
* subsequent calls return the same promise.
|
|
42
|
+
*
|
|
43
|
+
* Processors are inlined as minified source strings and loaded via blob URLs,
|
|
44
|
+
* so the package needs zero fetches and zero consumer asset setup. Consumers
|
|
45
|
+
* under a strict CSP need `worker-src blob:` allowed.
|
|
46
|
+
*/
|
|
47
|
+
export declare function preload(ctx: BaseAudioContext, opts?: {
|
|
48
|
+
allWorklets?: boolean;
|
|
49
|
+
}): Promise<void>;
|
|
50
|
+
export type ParamValue = number | string | boolean | number[] | boolean[][];
|
|
51
|
+
/** Runtime metadata — only what code needs. Human-facing text (names,
|
|
52
|
+
* descriptions, labels) is stripped from the bundle; it lives in the
|
|
53
|
+
* generated docs/MODULES.md, meta.json and the .d.ts JSDoc instead. */
|
|
54
|
+
export interface ModuleMeta {
|
|
55
|
+
type: string;
|
|
56
|
+
ports: Record<string, Pick<PortDefinition, "type" | "signal">>;
|
|
57
|
+
params: Record<string, Pick<ParamSpec, "default" | "kind" | "min" | "max" | "scale" | "options" | "node" | "field">>;
|
|
58
|
+
}
|
|
59
|
+
type AnyParams = Record<string, ParamValue>;
|
|
60
|
+
type PortMap = Record<string, AudioNode>;
|
|
61
|
+
type InputMap = Record<string, AudioNode | AudioParam>;
|
|
62
|
+
interface InstanceApi<P extends object = AnyParams, In extends InputMap = InputMap, Out extends PortMap = PortMap> {
|
|
63
|
+
/** Native connect target behind an input slug: AudioParam or AudioNode. */
|
|
64
|
+
input<K extends keyof In & string>(slug: K): In[K];
|
|
65
|
+
output<K extends keyof Out & string>(slug: K): Out[K];
|
|
66
|
+
/** Change a parameter now. For timed changes (ramps, curves, schedules)
|
|
67
|
+
* use the native AudioParam in `params` — enums and derived params
|
|
68
|
+
* (curves, filter banks) are set()-only by design. */
|
|
69
|
+
set<K extends keyof P & string>(key: K, value: Exclude<P[K], undefined>): void;
|
|
70
|
+
dispose(): void;
|
|
71
|
+
}
|
|
72
|
+
/** A module instance is the API above plus one native-feeling property per
|
|
73
|
+
* port: camelCased slug → the same AudioParam/AudioNode input()/output()
|
|
74
|
+
* returns, so `lfo.out.connect(vco.modDetune)` reads like a native node.
|
|
75
|
+
* Slugs that would collide (with each other after camelCasing, or with a
|
|
76
|
+
* reserved method name) are simply not exposed — the build refuses them. */
|
|
77
|
+
export type ModuleInstance<P extends object = AnyParams, In extends InputMap = InputMap, Out extends PortMap = PortMap, Props extends object = Record<never, never>> = InstanceApi<P, In, Out> & Props;
|
|
78
|
+
export interface LibModule<P extends object = AnyParams, In extends InputMap = InputMap, Out extends PortMap = PortMap, Props extends object = Record<never, never>> {
|
|
79
|
+
meta: ModuleMeta;
|
|
80
|
+
create(ctx: BaseAudioContext, params?: Partial<P>): ModuleInstance<P, In, Out, Props>;
|
|
81
|
+
}
|
|
82
|
+
declare const unit: unique symbol;
|
|
83
|
+
type Brand<U extends string> = number & {
|
|
84
|
+
readonly [unit]: U;
|
|
85
|
+
};
|
|
86
|
+
/** Absolute key position, MIDI datum (69 = A4). */
|
|
87
|
+
export type Note = Brand<"note">;
|
|
88
|
+
/** Relative pitch offset (12 = one octave). Also the V/OCT signal scale. */
|
|
89
|
+
export type Semitones = Brand<"semitone">;
|
|
90
|
+
/** 1/100 semitone, relative. */
|
|
91
|
+
export type Cents = Brand<"cents">;
|
|
92
|
+
/** Cycles per second. */
|
|
93
|
+
export type Hz = Brand<"Hz">;
|
|
94
|
+
/** Audio time or duration in seconds (ctx.currentTime domain). */
|
|
95
|
+
export type Seconds = Brand<"s">;
|
|
96
|
+
export type Milliseconds = Brand<"ms">;
|
|
97
|
+
export type Decibels = Brand<"dB">;
|
|
98
|
+
/** Musical position or length in quarter-note beats. */
|
|
99
|
+
export type Beats = Brand<"beats">;
|
|
100
|
+
export declare const sec: (v: number) => Seconds;
|
|
101
|
+
export declare const ms: (v: number) => Milliseconds;
|
|
102
|
+
export declare const beats: (v: number) => Beats;
|
|
103
|
+
export declare const hz: (v: number) => Hz;
|
|
104
|
+
export declare const semitones: (v: number) => Semitones;
|
|
105
|
+
export declare const cents: (v: number) => Cents;
|
|
106
|
+
export declare const db: (v: number) => Decibels;
|
|
107
|
+
export declare const noteToHz: (n: Note) => Hz;
|
|
108
|
+
export declare const hzToNote: (f: Hz) => Note;
|
|
109
|
+
export declare const transpose: (n: Note, by: Semitones) => Note;
|
|
110
|
+
/** Distance from `a` to `b`. */
|
|
111
|
+
export declare const interval: (a: Note, b: Note) => Semitones;
|
|
112
|
+
export declare const centsToSemitones: (c: Cents) => Semitones;
|
|
113
|
+
export declare const msToSeconds: (ms: Milliseconds) => Seconds;
|
|
114
|
+
export declare const dbToGain: (db: Decibels) => number;
|
|
115
|
+
export declare const gainToDb: (g: number) => Decibels;
|
|
116
|
+
/** `ctx.currentTime`, typed. */
|
|
117
|
+
export declare const now: (ctx: BaseAudioContext) => Seconds;
|
|
118
|
+
declare const signal: unique symbol;
|
|
119
|
+
/** An AudioNode whose stream carries quantity Q. `Signal<Note>` is a V/OCT
|
|
120
|
+
* pitch signal (absolute key position, 69 = A4); factor signals are plain
|
|
121
|
+
* `AudioNode` (no wrapper — audio, gates, clocks and CV connect freely). */
|
|
122
|
+
export type Signal<Q> = AudioNode & {
|
|
123
|
+
readonly [signal]: Q;
|
|
124
|
+
};
|
|
125
|
+
/** Reinterpret a node as a pitch signal — the greppable escape hatch for
|
|
126
|
+
* deliberate cross-quantity patches. */
|
|
127
|
+
export declare const asPitch: (n: AudioNode) => Signal<Note>;
|
|
128
|
+
/** Where a playback starts. Default 'bar' = next bar line (beat 0 if stopped). */
|
|
129
|
+
export type StartAt = "now" | "beat" | "bar" | {
|
|
130
|
+
bar: number;
|
|
131
|
+
} | {
|
|
132
|
+
beat: Beats;
|
|
133
|
+
};
|
|
134
|
+
/** Rich step form, for when a plain value isn't enough. */
|
|
135
|
+
export interface StepObject<V> {
|
|
136
|
+
value: V;
|
|
137
|
+
/** 0..1, default 1. */
|
|
138
|
+
velocity?: number;
|
|
139
|
+
/** Gate length in steps, default = the playback's `gate`. */
|
|
140
|
+
length?: number;
|
|
141
|
+
}
|
|
142
|
+
/** A pattern step: a value, a rest (null/undefined/false/0/'.'/'-'), or a StepObject. */
|
|
143
|
+
export type Step<V> = V | StepObject<V> | null | undefined | false;
|
|
144
|
+
/** What a voice receives per hit. */
|
|
145
|
+
export interface Hit<V = unknown> {
|
|
146
|
+
/** Audio time the sound starts (ctx.currentTime domain). */
|
|
147
|
+
time: Seconds;
|
|
148
|
+
/** Musical position of the hit, in beats. */
|
|
149
|
+
beat: Beats;
|
|
150
|
+
/** Step index within the pattern. */
|
|
151
|
+
step: number;
|
|
152
|
+
/** Loop iteration, 0-based. */
|
|
153
|
+
cycle: number;
|
|
154
|
+
/** The step's value (true for `steps('x..x')`, a midi number for melodies, …). */
|
|
155
|
+
value: V;
|
|
156
|
+
velocity: number;
|
|
157
|
+
/** Gate length in seconds. */
|
|
158
|
+
duration: Seconds;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Anything that makes sound at a time. Voice objects expose `trigger`; a plain
|
|
162
|
+
* function `(time, hit) => void` works too, so any existing Web Audio code
|
|
163
|
+
* (e.g. `(t) => osc.start(t)`) can be driven by a pattern.
|
|
164
|
+
*/
|
|
165
|
+
export type Voice<V = unknown> = {
|
|
166
|
+
trigger(time: Seconds, hit?: Partial<Hit<V>>): void;
|
|
167
|
+
} | ((time: Seconds, hit: Hit<V>) => void);
|
|
168
|
+
export interface PlayOptions<V> {
|
|
169
|
+
/** Step length in beats. Default 0.25 (16ths). */
|
|
170
|
+
every?: Beats;
|
|
171
|
+
/** Where to start. Default 'bar'. */
|
|
172
|
+
start?: StartAt;
|
|
173
|
+
/** true = forever (default), false = once, n = n times. */
|
|
174
|
+
loop?: boolean | number;
|
|
175
|
+
/** Gate length as a fraction of a step. Default 0.5. */
|
|
176
|
+
gate?: number;
|
|
177
|
+
/** 0..1 — delays every odd step by swing × half a step. Default 0. */
|
|
178
|
+
swing?: number;
|
|
179
|
+
/** Visual tap for this playback (fires when the hit is audible). */
|
|
180
|
+
onHit?: (hit: Hit<V>) => void;
|
|
181
|
+
}
|
|
182
|
+
export interface Playback<V> {
|
|
183
|
+
/** Swap the pattern; takes effect at the next cycle start, so it stays in time. */
|
|
184
|
+
set(pattern: readonly Step<V>[]): void;
|
|
185
|
+
/** Stop scheduling. With a StartAt, stops at that musical boundary instead of now. */
|
|
186
|
+
stop(at?: StartAt): void;
|
|
187
|
+
readonly done: boolean;
|
|
188
|
+
}
|
|
189
|
+
export interface TransportOptions {
|
|
190
|
+
bpm?: number;
|
|
191
|
+
beatsPerBar?: number;
|
|
192
|
+
/** Seconds scheduled ahead. Default 0.1. */
|
|
193
|
+
lookahead?: Seconds;
|
|
194
|
+
/** 'auto' = internal 25 ms timer; 'manual' = you call tick() (tests, custom loops). */
|
|
195
|
+
clock?: "auto" | "manual";
|
|
196
|
+
}
|
|
197
|
+
export interface Transport {
|
|
198
|
+
readonly ctx: BaseAudioContext;
|
|
199
|
+
bpm: number;
|
|
200
|
+
readonly beatsPerBar: number;
|
|
201
|
+
readonly running: boolean;
|
|
202
|
+
/** Start at audio time `when` (default: a hair from now). Beat 0 = that moment. */
|
|
203
|
+
start(when?: Seconds): void;
|
|
204
|
+
/** Stop scheduling and cancel pending taps. Already-written events (≤ lookahead) still sound. */
|
|
205
|
+
stop(): void;
|
|
206
|
+
/** Musical position at an audio time. */
|
|
207
|
+
beatAt(time: Seconds): Beats;
|
|
208
|
+
/** Audio time of a musical position. */
|
|
209
|
+
timeAt(beat: Beats): Seconds;
|
|
210
|
+
/** Resolve a StartAt to a beat, from the current position. */
|
|
211
|
+
resolve(at: StartAt): Beats;
|
|
212
|
+
/** Play a pattern array through a voice. */
|
|
213
|
+
play<V>(pattern: readonly Step<V>[], voice: Voice<V>, opts?: PlayOptions<V>): Playback<V>;
|
|
214
|
+
/** Run `fn(time)` once at a musical position — for automation, e.g. `vca.set('gain', 0, time)`. */
|
|
215
|
+
at(when: StartAt | Beats, fn: (time: Seconds) => void): () => void;
|
|
216
|
+
/** Global visual tap: every hit of every playback, fired when audible. Returns unsubscribe. */
|
|
217
|
+
onHit(cb: (hit: Hit) => void): () => void;
|
|
218
|
+
/** Schedule everything due inside the lookahead window. Auto-called in 'auto' mode. */
|
|
219
|
+
tick(): void;
|
|
220
|
+
dispose(): void;
|
|
221
|
+
}
|
|
222
|
+
export declare function isRest(v: unknown): boolean;
|
|
223
|
+
export declare function createTransport(ctx: BaseAudioContext, opts?: TransportOptions): Transport;
|
|
224
|
+
/** `steps('x... x... x..x x...')` → boolean[]. x/X = hit, anything else = rest; spaces/| ignored. */
|
|
225
|
+
export declare function steps(s: string): boolean[];
|
|
226
|
+
/** 'A4' → 69, 'C4' → 60, 'F#2' → 42; a number passes through typed. Midi numbers are the pitch unit everywhere (V/Oct = semitones). */
|
|
227
|
+
export declare function note(name: string | number): Note;
|
|
228
|
+
/** `notes('C3 . E3 G3 - C4')` → (Note | null)[]. '.'/'-' = rest. */
|
|
229
|
+
export declare function notes(s: string): (Note | null)[];
|
|
230
|
+
export interface VoiceInstance<V = unknown> {
|
|
231
|
+
output: AudioNode;
|
|
232
|
+
trigger(time: Seconds, hit?: Partial<Hit<V>>): void;
|
|
233
|
+
connect<T extends AudioNode>(dest: T): T;
|
|
234
|
+
disconnect(): void;
|
|
235
|
+
}
|
|
236
|
+
export declare const Kick: {
|
|
237
|
+
create(ctx: BaseAudioContext): VoiceInstance;
|
|
238
|
+
};
|
|
239
|
+
export declare const Snare: {
|
|
240
|
+
create(ctx: BaseAudioContext): VoiceInstance;
|
|
241
|
+
};
|
|
242
|
+
export declare const Hat: {
|
|
243
|
+
create(ctx: BaseAudioContext): VoiceInstance;
|
|
244
|
+
};
|
|
245
|
+
/**
|
|
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.
|
|
249
|
+
*/
|
|
250
|
+
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
|
+
};
|
|
257
|
+
};
|
|
258
|
+
export declare function pulse(target: AudioNode, when?: number): void;
|
|
259
|
+
/** Canonical percussion voice keys shared by every sample set and by any
|
|
260
|
+
* module that plays percussion (DRUMS, 808, and anything added later).
|
|
261
|
+
*
|
|
262
|
+
* A set may omit voices; `resolveVoice` in sampleBank.ts walks a fallback
|
|
263
|
+
* chain so a module never goes silent because a kit lacks, say, an open hat.
|
|
264
|
+
*/
|
|
265
|
+
export declare const VOICE_KEYS: readonly [
|
|
266
|
+
"bd",
|
|
267
|
+
"sd",
|
|
268
|
+
"rim",
|
|
269
|
+
"clap",
|
|
270
|
+
"ch",
|
|
271
|
+
"oh",
|
|
272
|
+
"lt",
|
|
273
|
+
"mt",
|
|
274
|
+
"ht",
|
|
275
|
+
"cym",
|
|
276
|
+
"perc"
|
|
277
|
+
];
|
|
278
|
+
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
|
+
export interface SampleSetInfo {
|
|
282
|
+
name: string;
|
|
283
|
+
blurb: string;
|
|
284
|
+
family: "Machines" | "Acoustic" | "Digital" | "Character";
|
|
285
|
+
credit: string;
|
|
286
|
+
license: string;
|
|
287
|
+
licenseUrl: string;
|
|
288
|
+
/** Root-relative sample path per voice; resolved against baseUrl on load. */
|
|
289
|
+
voices: Partial<Record<VoiceKey, string>>;
|
|
290
|
+
}
|
|
291
|
+
export interface LoadedSampleSet {
|
|
292
|
+
set: SampleSetInfo;
|
|
293
|
+
buffers: Partial<Record<VoiceKey, AudioBuffer>>;
|
|
294
|
+
/** Buffer for a voice, walking the fallback chain when the kit lacks it. */
|
|
295
|
+
buffer(key: VoiceKey): AudioBuffer | undefined;
|
|
296
|
+
}
|
|
297
|
+
/** Fetch + decode every voice of a kit in parallel. */
|
|
298
|
+
export declare function loadSampleSet(ctx: BaseAudioContext, set: SampleSetInfo, opts?: {
|
|
299
|
+
baseUrl?: string;
|
|
300
|
+
fetch?: typeof fetch;
|
|
301
|
+
}): Promise<LoadedSampleSet>;
|
|
302
|
+
/** A one-sample voice. velocity 0..1 scales level; `value` (semitones) repitches. */
|
|
303
|
+
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
|
+
};
|
|
535
|
+
};
|
|
536
|
+
export type SampleSetId = keyof typeof SampleSets;
|
|
537
|
+
export interface AcidFilterParams {
|
|
538
|
+
/** 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
|
+
note?: Note;
|
|
540
|
+
/** Resonance. Resonance amount, 0–100% of travel. Creates the characteristic 303 "wow" at high settings. Like the hardware, there is no resonance CV input — the knob is the only control. Range 0–15 (sqrt). Default 8. */
|
|
541
|
+
resonance?: number;
|
|
542
|
+
/** Envelope Mod. How much the triggered envelope sweeps the filter cutoff. Range 0–1. Default 0.7. */
|
|
543
|
+
envMod?: number;
|
|
544
|
+
/** Accent. Intensifies the envelope sweep for more aggressive acid sounds. Range 0–1. Default 0.5. */
|
|
545
|
+
accent?: number;
|
|
546
|
+
/** Decay Time. How quickly the filter envelope falls. Short = plucky, long = sustained. Range 0.05–1 s (log). Default 0.2. */
|
|
547
|
+
decay?: Seconds;
|
|
548
|
+
}
|
|
549
|
+
export type AcidFilterInputs = {
|
|
550
|
+
"in": AudioNode;
|
|
551
|
+
"trigger": AudioNode;
|
|
552
|
+
"modFreq": AudioNode;
|
|
553
|
+
};
|
|
554
|
+
export type AcidFilterOutputs = {
|
|
555
|
+
"out": AudioNode;
|
|
556
|
+
};
|
|
557
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
558
|
+
export type AcidFilterProps = {
|
|
559
|
+
"in": AudioNode;
|
|
560
|
+
"out": AudioNode;
|
|
561
|
+
"trigger": AudioNode;
|
|
562
|
+
"modFreq": AudioNode;
|
|
563
|
+
readonly params: {
|
|
564
|
+
/** Cutoff Note. Native AudioParam — value is note 1:1. */
|
|
565
|
+
"note": AudioParam;
|
|
566
|
+
/** Decay Time. Native AudioParam — value is s 1:1. */
|
|
567
|
+
"decay": AudioParam;
|
|
568
|
+
};
|
|
569
|
+
};
|
|
570
|
+
export declare const AcidFilter: LibModule<AcidFilterParams, AcidFilterInputs, AcidFilterOutputs, AcidFilterProps>;
|
|
571
|
+
export interface AutoPanParams {
|
|
572
|
+
/** Rate. Panning LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Range 0.1–10 Hz. Default 2. */
|
|
573
|
+
rate?: Hz;
|
|
574
|
+
/** Depth. How far the pan sweeps from left to right. 1 = full stereo sweep. modDepth sums into the same AudioParam. Range 0–1. Default 0.8. */
|
|
575
|
+
depth?: number;
|
|
576
|
+
/** LFO Shape. Waveform shape: sine for smooth, triangle for linear, square for hard left/right. Default "sine". */
|
|
577
|
+
shape?: "sine" | "triangle" | "square";
|
|
578
|
+
}
|
|
579
|
+
export type AutoPanInputs = {
|
|
580
|
+
"in": AudioNode;
|
|
581
|
+
"modRate": AudioParam;
|
|
582
|
+
"modDepth": AudioParam;
|
|
583
|
+
};
|
|
584
|
+
export type AutoPanOutputs = {
|
|
585
|
+
"out": AudioNode;
|
|
586
|
+
};
|
|
587
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
588
|
+
export type AutoPanProps = {
|
|
589
|
+
"in": AudioNode;
|
|
590
|
+
"out": AudioNode;
|
|
591
|
+
"modRate": AudioParam;
|
|
592
|
+
"modDepth": AudioParam;
|
|
593
|
+
readonly params: {
|
|
594
|
+
/** Rate. Native AudioParam — value is Hz 1:1. */
|
|
595
|
+
"rate": AudioParam;
|
|
596
|
+
/** Depth. Native AudioParam — value is the param value 1:1. */
|
|
597
|
+
"depth": AudioParam;
|
|
598
|
+
};
|
|
599
|
+
};
|
|
600
|
+
export declare const AutoPan: LibModule<AutoPanParams, AutoPanInputs, AutoPanOutputs, AutoPanProps>;
|
|
601
|
+
export interface BitcrusherParams {
|
|
602
|
+
/** Bit Depth. Number of bits for quantization. Lower = crunchier, more lo-fi. Range 1–16. Default 8. */
|
|
603
|
+
bits?: number;
|
|
604
|
+
/** 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. */
|
|
605
|
+
rate?: number;
|
|
606
|
+
/** Dry/Wet Mix. Balance between clean and crushed signal. Range 0–1. Default 1. */
|
|
607
|
+
mix?: number;
|
|
608
|
+
}
|
|
609
|
+
export type BitcrusherInputs = {
|
|
610
|
+
"in": AudioNode;
|
|
611
|
+
};
|
|
612
|
+
export type BitcrusherOutputs = {
|
|
613
|
+
"out": AudioNode;
|
|
614
|
+
};
|
|
615
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
616
|
+
export type BitcrusherProps = {
|
|
617
|
+
"in": AudioNode;
|
|
618
|
+
"out": AudioNode;
|
|
619
|
+
readonly params: {
|
|
620
|
+
/** Bit Depth. Native AudioParam — value is the param value 1:1. */
|
|
621
|
+
"bits": AudioParam;
|
|
622
|
+
/** Sample Rate. Native AudioParam — value is the param value 1:1. */
|
|
623
|
+
"rate": AudioParam;
|
|
624
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
625
|
+
"mix": AudioParam;
|
|
626
|
+
};
|
|
627
|
+
};
|
|
628
|
+
export declare const Bitcrusher: LibModule<BitcrusherParams, BitcrusherInputs, BitcrusherOutputs, BitcrusherProps>;
|
|
629
|
+
export interface ChorusParams {
|
|
630
|
+
/** 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. */
|
|
631
|
+
rate?: Hz;
|
|
632
|
+
/** 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. */
|
|
633
|
+
depth?: number;
|
|
634
|
+
/** 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. */
|
|
635
|
+
mix?: number;
|
|
636
|
+
}
|
|
637
|
+
export type ChorusInputs = {
|
|
638
|
+
"in": AudioNode;
|
|
639
|
+
"modRate": AudioParam;
|
|
640
|
+
"modMix": AudioParam;
|
|
641
|
+
};
|
|
642
|
+
export type ChorusOutputs = {
|
|
643
|
+
"out": AudioNode;
|
|
644
|
+
};
|
|
645
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
646
|
+
export type ChorusProps = {
|
|
647
|
+
"in": AudioNode;
|
|
648
|
+
"out": AudioNode;
|
|
649
|
+
"modRate": AudioParam;
|
|
650
|
+
"modMix": AudioParam;
|
|
651
|
+
readonly params: {
|
|
652
|
+
/** Rate. Native AudioParam — value is Hz 1:1. */
|
|
653
|
+
"rate": AudioParam;
|
|
654
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
655
|
+
"mix": AudioParam;
|
|
656
|
+
};
|
|
657
|
+
};
|
|
658
|
+
export declare const Chorus: LibModule<ChorusParams, ChorusInputs, ChorusOutputs, ChorusProps>;
|
|
659
|
+
export interface CombFilterParams {
|
|
660
|
+
/** Pitch Offset. Semitones added to the V/OCT input (12 = one octave). Unpatched the input is silent, so this is the comb note itself: 55 ≈ 196 Hz, 69 = 440 Hz. Driven by an absolute pitch CV, set 0 to track it as-is. Range -48–96 semitones. Default 55. */
|
|
661
|
+
offset?: Semitones;
|
|
662
|
+
/** Feedback. Resonance amount. Higher values create more pronounced, ringing tones. Range 0–0.95. Default 0.7. */
|
|
663
|
+
feedback?: number;
|
|
664
|
+
/** Dry/Wet Mix. Balance between original and comb-filtered signal. Range 0–1. Default 0.5. */
|
|
665
|
+
mix?: number;
|
|
666
|
+
/** Tuning Mode. CHROMATIC snaps the FREQ knob to semitones; FREE allows continuous tuning. Default "chromatic". */
|
|
667
|
+
tuning?: "chromatic" | "free";
|
|
668
|
+
}
|
|
669
|
+
export type CombFilterInputs = {
|
|
670
|
+
"in": AudioNode;
|
|
671
|
+
"voct": AudioNode;
|
|
672
|
+
"modFreq": AudioNode;
|
|
673
|
+
};
|
|
674
|
+
export type CombFilterOutputs = {
|
|
675
|
+
"out": AudioNode;
|
|
676
|
+
};
|
|
677
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
678
|
+
export type CombFilterProps = {
|
|
679
|
+
"in": AudioNode;
|
|
680
|
+
"out": AudioNode;
|
|
681
|
+
"voct": AudioNode;
|
|
682
|
+
"modFreq": AudioNode;
|
|
683
|
+
readonly params: {
|
|
684
|
+
/** Pitch Offset. Native AudioParam — value is semitone 1:1. */
|
|
685
|
+
"offset": AudioParam;
|
|
686
|
+
/** Feedback. Native AudioParam — value is the param value 1:1. */
|
|
687
|
+
"feedback": AudioParam;
|
|
688
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
689
|
+
"mix": AudioParam;
|
|
690
|
+
};
|
|
691
|
+
};
|
|
692
|
+
export declare const CombFilter: LibModule<CombFilterParams, CombFilterInputs, CombFilterOutputs, CombFilterProps>;
|
|
693
|
+
export interface CompressorParams {
|
|
694
|
+
/** Threshold. Level above which compression kicks in. Lower = more compression. Range -60–0 dB. Default -24. */
|
|
695
|
+
threshold?: Decibels;
|
|
696
|
+
/** Ratio. How much to reduce signal above threshold. 4:1 = every 4dB over becomes 1dB. Range 1–20 (log). Default 4. */
|
|
697
|
+
ratio?: number;
|
|
698
|
+
/** Attack. How fast compression responds to loud signals. Range 0.001–1 s (log). Default 0.003. */
|
|
699
|
+
attack?: Seconds;
|
|
700
|
+
/** Release. How fast compression releases after signal drops. Range 0.01–1 s (log). Default 0.25. */
|
|
701
|
+
release?: Seconds;
|
|
702
|
+
/** Knee. Width of the transition zone around the threshold. 0 = hard knee (abrupt), 40 = soft knee (gradual). Range 0–40 dB. Default 10. */
|
|
703
|
+
knee?: Decibels;
|
|
704
|
+
/** Makeup Gain. Boosts the output level to compensate for gain reduction. Up to +30 dB. Range 0–30 dB. Default 0. */
|
|
705
|
+
makeup?: Decibels;
|
|
706
|
+
}
|
|
707
|
+
export type CompressorInputs = {
|
|
708
|
+
"in": AudioNode;
|
|
709
|
+
};
|
|
710
|
+
export type CompressorOutputs = {
|
|
711
|
+
"out": AudioNode;
|
|
712
|
+
};
|
|
713
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
714
|
+
export type CompressorProps = {
|
|
715
|
+
"in": AudioNode;
|
|
716
|
+
"out": AudioNode;
|
|
717
|
+
readonly params: {
|
|
718
|
+
/** Threshold. Native AudioParam — value is dB 1:1. */
|
|
719
|
+
"threshold": AudioParam;
|
|
720
|
+
/** Ratio. Native AudioParam — value is the param value 1:1. */
|
|
721
|
+
"ratio": AudioParam;
|
|
722
|
+
/** Attack. Native AudioParam — value is s 1:1. */
|
|
723
|
+
"attack": AudioParam;
|
|
724
|
+
/** Release. Native AudioParam — value is s 1:1. */
|
|
725
|
+
"release": AudioParam;
|
|
726
|
+
/** Knee. Native AudioParam — value is dB 1:1. */
|
|
727
|
+
"knee": AudioParam;
|
|
728
|
+
};
|
|
729
|
+
};
|
|
730
|
+
export declare const Compressor: LibModule<CompressorParams, CompressorInputs, CompressorOutputs, CompressorProps>;
|
|
731
|
+
export interface CrossfadeParams {
|
|
732
|
+
/** Crossfade Position. Position between inputs. 0 = all A, 1 = all B. Range 0–1. Default 0.5. */
|
|
733
|
+
blend?: number;
|
|
734
|
+
/** Curve Type. Linear or equal-power crossfade curve. Default "equal-power". */
|
|
735
|
+
curve?: "linear" | "equal-power";
|
|
736
|
+
}
|
|
737
|
+
export type CrossfadeInputs = {
|
|
738
|
+
"a": AudioNode;
|
|
739
|
+
"b": AudioNode;
|
|
740
|
+
};
|
|
741
|
+
export type CrossfadeOutputs = {
|
|
742
|
+
"out": AudioNode;
|
|
743
|
+
};
|
|
744
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
745
|
+
export type CrossfadeProps = {
|
|
746
|
+
"a": AudioNode;
|
|
747
|
+
"b": AudioNode;
|
|
748
|
+
"out": AudioNode;
|
|
749
|
+
readonly params: {
|
|
750
|
+
/** Crossfade Position. Native AudioParam — value is the param value 1:1. */
|
|
751
|
+
"blend": AudioParam;
|
|
752
|
+
};
|
|
753
|
+
};
|
|
754
|
+
export declare const Crossfade: LibModule<CrossfadeParams, CrossfadeInputs, CrossfadeOutputs, CrossfadeProps>;
|
|
755
|
+
export interface DelayParams {
|
|
756
|
+
/** Delay Time. Time between original signal and echo. Sync to tempo for rhythmic effects. Range 0.01–1 s (log). Default 0.3. */
|
|
757
|
+
time?: Seconds;
|
|
758
|
+
/** Feedback. How much delayed signal feeds back. Higher = more repeats. Be careful of runaway feedback! Range 0–0.95. Default 0.4. */
|
|
759
|
+
feedback?: number;
|
|
760
|
+
/** Dry/Wet Mix. Balance between original (dry) and delayed (wet) signal. Range 0–1. Default 0.5. */
|
|
761
|
+
mix?: number;
|
|
762
|
+
}
|
|
763
|
+
export type DelayInputs = {
|
|
764
|
+
"in": AudioNode;
|
|
765
|
+
};
|
|
766
|
+
export type DelayOutputs = {
|
|
767
|
+
"out": AudioNode;
|
|
768
|
+
};
|
|
769
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
770
|
+
export type DelayProps = {
|
|
771
|
+
"in": AudioNode;
|
|
772
|
+
"out": AudioNode;
|
|
773
|
+
readonly params: {
|
|
774
|
+
/** Delay Time. Native AudioParam — value is s 1:1. */
|
|
775
|
+
"time": AudioParam;
|
|
776
|
+
/** Feedback. Native AudioParam — value is the param value 1:1. */
|
|
777
|
+
"feedback": AudioParam;
|
|
778
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
779
|
+
"mix": AudioParam;
|
|
780
|
+
};
|
|
781
|
+
};
|
|
782
|
+
export declare const Delay: LibModule<DelayParams, DelayInputs, DelayOutputs, DelayProps>;
|
|
783
|
+
export interface DimensionParams {
|
|
784
|
+
/** Rate. Widening LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Range 0.1–5 Hz. Default 0.5. */
|
|
785
|
+
rate?: Hz;
|
|
786
|
+
/** 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. */
|
|
787
|
+
depth?: number;
|
|
788
|
+
}
|
|
789
|
+
export type DimensionInputs = {
|
|
790
|
+
"in": AudioNode;
|
|
791
|
+
"modRate": AudioParam;
|
|
792
|
+
};
|
|
793
|
+
export type DimensionOutputs = {
|
|
794
|
+
"out": AudioNode;
|
|
795
|
+
};
|
|
796
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
797
|
+
export type DimensionProps = {
|
|
798
|
+
"in": AudioNode;
|
|
799
|
+
"out": AudioNode;
|
|
800
|
+
"modRate": AudioParam;
|
|
801
|
+
readonly params: {
|
|
802
|
+
/** Rate. Native AudioParam — value is Hz 1:1. */
|
|
803
|
+
"rate": AudioParam;
|
|
804
|
+
};
|
|
805
|
+
};
|
|
806
|
+
export declare const Dimension: LibModule<DimensionParams, DimensionInputs, DimensionOutputs, DimensionProps>;
|
|
807
|
+
export interface DistortionParams {
|
|
808
|
+
/** Clipping Curve. Which clipping transfer curve the signal is pushed into. Default "soft". */
|
|
809
|
+
distortionType?: "soft" | "hard" | "fuzz";
|
|
810
|
+
/** Drive Amount. How hard the signal is pushed into the clipping curve. The whole travel is usable: low = warm break-up, high = full clipping. Range 1–20 (log). Default 5. */
|
|
811
|
+
drive?: number;
|
|
812
|
+
/** Tone. Post-clip lowpass (500 Hz – 16 kHz). Turn down to tame the high-frequency fizz clipping creates — the Filter knob on a RAT. Range 500–16000 Hz (log). Default 16000. */
|
|
813
|
+
frequency?: Hz;
|
|
814
|
+
/** Dry/Wet Mix. Balance between clean and distorted signal. Low settings give parallel distortion. Range 0–1. Default 0.8. */
|
|
815
|
+
mix?: number;
|
|
816
|
+
}
|
|
817
|
+
export type DistortionInputs = {
|
|
818
|
+
"in": AudioNode;
|
|
819
|
+
};
|
|
820
|
+
export type DistortionOutputs = {
|
|
821
|
+
"out": AudioNode;
|
|
822
|
+
};
|
|
823
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
824
|
+
export type DistortionProps = {
|
|
825
|
+
"in": AudioNode;
|
|
826
|
+
"out": AudioNode;
|
|
827
|
+
readonly params: {
|
|
828
|
+
/** Tone. Native AudioParam — value is Hz 1:1. */
|
|
829
|
+
"frequency": AudioParam;
|
|
830
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
831
|
+
"mix": AudioParam;
|
|
832
|
+
};
|
|
833
|
+
};
|
|
834
|
+
export declare const Distortion: LibModule<DistortionParams, DistortionInputs, DistortionOutputs, DistortionProps>;
|
|
835
|
+
export interface DuckerParams {
|
|
836
|
+
/** Threshold. Sidechain level that triggers ducking. Lower = more sensitive. Range -60–0 dB. Default -24. */
|
|
837
|
+
threshold?: Decibels;
|
|
838
|
+
/** Duck Amount. How much to reduce the main signal when triggered. Range 0–1. Default 0.7. */
|
|
839
|
+
amount?: number;
|
|
840
|
+
/** Attack. How fast ducking kicks in after sidechain exceeds threshold. Range 0.001–0.1 s (log). Default 0.01. */
|
|
841
|
+
attack?: Seconds;
|
|
842
|
+
/** Release. How fast signal returns to normal after sidechain drops. Range 0.001–1 s (log). Default 0.2. */
|
|
843
|
+
release?: Seconds;
|
|
844
|
+
}
|
|
845
|
+
export type DuckerInputs = {
|
|
846
|
+
"in": AudioNode;
|
|
847
|
+
"sc": AudioNode;
|
|
848
|
+
};
|
|
849
|
+
export type DuckerOutputs = {
|
|
850
|
+
"out": AudioNode;
|
|
851
|
+
};
|
|
852
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
853
|
+
export type DuckerProps = {
|
|
854
|
+
"in": AudioNode;
|
|
855
|
+
"sc": AudioNode;
|
|
856
|
+
"out": AudioNode;
|
|
857
|
+
readonly params: {
|
|
858
|
+
/** Attack. Native AudioParam — value is s 1:1. */
|
|
859
|
+
"attack": AudioParam;
|
|
860
|
+
/** Release. Native AudioParam — value is s 1:1. */
|
|
861
|
+
"release": AudioParam;
|
|
862
|
+
};
|
|
863
|
+
};
|
|
864
|
+
export declare const Ducker: LibModule<DuckerParams, DuckerInputs, DuckerOutputs, DuckerProps>;
|
|
865
|
+
export interface EnvelopeFollowerParams {
|
|
866
|
+
/** Attack Time. How quickly the envelope responds to rising levels. Shorter = snappier transient tracking. Range 0.001–0.5 s (log). Default 0.01. */
|
|
867
|
+
attack?: Seconds;
|
|
868
|
+
/** Release Time. How quickly the envelope responds to falling levels. Longer = smoother, more sustained envelope. Range 0.001–2 s (log). Default 0.1. */
|
|
869
|
+
release?: Seconds;
|
|
870
|
+
/** Sensitivity. Input gain before envelope detection. Higher = more responsive to quiet signals. Range 0–1. Default 0.5. */
|
|
871
|
+
sensitivity?: number;
|
|
872
|
+
/** Output Depth. Scales the CV output amplitude. For V/Oct filter targets, 12 semitones = one octave, so 48 ≈ four octaves. For VCA or other targets, use lower values (0.5–2). Range 0–96 semitones (sqrt). Default 48. */
|
|
873
|
+
depth?: Semitones;
|
|
874
|
+
}
|
|
875
|
+
export type EnvelopeFollowerInputs = {
|
|
876
|
+
"in": AudioNode;
|
|
877
|
+
};
|
|
878
|
+
export type EnvelopeFollowerOutputs = {
|
|
879
|
+
"env": AudioNode;
|
|
880
|
+
};
|
|
881
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
882
|
+
export type EnvelopeFollowerProps = {
|
|
883
|
+
"in": AudioNode;
|
|
884
|
+
"env": AudioNode;
|
|
885
|
+
readonly params: {
|
|
886
|
+
/** Attack Time. Native AudioParam — value is s 1:1. */
|
|
887
|
+
"attack": AudioParam;
|
|
888
|
+
/** Release Time. Native AudioParam — value is s 1:1. */
|
|
889
|
+
"release": AudioParam;
|
|
890
|
+
/** Output Depth. Native AudioParam — value is semitone 1:1. */
|
|
891
|
+
"depth": AudioParam;
|
|
892
|
+
};
|
|
893
|
+
};
|
|
894
|
+
export declare const EnvelopeFollower: LibModule<EnvelopeFollowerParams, EnvelopeFollowerInputs, EnvelopeFollowerOutputs, EnvelopeFollowerProps>;
|
|
895
|
+
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. */
|
|
897
|
+
attack?: Seconds;
|
|
898
|
+
/** Decay. Time to fall from peak to sustain level after attack completes. Range 0.001–2 s (log). Default 0.1. */
|
|
899
|
+
decay?: Seconds;
|
|
900
|
+
/** Sustain. Level held while the note is held. 0 = plucky, 1 = organ-like. Range 0–1. Default 0.7. */
|
|
901
|
+
sustain?: number;
|
|
902
|
+
/** Release. Time to fade to silence after note is released. Range 0.001–3 s (log). Default 0.3. */
|
|
903
|
+
release?: Seconds;
|
|
904
|
+
/** 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
|
+
depth?: Semitones;
|
|
906
|
+
}
|
|
907
|
+
export type EnvelopeInputs = {
|
|
908
|
+
"in": AudioNode;
|
|
909
|
+
"trigger": AudioNode;
|
|
910
|
+
};
|
|
911
|
+
export type EnvelopeOutputs = {
|
|
912
|
+
"out": AudioNode;
|
|
913
|
+
"env": AudioNode;
|
|
914
|
+
};
|
|
915
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
916
|
+
export type EnvelopeProps = {
|
|
917
|
+
"in": AudioNode;
|
|
918
|
+
"out": AudioNode;
|
|
919
|
+
"env": AudioNode;
|
|
920
|
+
"trigger": AudioNode;
|
|
921
|
+
readonly params: {
|
|
922
|
+
/** Attack. Native AudioParam — value is s 1:1. */
|
|
923
|
+
"attack": AudioParam;
|
|
924
|
+
/** Decay. Native AudioParam — value is s 1:1. */
|
|
925
|
+
"decay": AudioParam;
|
|
926
|
+
/** Sustain. Native AudioParam — value is the param value 1:1. */
|
|
927
|
+
"sustain": AudioParam;
|
|
928
|
+
/** Release. Native AudioParam — value is s 1:1. */
|
|
929
|
+
"release": AudioParam;
|
|
930
|
+
/** ENV Depth. Native AudioParam — value is semitone 1:1. */
|
|
931
|
+
"depth": AudioParam;
|
|
932
|
+
};
|
|
933
|
+
};
|
|
934
|
+
export declare const Envelope: LibModule<EnvelopeParams, EnvelopeInputs, EnvelopeOutputs, EnvelopeProps>;
|
|
935
|
+
export interface ThreeBandEqParams {
|
|
936
|
+
/** Bass. Low shelf gain at 320 Hz. Boost for warmth, cut for clarity. Range -12–12 dB. Default 0. */
|
|
937
|
+
low?: Decibels;
|
|
938
|
+
/** Midrange. Peaking gain at the mid frequency. The presence and body range. Range -12–12 dB. Default 0. */
|
|
939
|
+
mid?: Decibels;
|
|
940
|
+
/** Treble. High shelf gain at 3.2 kHz. Boost for brightness, cut for smoothness. Range -12–12 dB. Default 0. */
|
|
941
|
+
high?: Decibels;
|
|
942
|
+
/** Mid Frequency. Center frequency for the mid band EQ. Range 200–5000 Hz (log). Default 1000. */
|
|
943
|
+
midFreq?: Hz;
|
|
944
|
+
}
|
|
945
|
+
export type ThreeBandEqInputs = {
|
|
946
|
+
"in": AudioNode;
|
|
947
|
+
};
|
|
948
|
+
export type ThreeBandEqOutputs = {
|
|
949
|
+
"out": AudioNode;
|
|
950
|
+
};
|
|
951
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
952
|
+
export type ThreeBandEqProps = {
|
|
953
|
+
"in": AudioNode;
|
|
954
|
+
"out": AudioNode;
|
|
955
|
+
readonly params: {
|
|
956
|
+
/** Bass. Native AudioParam — value is dB 1:1. */
|
|
957
|
+
"low": AudioParam;
|
|
958
|
+
/** Midrange. Native AudioParam — value is dB 1:1. */
|
|
959
|
+
"mid": AudioParam;
|
|
960
|
+
/** Treble. Native AudioParam — value is dB 1:1. */
|
|
961
|
+
"high": AudioParam;
|
|
962
|
+
/** Mid Frequency. Native AudioParam — value is Hz 1:1. */
|
|
963
|
+
"midFreq": AudioParam;
|
|
964
|
+
};
|
|
965
|
+
};
|
|
966
|
+
export declare const ThreeBandEq: LibModule<ThreeBandEqParams, ThreeBandEqInputs, ThreeBandEqOutputs, ThreeBandEqProps>;
|
|
967
|
+
export interface ExciterParams {
|
|
968
|
+
/** Drive. Amount of harmonic saturation added to high frequencies. Range 0–1. Default 0.5. */
|
|
969
|
+
drive?: number;
|
|
970
|
+
/** Frequency. Cutoff frequency above which excitement is applied. Range 2000–8000 Hz (log). Default 4000. */
|
|
971
|
+
frequency?: Hz;
|
|
972
|
+
/** Mix Amount. How much excited signal is added to the original. Range 0–1. Default 0.5. */
|
|
973
|
+
mix?: number;
|
|
974
|
+
}
|
|
975
|
+
export type ExciterInputs = {
|
|
976
|
+
"in": AudioNode;
|
|
977
|
+
};
|
|
978
|
+
export type ExciterOutputs = {
|
|
979
|
+
"out": AudioNode;
|
|
980
|
+
};
|
|
981
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
982
|
+
export type ExciterProps = {
|
|
983
|
+
"in": AudioNode;
|
|
984
|
+
"out": AudioNode;
|
|
985
|
+
readonly params: {
|
|
986
|
+
/** Mix Amount. Native AudioParam — value is the param value 1:1. */
|
|
987
|
+
"mix": AudioParam;
|
|
988
|
+
};
|
|
989
|
+
};
|
|
990
|
+
export declare const Exciter: LibModule<ExciterParams, ExciterInputs, ExciterOutputs, ExciterProps>;
|
|
991
|
+
export interface FlangerParams {
|
|
992
|
+
/** Rate. Flanger sweep LFO speed, a real a-rate AudioParam on the worklet. modRate sums into the same AudioParam. Range 0.1–5 Hz. Default 0.5. */
|
|
993
|
+
rate?: Hz;
|
|
994
|
+
/** Modulation Depth. How much the delay time is modulated, a real AudioParam on the worklet. modDepth sums into the same AudioParam. Range 0–1. Default 0.7. */
|
|
995
|
+
depth?: number;
|
|
996
|
+
/** Feedback. Resonance amount, a real AudioParam on the worklet. modFeedback sums into the same AudioParam. Range 0–0.95. Default 0.7. */
|
|
997
|
+
feedback?: number;
|
|
998
|
+
/** Dry/Wet Mix. Crossfade between original and flanged signal, driven by one ConstantSource (linear law: dry = 1 − mix, wet = mix). Range 0–1. Default 0.5. */
|
|
999
|
+
mix?: number;
|
|
1000
|
+
}
|
|
1001
|
+
export type FlangerInputs = {
|
|
1002
|
+
"in": AudioNode;
|
|
1003
|
+
"modRate": AudioParam;
|
|
1004
|
+
"modDepth": AudioParam;
|
|
1005
|
+
"modFeedback": AudioParam;
|
|
1006
|
+
"modMix": AudioParam;
|
|
1007
|
+
};
|
|
1008
|
+
export type FlangerOutputs = {
|
|
1009
|
+
"out": AudioNode;
|
|
1010
|
+
};
|
|
1011
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1012
|
+
export type FlangerProps = {
|
|
1013
|
+
"in": AudioNode;
|
|
1014
|
+
"out": AudioNode;
|
|
1015
|
+
"modRate": AudioParam;
|
|
1016
|
+
"modDepth": AudioParam;
|
|
1017
|
+
"modFeedback": AudioParam;
|
|
1018
|
+
"modMix": AudioParam;
|
|
1019
|
+
readonly params: {
|
|
1020
|
+
/** Rate. Native AudioParam — value is Hz 1:1. */
|
|
1021
|
+
"rate": AudioParam;
|
|
1022
|
+
/** Modulation Depth. Native AudioParam — value is the param value 1:1. */
|
|
1023
|
+
"depth": AudioParam;
|
|
1024
|
+
/** Feedback. Native AudioParam — value is the param value 1:1. */
|
|
1025
|
+
"feedback": AudioParam;
|
|
1026
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1027
|
+
"mix": AudioParam;
|
|
1028
|
+
};
|
|
1029
|
+
};
|
|
1030
|
+
export declare const Flanger: LibModule<FlangerParams, FlangerInputs, FlangerOutputs, FlangerProps>;
|
|
1031
|
+
export interface FormantParams {
|
|
1032
|
+
/** 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. */
|
|
1033
|
+
morph?: number;
|
|
1034
|
+
/** Resonance. Sharpness of the formant peaks, scaled per band. Higher values sound more pronounced and vocal. Range 1–20 (sqrt). Default 6. */
|
|
1035
|
+
resonance?: number;
|
|
1036
|
+
/** Dry/Wet Mix. Balance between the original signal and the formant-filtered output. 0 = dry, 1 = fully wet. Range 0–1. Default 1. */
|
|
1037
|
+
mix?: number;
|
|
1038
|
+
}
|
|
1039
|
+
export type FormantInputs = {
|
|
1040
|
+
"in": AudioNode;
|
|
1041
|
+
"modVowel": AudioNode;
|
|
1042
|
+
};
|
|
1043
|
+
export type FormantOutputs = {
|
|
1044
|
+
"out": AudioNode;
|
|
1045
|
+
};
|
|
1046
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1047
|
+
export type FormantProps = {
|
|
1048
|
+
"in": AudioNode;
|
|
1049
|
+
"out": AudioNode;
|
|
1050
|
+
"modVowel": AudioNode;
|
|
1051
|
+
readonly params: Record<never, never>;
|
|
1052
|
+
};
|
|
1053
|
+
export declare const Formant: LibModule<FormantParams, FormantInputs, FormantOutputs, FormantProps>;
|
|
1054
|
+
export interface FrequencyShifterParams {
|
|
1055
|
+
/** Frequency Shift. Amount to shift all frequencies in Hz. Positive = up, negative = down. Range -500–500 Hz. Default 0. */
|
|
1056
|
+
shift?: Hz;
|
|
1057
|
+
/** Dry/Wet Mix. Balance between original and frequency-shifted signal. Range 0–1. Default 1. */
|
|
1058
|
+
mix?: number;
|
|
1059
|
+
}
|
|
1060
|
+
export type FrequencyShifterInputs = {
|
|
1061
|
+
"in": AudioNode;
|
|
1062
|
+
"modShift": AudioParam;
|
|
1063
|
+
};
|
|
1064
|
+
export type FrequencyShifterOutputs = {
|
|
1065
|
+
"out": AudioNode;
|
|
1066
|
+
};
|
|
1067
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1068
|
+
export type FrequencyShifterProps = {
|
|
1069
|
+
"in": AudioNode;
|
|
1070
|
+
"out": AudioNode;
|
|
1071
|
+
"modShift": AudioParam;
|
|
1072
|
+
readonly params: {
|
|
1073
|
+
/** Frequency Shift. Native AudioParam — value is Hz 1:1. */
|
|
1074
|
+
"shift": AudioParam;
|
|
1075
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1076
|
+
"mix": AudioParam;
|
|
1077
|
+
};
|
|
1078
|
+
};
|
|
1079
|
+
export declare const FrequencyShifter: LibModule<FrequencyShifterParams, FrequencyShifterInputs, FrequencyShifterOutputs, FrequencyShifterProps>;
|
|
1080
|
+
export interface GateParams {
|
|
1081
|
+
/** Threshold. Level below which the gate closes and silences audio. Range -60–0 dB. Default -40. */
|
|
1082
|
+
threshold?: Decibels;
|
|
1083
|
+
/** Range. How much the signal is attenuated when gate is closed. 0=full mute, lower=gentler. Range 0–1. Default 0.8. */
|
|
1084
|
+
range?: number;
|
|
1085
|
+
/** Attack. How fast the gate opens when signal exceeds threshold. Short = tight, long = gentle fade-in. Range 0.001–0.05 s (log). Default 0.005. */
|
|
1086
|
+
attack?: Seconds;
|
|
1087
|
+
/** Release. How fast the gate closes when signal falls below threshold. Range 0.01–0.5 s (log). Default 0.1. */
|
|
1088
|
+
release?: Seconds;
|
|
1089
|
+
}
|
|
1090
|
+
export type GateInputs = {
|
|
1091
|
+
"in": AudioNode;
|
|
1092
|
+
};
|
|
1093
|
+
export type GateOutputs = {
|
|
1094
|
+
"out": AudioNode;
|
|
1095
|
+
};
|
|
1096
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1097
|
+
export type GateProps = {
|
|
1098
|
+
"in": AudioNode;
|
|
1099
|
+
"out": AudioNode;
|
|
1100
|
+
readonly params: {
|
|
1101
|
+
/** Attack. Native AudioParam — value is s 1:1. */
|
|
1102
|
+
"attack": AudioParam;
|
|
1103
|
+
/** Release. Native AudioParam — value is s 1:1. */
|
|
1104
|
+
"release": AudioParam;
|
|
1105
|
+
};
|
|
1106
|
+
};
|
|
1107
|
+
export declare const Gate: LibModule<GateParams, GateInputs, GateOutputs, GateProps>;
|
|
1108
|
+
export interface GlideParams {
|
|
1109
|
+
/** Glide Time. How long it takes to slide between pitches. Longer = more portamento. Range 0.01–10 s (log). Default 0.1. */
|
|
1110
|
+
time?: Seconds;
|
|
1111
|
+
}
|
|
1112
|
+
export type GlideInputs = {
|
|
1113
|
+
"in": AudioNode;
|
|
1114
|
+
"gate": AudioNode;
|
|
1115
|
+
};
|
|
1116
|
+
export type GlideOutputs = {
|
|
1117
|
+
"out": Signal<Note>;
|
|
1118
|
+
};
|
|
1119
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1120
|
+
export type GlideProps = {
|
|
1121
|
+
"in": AudioNode;
|
|
1122
|
+
"gate": AudioNode;
|
|
1123
|
+
"out": Signal<Note>;
|
|
1124
|
+
readonly params: {
|
|
1125
|
+
/** Glide Time. Native AudioParam — value is s 1:1. */
|
|
1126
|
+
"time": AudioParam;
|
|
1127
|
+
};
|
|
1128
|
+
};
|
|
1129
|
+
export declare const Glide: LibModule<GlideParams, GlideInputs, GlideOutputs, GlideProps>;
|
|
1130
|
+
export interface HaasWidenerParams {
|
|
1131
|
+
/** Micro-Delay. Delay time in milliseconds (1–35 ms). The Haas effect range. Range 1–35 ms. Default 15. */
|
|
1132
|
+
delay?: Milliseconds;
|
|
1133
|
+
/** Delayed Side. Which channel receives the delay — left or right. Default "right". */
|
|
1134
|
+
side?: "left" | "right";
|
|
1135
|
+
/** Effect Level. Amount of stereo widening effect. 0 = mono passthrough, 1 = fully delayed side. Range 0–1. Default 1. */
|
|
1136
|
+
mix?: number;
|
|
1137
|
+
}
|
|
1138
|
+
export type HaasWidenerInputs = {
|
|
1139
|
+
"in": AudioNode;
|
|
1140
|
+
};
|
|
1141
|
+
export type HaasWidenerOutputs = {
|
|
1142
|
+
"out": AudioNode;
|
|
1143
|
+
};
|
|
1144
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1145
|
+
export type HaasWidenerProps = {
|
|
1146
|
+
"in": AudioNode;
|
|
1147
|
+
"out": AudioNode;
|
|
1148
|
+
readonly params: {
|
|
1149
|
+
/** Effect Level. Native AudioParam — value is the param value 1:1. */
|
|
1150
|
+
"mix": AudioParam;
|
|
1151
|
+
};
|
|
1152
|
+
};
|
|
1153
|
+
export declare const HaasWidener: LibModule<HaasWidenerParams, HaasWidenerInputs, HaasWidenerOutputs, HaasWidenerProps>;
|
|
1154
|
+
export interface HarmonicTremoloParams {
|
|
1155
|
+
/** Rate. Tremolo LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Range 1–10 Hz. Default 4. */
|
|
1156
|
+
rate?: Hz;
|
|
1157
|
+
/** 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. */
|
|
1158
|
+
depth?: number;
|
|
1159
|
+
/** 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. */
|
|
1160
|
+
crossover?: Hz;
|
|
1161
|
+
}
|
|
1162
|
+
export type HarmonicTremoloInputs = {
|
|
1163
|
+
"in": AudioNode;
|
|
1164
|
+
"modRate": AudioParam;
|
|
1165
|
+
"modCrossover": AudioParam;
|
|
1166
|
+
};
|
|
1167
|
+
export type HarmonicTremoloOutputs = {
|
|
1168
|
+
"out": AudioNode;
|
|
1169
|
+
};
|
|
1170
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1171
|
+
export type HarmonicTremoloProps = {
|
|
1172
|
+
"in": AudioNode;
|
|
1173
|
+
"out": AudioNode;
|
|
1174
|
+
"modRate": AudioParam;
|
|
1175
|
+
"modCrossover": AudioParam;
|
|
1176
|
+
readonly params: {
|
|
1177
|
+
/** Rate. Native AudioParam — value is Hz 1:1. */
|
|
1178
|
+
"rate": AudioParam;
|
|
1179
|
+
/** Crossover Frequency. Native AudioParam — value is Hz 1:1. */
|
|
1180
|
+
"crossover": AudioParam;
|
|
1181
|
+
};
|
|
1182
|
+
};
|
|
1183
|
+
export declare const HarmonicTremolo: LibModule<HarmonicTremoloParams, HarmonicTremoloInputs, HarmonicTremoloOutputs, HarmonicTremoloProps>;
|
|
1184
|
+
export interface LadderFilterParams {
|
|
1185
|
+
/** Cutoff Note. Filter cutoff as a note (83 ≈ 1 kHz, 69 = 440 Hz). Drives the V/OCT worklet 1:1 — the panel knob shows the equivalent Hz. At full resonance this plays the self-oscillation like an oscillator. Range 15–135 notes. Default 83. */
|
|
1186
|
+
note?: Note;
|
|
1187
|
+
/** Resonance. Feedback around the whole ladder. At 100% the filter self-oscillates into a sine you can play via the V/OCT input. Range 0–4 (sqrt). Default 2.5. */
|
|
1188
|
+
resonance?: number;
|
|
1189
|
+
/** Input Drive. Saturation inside the ladder loop — thicker and more compressed as you push it, just like overdriving the original circuit. Range 0–1. Default 0.3. */
|
|
1190
|
+
drive?: number;
|
|
1191
|
+
}
|
|
1192
|
+
export type LadderFilterInputs = {
|
|
1193
|
+
"in": AudioNode;
|
|
1194
|
+
"modFreq": AudioNode;
|
|
1195
|
+
"modRes": AudioParam;
|
|
1196
|
+
};
|
|
1197
|
+
export type LadderFilterOutputs = {
|
|
1198
|
+
"out": AudioNode;
|
|
1199
|
+
};
|
|
1200
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1201
|
+
export type LadderFilterProps = {
|
|
1202
|
+
"in": AudioNode;
|
|
1203
|
+
"out": AudioNode;
|
|
1204
|
+
"modFreq": AudioNode;
|
|
1205
|
+
"modRes": AudioParam;
|
|
1206
|
+
readonly params: {
|
|
1207
|
+
/** Cutoff Note. Native AudioParam — value is note 1:1. */
|
|
1208
|
+
"note": AudioParam;
|
|
1209
|
+
/** Input Drive. Native AudioParam — value is the param value 1:1. */
|
|
1210
|
+
"drive": AudioParam;
|
|
1211
|
+
};
|
|
1212
|
+
};
|
|
1213
|
+
export declare const LadderFilter: LibModule<LadderFilterParams, LadderFilterInputs, LadderFilterOutputs, LadderFilterProps>;
|
|
1214
|
+
export interface LfoParams {
|
|
1215
|
+
/** Skew. Waveform symmetry. 0 = symmetric; ±1 folds the cycle into a rising or falling ramp. Range -1–1. Default 0. */
|
|
1216
|
+
skew?: number;
|
|
1217
|
+
/** Shape. Waveform curvature. +1 = sine, 0 = triangle, −1 = exact square. With skew ±1 and shape 0 the output is a saw. Range -1–1. Default 1. */
|
|
1218
|
+
shape?: number;
|
|
1219
|
+
/** Frequency. Base oscillation rate, summed with the modRate input. 0 freezes the phase; negative values run the waveform backwards. Range -10–20 Hz. Default 2. */
|
|
1220
|
+
frequency?: Hz;
|
|
1221
|
+
/** Amount. Output scale: out swings ±amount (semitones when patched to a V/Oct-style mod input). modAmount is summed onto it. Range 0–500 semitones (sqrt). Default 12. */
|
|
1222
|
+
amount?: Semitones;
|
|
1223
|
+
}
|
|
1224
|
+
export type LfoInputs = {
|
|
1225
|
+
"modRate": AudioParam;
|
|
1226
|
+
"modAmount": AudioParam;
|
|
1227
|
+
"modSkew": AudioParam;
|
|
1228
|
+
"modShape": AudioParam;
|
|
1229
|
+
};
|
|
1230
|
+
export type LfoOutputs = {
|
|
1231
|
+
"out": AudioNode;
|
|
1232
|
+
};
|
|
1233
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1234
|
+
export type LfoProps = {
|
|
1235
|
+
"out": AudioNode;
|
|
1236
|
+
"modRate": AudioParam;
|
|
1237
|
+
"modAmount": AudioParam;
|
|
1238
|
+
"modSkew": AudioParam;
|
|
1239
|
+
"modShape": AudioParam;
|
|
1240
|
+
readonly params: {
|
|
1241
|
+
/** Skew. Native AudioParam — value is the param value 1:1. */
|
|
1242
|
+
"skew": AudioParam;
|
|
1243
|
+
/** Shape. Native AudioParam — value is the param value 1:1. */
|
|
1244
|
+
"shape": AudioParam;
|
|
1245
|
+
/** Frequency. Native AudioParam — value is Hz 1:1. */
|
|
1246
|
+
"frequency": AudioParam;
|
|
1247
|
+
/** Amount. Native AudioParam — value is semitone 1:1. */
|
|
1248
|
+
"amount": AudioParam;
|
|
1249
|
+
};
|
|
1250
|
+
};
|
|
1251
|
+
export declare const Lfo: LibModule<LfoParams, LfoInputs, LfoOutputs, LfoProps>;
|
|
1252
|
+
export interface LoFiParams {
|
|
1253
|
+
/** 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. */
|
|
1254
|
+
drive?: number;
|
|
1255
|
+
/** Cutoff. Lowpass filter frequency. Lower = more muffled, vintage sound. Range 500–8000 Hz. Default 4000. */
|
|
1256
|
+
cutoff?: Hz;
|
|
1257
|
+
/** 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. */
|
|
1258
|
+
noise?: number;
|
|
1259
|
+
/** 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. */
|
|
1260
|
+
wobble?: number;
|
|
1261
|
+
}
|
|
1262
|
+
export type LoFiInputs = {
|
|
1263
|
+
"in": AudioNode;
|
|
1264
|
+
"modCutoff": AudioParam;
|
|
1265
|
+
};
|
|
1266
|
+
export type LoFiOutputs = {
|
|
1267
|
+
"out": AudioNode;
|
|
1268
|
+
};
|
|
1269
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1270
|
+
export type LoFiProps = {
|
|
1271
|
+
"in": AudioNode;
|
|
1272
|
+
"out": AudioNode;
|
|
1273
|
+
"modCutoff": AudioParam;
|
|
1274
|
+
readonly params: {
|
|
1275
|
+
/** Cutoff. Native AudioParam — value is Hz 1:1. */
|
|
1276
|
+
"cutoff": AudioParam;
|
|
1277
|
+
};
|
|
1278
|
+
};
|
|
1279
|
+
export declare const LoFi: LibModule<LoFiParams, LoFiInputs, LoFiOutputs, LoFiProps>;
|
|
1280
|
+
export interface MidSideParams {
|
|
1281
|
+
/** Mid Gain. Controls the center/mono content of the stereo image. Range 0–2. Default 1. */
|
|
1282
|
+
midGain?: number;
|
|
1283
|
+
/** Side Gain. Controls the stereo edges/differences between left and right. Range 0–2. Default 1. */
|
|
1284
|
+
sideGain?: number;
|
|
1285
|
+
}
|
|
1286
|
+
export type MidSideInputs = {
|
|
1287
|
+
"in": AudioNode;
|
|
1288
|
+
};
|
|
1289
|
+
export type MidSideOutputs = {
|
|
1290
|
+
"out": AudioNode;
|
|
1291
|
+
};
|
|
1292
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1293
|
+
export type MidSideProps = {
|
|
1294
|
+
"in": AudioNode;
|
|
1295
|
+
"out": AudioNode;
|
|
1296
|
+
readonly params: {
|
|
1297
|
+
/** Mid Gain. Native AudioParam — value is the param value 1:1. */
|
|
1298
|
+
"midGain": AudioParam;
|
|
1299
|
+
/** Side Gain. Native AudioParam — value is the param value 1:1. */
|
|
1300
|
+
"sideGain": AudioParam;
|
|
1301
|
+
};
|
|
1302
|
+
};
|
|
1303
|
+
export declare const MidSide: LibModule<MidSideParams, MidSideInputs, MidSideOutputs, MidSideProps>;
|
|
1304
|
+
export interface NoiseParams {
|
|
1305
|
+
/** Noise Color. White, pink, or brown noise spectrum. Default "white". */
|
|
1306
|
+
noiseType?: "white" | "pink" | "brown";
|
|
1307
|
+
/** Noise Level. Output amplitude of the noise generator. Range 0–1. Default 0.3. */
|
|
1308
|
+
gain?: number;
|
|
1309
|
+
}
|
|
1310
|
+
export type NoiseInputs = {
|
|
1311
|
+
"modLevel": AudioParam;
|
|
1312
|
+
};
|
|
1313
|
+
export type NoiseOutputs = {
|
|
1314
|
+
"out": AudioNode;
|
|
1315
|
+
};
|
|
1316
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1317
|
+
export type NoiseProps = {
|
|
1318
|
+
"out": AudioNode;
|
|
1319
|
+
"modLevel": AudioParam;
|
|
1320
|
+
readonly params: {
|
|
1321
|
+
/** Noise Level. Native AudioParam — value is the param value 1:1. */
|
|
1322
|
+
"gain": AudioParam;
|
|
1323
|
+
};
|
|
1324
|
+
};
|
|
1325
|
+
export declare const Noise: LibModule<NoiseParams, NoiseInputs, NoiseOutputs, NoiseProps>;
|
|
1326
|
+
export interface OctaverParams {
|
|
1327
|
+
/** Two Octaves Down. Level of the ÷4 divided square wave — two octaves below the input. Range 0–1. Default 0.3. */
|
|
1328
|
+
octDown2?: number;
|
|
1329
|
+
/** One Octave Down. Level of the ÷2 divided square wave — one octave below the input. Range 0–1. Default 0.5. */
|
|
1330
|
+
octDown1?: number;
|
|
1331
|
+
/** Dry Level. Level of the original unprocessed signal. Range 0–1. Default 0.7. */
|
|
1332
|
+
dry?: number;
|
|
1333
|
+
/** One Octave Up. Level of the rectified octave-up voice, bandpassed around the tracked fundamental. Range 0–1. Default 0. */
|
|
1334
|
+
octUp?: number;
|
|
1335
|
+
}
|
|
1336
|
+
export type OctaverInputs = {
|
|
1337
|
+
"in": AudioNode;
|
|
1338
|
+
};
|
|
1339
|
+
export type OctaverOutputs = {
|
|
1340
|
+
"out": AudioNode;
|
|
1341
|
+
};
|
|
1342
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1343
|
+
export type OctaverProps = {
|
|
1344
|
+
"in": AudioNode;
|
|
1345
|
+
"out": AudioNode;
|
|
1346
|
+
readonly params: {
|
|
1347
|
+
/** Two Octaves Down. Native AudioParam — value is the param value 1:1. */
|
|
1348
|
+
"octDown2": AudioParam;
|
|
1349
|
+
/** One Octave Down. Native AudioParam — value is the param value 1:1. */
|
|
1350
|
+
"octDown1": AudioParam;
|
|
1351
|
+
/** Dry Level. Native AudioParam — value is the param value 1:1. */
|
|
1352
|
+
"dry": AudioParam;
|
|
1353
|
+
/** One Octave Up. Native AudioParam — value is the param value 1:1. */
|
|
1354
|
+
"octUp": AudioParam;
|
|
1355
|
+
};
|
|
1356
|
+
};
|
|
1357
|
+
export declare const Octaver: LibModule<OctaverParams, OctaverInputs, OctaverOutputs, OctaverProps>;
|
|
1358
|
+
export interface PhaserParams {
|
|
1359
|
+
/** Rate. Phaser sweep LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Range 0.1–10 Hz. Default 0.5. */
|
|
1360
|
+
rate?: Hz;
|
|
1361
|
+
/** Modulation Depth. Intensity of the phase shifting effect. Split proportionally across the four allpass stage gains, so it is set-only (no single AudioParam carries it). Range 0–1. Default 0.7. */
|
|
1362
|
+
depth?: number;
|
|
1363
|
+
/** Feedback. Resonance amount. Higher values create more pronounced, whistling sweeps. modFeedback sums into the same AudioParam. Range 0–0.9. Default 0.6. */
|
|
1364
|
+
feedback?: number;
|
|
1365
|
+
/** Dry/Wet Mix. Balance between original and phased signal, driven by one ConstantSource (linear law: dry = 1 − mix, wet = mix). Range 0–1. Default 0.5. */
|
|
1366
|
+
mix?: number;
|
|
1367
|
+
}
|
|
1368
|
+
export type PhaserInputs = {
|
|
1369
|
+
"in": AudioNode;
|
|
1370
|
+
"modRate": AudioParam;
|
|
1371
|
+
"modFeedback": AudioParam;
|
|
1372
|
+
"modMix": AudioParam;
|
|
1373
|
+
};
|
|
1374
|
+
export type PhaserOutputs = {
|
|
1375
|
+
"out": AudioNode;
|
|
1376
|
+
};
|
|
1377
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1378
|
+
export type PhaserProps = {
|
|
1379
|
+
"in": AudioNode;
|
|
1380
|
+
"out": AudioNode;
|
|
1381
|
+
"modRate": AudioParam;
|
|
1382
|
+
"modFeedback": AudioParam;
|
|
1383
|
+
"modMix": AudioParam;
|
|
1384
|
+
readonly params: {
|
|
1385
|
+
/** Rate. Native AudioParam — value is Hz 1:1. */
|
|
1386
|
+
"rate": AudioParam;
|
|
1387
|
+
/** Feedback. Native AudioParam — value is the param value 1:1. */
|
|
1388
|
+
"feedback": AudioParam;
|
|
1389
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1390
|
+
"mix": AudioParam;
|
|
1391
|
+
};
|
|
1392
|
+
};
|
|
1393
|
+
export declare const Phaser: LibModule<PhaserParams, PhaserInputs, PhaserOutputs, PhaserProps>;
|
|
1394
|
+
export interface PingPongParams {
|
|
1395
|
+
/** Delay Time. Time between each stereo bounce. Range 0.1–1 s (log). Default 0.3. */
|
|
1396
|
+
time?: Seconds;
|
|
1397
|
+
/** Feedback. How much delayed signal feeds back for more repeats. Range 0–0.9. Default 0.4. */
|
|
1398
|
+
feedback?: number;
|
|
1399
|
+
/** Stereo Spread. Controls how far left/right the bounces are panned. 0% = mono center, 100% = full stereo. Range 0–1. Default 1. */
|
|
1400
|
+
spread?: number;
|
|
1401
|
+
/** Dry/Wet Mix. Balance between original and delayed signal. Range 0–1. Default 0.5. */
|
|
1402
|
+
mix?: number;
|
|
1403
|
+
}
|
|
1404
|
+
export type PingPongInputs = {
|
|
1405
|
+
"in": AudioNode;
|
|
1406
|
+
};
|
|
1407
|
+
export type PingPongOutputs = {
|
|
1408
|
+
"out": AudioNode;
|
|
1409
|
+
};
|
|
1410
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1411
|
+
export type PingPongProps = {
|
|
1412
|
+
"in": AudioNode;
|
|
1413
|
+
"out": AudioNode;
|
|
1414
|
+
readonly params: {
|
|
1415
|
+
/** Delay Time. Native AudioParam — value is s 1:1. */
|
|
1416
|
+
"time": AudioParam;
|
|
1417
|
+
/** Feedback. Native AudioParam — value is the param value 1:1. */
|
|
1418
|
+
"feedback": AudioParam;
|
|
1419
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1420
|
+
"mix": AudioParam;
|
|
1421
|
+
};
|
|
1422
|
+
};
|
|
1423
|
+
export declare const PingPong: LibModule<PingPongParams, PingPongInputs, PingPongOutputs, PingPongProps>;
|
|
1424
|
+
export interface ResonatorParams {
|
|
1425
|
+
/** 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. */
|
|
1426
|
+
offset?: Semitones;
|
|
1427
|
+
/** Structure. Harmonic spacing of the resonator partials. Left = standard harmonic series, center = bell-like, right = metallic/inharmonic. Range 0–1. Default 0. */
|
|
1428
|
+
structure?: number;
|
|
1429
|
+
/** 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. */
|
|
1430
|
+
damping?: number;
|
|
1431
|
+
/** Dry/Wet Mix. Balance between original and resonated signal. Range 0–1. Default 0.5. */
|
|
1432
|
+
mix?: number;
|
|
1433
|
+
}
|
|
1434
|
+
export type ResonatorInputs = {
|
|
1435
|
+
"in": AudioNode;
|
|
1436
|
+
"voct": AudioNode;
|
|
1437
|
+
"modFreq": AudioNode;
|
|
1438
|
+
};
|
|
1439
|
+
export type ResonatorOutputs = {
|
|
1440
|
+
"out": AudioNode;
|
|
1441
|
+
};
|
|
1442
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1443
|
+
export type ResonatorProps = {
|
|
1444
|
+
"in": AudioNode;
|
|
1445
|
+
"out": AudioNode;
|
|
1446
|
+
"voct": AudioNode;
|
|
1447
|
+
"modFreq": AudioNode;
|
|
1448
|
+
readonly params: {
|
|
1449
|
+
/** Root Pitch Offset. Native AudioParam — value is semitone 1:1. */
|
|
1450
|
+
"offset": AudioParam;
|
|
1451
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1452
|
+
"mix": AudioParam;
|
|
1453
|
+
};
|
|
1454
|
+
};
|
|
1455
|
+
export declare const Resonator: LibModule<ResonatorParams, ResonatorInputs, ResonatorOutputs, ResonatorProps>;
|
|
1456
|
+
export interface ReverbParams {
|
|
1457
|
+
/** Decay Time (RT60). How long the tail takes to fall 60 dB. Short = room, long = hall or cathedral. Range 0.1–8 s (log). Default 2. */
|
|
1458
|
+
decay?: Seconds;
|
|
1459
|
+
/** Dry/Wet Mix. Equal-power balance between original (dry) and reverberant (wet) signal. Range 0–1. Default 0.3. */
|
|
1460
|
+
mix?: number;
|
|
1461
|
+
}
|
|
1462
|
+
export type ReverbInputs = {
|
|
1463
|
+
"in": AudioNode;
|
|
1464
|
+
};
|
|
1465
|
+
export type ReverbOutputs = {
|
|
1466
|
+
"out": AudioNode;
|
|
1467
|
+
};
|
|
1468
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1469
|
+
export type ReverbProps = {
|
|
1470
|
+
"in": AudioNode;
|
|
1471
|
+
"out": AudioNode;
|
|
1472
|
+
readonly params: {
|
|
1473
|
+
/** Decay Time (RT60). Native AudioParam — value is s 1:1. */
|
|
1474
|
+
"decay": AudioParam;
|
|
1475
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1476
|
+
"mix": AudioParam;
|
|
1477
|
+
};
|
|
1478
|
+
};
|
|
1479
|
+
export declare const Reverb: LibModule<ReverbParams, ReverbInputs, ReverbOutputs, ReverbProps>;
|
|
1480
|
+
export interface RingModulatorParams {
|
|
1481
|
+
/** Carrier Pitch Offset. Semitones added to the V/OCT input. Unpatched the input is silent, so this is the carrier note itself: 69 = 440 Hz. Driven by a keyboard or sequencer, 0 tracks the incoming notes. Range -48–108 semitones. Default 69. */
|
|
1482
|
+
offset?: Semitones;
|
|
1483
|
+
/** Dry/Wet Mix. Balance between original and ring-modulated signal. Range 0–1. Default 0.5. */
|
|
1484
|
+
mix?: number;
|
|
1485
|
+
}
|
|
1486
|
+
export type RingModulatorInputs = {
|
|
1487
|
+
"in": AudioNode;
|
|
1488
|
+
"voct": AudioNode;
|
|
1489
|
+
"modFreq": AudioNode;
|
|
1490
|
+
};
|
|
1491
|
+
export type RingModulatorOutputs = {
|
|
1492
|
+
"out": AudioNode;
|
|
1493
|
+
};
|
|
1494
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1495
|
+
export type RingModulatorProps = {
|
|
1496
|
+
"in": AudioNode;
|
|
1497
|
+
"out": AudioNode;
|
|
1498
|
+
"voct": AudioNode;
|
|
1499
|
+
"modFreq": AudioNode;
|
|
1500
|
+
readonly params: {
|
|
1501
|
+
/** Carrier Pitch Offset. Native AudioParam — value is semitone 1:1. */
|
|
1502
|
+
"offset": AudioParam;
|
|
1503
|
+
};
|
|
1504
|
+
};
|
|
1505
|
+
export declare const RingModulator: LibModule<RingModulatorParams, RingModulatorInputs, RingModulatorOutputs, RingModulatorProps>;
|
|
1506
|
+
export interface RotaryParams {
|
|
1507
|
+
/** Speed Mode. Toggle between slow "chorale" and fast "tremolo". The rotors ramp between speeds with inertia — horn in ~1 s, drum in ~4–5 s — so this is a mode switch, not a continuous rate. Default "slow". */
|
|
1508
|
+
speed?: "slow" | "fast";
|
|
1509
|
+
/** Slow Rate. Horn speed in chorale mode (the drum turns at 0.85× this). Applied via an inertia ramp, so it is set-only. Range 0.5–2 Hz. Default 0.8. */
|
|
1510
|
+
slowRate?: Hz;
|
|
1511
|
+
/** Fast Rate. Horn speed in tremolo mode (the drum turns at 0.85× this). Applied via an inertia ramp, so it is set-only. Range 4–8 Hz. Default 6. */
|
|
1512
|
+
fastRate?: Hz;
|
|
1513
|
+
/** Dry/Wet Mix. Balance between original and rotary speaker signal, driven by one ConstantSource (linear law: dry = 1 − mix, wet = mix). Range 0–1. Default 0.7. */
|
|
1514
|
+
mix?: number;
|
|
1515
|
+
}
|
|
1516
|
+
export type RotaryInputs = {
|
|
1517
|
+
"in": AudioNode;
|
|
1518
|
+
"modMix": AudioParam;
|
|
1519
|
+
};
|
|
1520
|
+
export type RotaryOutputs = {
|
|
1521
|
+
"out": AudioNode;
|
|
1522
|
+
};
|
|
1523
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1524
|
+
export type RotaryProps = {
|
|
1525
|
+
"in": AudioNode;
|
|
1526
|
+
"out": AudioNode;
|
|
1527
|
+
"modMix": AudioParam;
|
|
1528
|
+
readonly params: {
|
|
1529
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1530
|
+
"mix": AudioParam;
|
|
1531
|
+
};
|
|
1532
|
+
};
|
|
1533
|
+
export declare const Rotary: LibModule<RotaryParams, RotaryInputs, RotaryOutputs, RotaryProps>;
|
|
1534
|
+
export interface SaturatorParams {
|
|
1535
|
+
/** Drive. How hard to push into saturation. Adds harmonics and soft compression. Range 0–1. Default 0.5. */
|
|
1536
|
+
drive?: number;
|
|
1537
|
+
/** Warmth. Low frequency emphasis for a thicker, analog-like tone. Range 0–1. Default 0.5. */
|
|
1538
|
+
warmth?: number;
|
|
1539
|
+
/** Dry/Wet Mix. Balance between clean and saturated signal. Range 0–1. Default 1. */
|
|
1540
|
+
mix?: number;
|
|
1541
|
+
}
|
|
1542
|
+
export type SaturatorInputs = {
|
|
1543
|
+
"in": AudioNode;
|
|
1544
|
+
};
|
|
1545
|
+
export type SaturatorOutputs = {
|
|
1546
|
+
"out": AudioNode;
|
|
1547
|
+
};
|
|
1548
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1549
|
+
export type SaturatorProps = {
|
|
1550
|
+
"in": AudioNode;
|
|
1551
|
+
"out": AudioNode;
|
|
1552
|
+
readonly params: {
|
|
1553
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1554
|
+
"mix": AudioParam;
|
|
1555
|
+
};
|
|
1556
|
+
};
|
|
1557
|
+
export declare const Saturator: LibModule<SaturatorParams, SaturatorInputs, SaturatorOutputs, SaturatorProps>;
|
|
1558
|
+
export interface ShimmerParams {
|
|
1559
|
+
/** Reverb Decay. RT60 of the reverb tank in seconds. Range 0.5–10 s (log). Default 3. */
|
|
1560
|
+
decay?: Seconds;
|
|
1561
|
+
/** 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
|
+
pitch?: Semitones;
|
|
1563
|
+
/** Dry/Wet Mix. Equal-power balance between dry signal and shimmer output — independent of the regen amount. Range 0–1. Default 0.5. */
|
|
1564
|
+
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. */
|
|
1566
|
+
shimmer?: number;
|
|
1567
|
+
}
|
|
1568
|
+
export type ShimmerInputs = {
|
|
1569
|
+
"in": AudioNode;
|
|
1570
|
+
};
|
|
1571
|
+
export type ShimmerOutputs = {
|
|
1572
|
+
"out": AudioNode;
|
|
1573
|
+
};
|
|
1574
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1575
|
+
export type ShimmerProps = {
|
|
1576
|
+
"in": AudioNode;
|
|
1577
|
+
"out": AudioNode;
|
|
1578
|
+
readonly params: {
|
|
1579
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1580
|
+
"mix": AudioParam;
|
|
1581
|
+
/** Shimmer Regen. Native AudioParam — value is the param value 1:1. */
|
|
1582
|
+
"shimmer": AudioParam;
|
|
1583
|
+
};
|
|
1584
|
+
};
|
|
1585
|
+
export declare const Shimmer: LibModule<ShimmerParams, ShimmerInputs, ShimmerOutputs, ShimmerProps>;
|
|
1586
|
+
export interface SoftLimiterParams {
|
|
1587
|
+
/** Input Drive. Pushes signal into the limiter for more saturation and loudness. Range 0–1. Default 0.5. */
|
|
1588
|
+
drive?: number;
|
|
1589
|
+
/** Soft Knee. How gradually limiting kicks in. Higher = softer, more transparent. Range 0–1. Default 0.5. */
|
|
1590
|
+
knee?: number;
|
|
1591
|
+
/** Ceiling. Maximum output level in dB. Prevents clipping above this level. Range -12–0 dB. Default -0.5. */
|
|
1592
|
+
ceiling?: Decibels;
|
|
1593
|
+
}
|
|
1594
|
+
export type SoftLimiterInputs = {
|
|
1595
|
+
"in": AudioNode;
|
|
1596
|
+
};
|
|
1597
|
+
export type SoftLimiterOutputs = {
|
|
1598
|
+
"out": AudioNode;
|
|
1599
|
+
};
|
|
1600
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1601
|
+
export type SoftLimiterProps = {
|
|
1602
|
+
"in": AudioNode;
|
|
1603
|
+
"out": AudioNode;
|
|
1604
|
+
readonly params: Record<never, never>;
|
|
1605
|
+
};
|
|
1606
|
+
export declare const SoftLimiter: LibModule<SoftLimiterParams, SoftLimiterInputs, SoftLimiterOutputs, SoftLimiterProps>;
|
|
1607
|
+
export interface SpringReverbParams {
|
|
1608
|
+
/** Dry/Wet Mix. Equal-power blend of dry signal and spring output. Range 0–1. Default 0.35. */
|
|
1609
|
+
mix?: number;
|
|
1610
|
+
/** Reverb Decay. Stretch/sag of the spring's dispersion — higher values ring longer and smear more. Range 0.3–4 s (log). Default 1.5. */
|
|
1611
|
+
decay?: Seconds;
|
|
1612
|
+
/** Tone. Brightness of the spring output: darkens the rattly top end as it falls. Range 0–1. Default 0.6. */
|
|
1613
|
+
tone?: number;
|
|
1614
|
+
/** Drip. Spring bounce character — how much the delayed tail drips and boings. Range 0–1. Default 0.5. */
|
|
1615
|
+
drip?: number;
|
|
1616
|
+
}
|
|
1617
|
+
export type SpringReverbInputs = {
|
|
1618
|
+
"in": AudioNode;
|
|
1619
|
+
"knock": AudioNode;
|
|
1620
|
+
};
|
|
1621
|
+
export type SpringReverbOutputs = {
|
|
1622
|
+
"out": AudioNode;
|
|
1623
|
+
};
|
|
1624
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1625
|
+
export type SpringReverbProps = {
|
|
1626
|
+
"in": AudioNode;
|
|
1627
|
+
"knock": AudioNode;
|
|
1628
|
+
"out": AudioNode;
|
|
1629
|
+
readonly params: {
|
|
1630
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1631
|
+
"mix": AudioParam;
|
|
1632
|
+
/** Reverb Decay. Native AudioParam — value is s 1:1. */
|
|
1633
|
+
"decay": AudioParam;
|
|
1634
|
+
/** Tone. Native AudioParam — value is the param value 1:1. */
|
|
1635
|
+
"tone": AudioParam;
|
|
1636
|
+
/** Drip. Native AudioParam — value is the param value 1:1. */
|
|
1637
|
+
"drip": AudioParam;
|
|
1638
|
+
};
|
|
1639
|
+
};
|
|
1640
|
+
export declare const SpringReverb: LibModule<SpringReverbParams, SpringReverbInputs, SpringReverbOutputs, SpringReverbProps>;
|
|
1641
|
+
export interface StereoSpreadParams {
|
|
1642
|
+
/** Spread Amount. Controls the micro-delay time for Haas widening (0–5ms). More spread = wider perceived stereo image. Range 0–1. Default 0.7. */
|
|
1643
|
+
spread?: number;
|
|
1644
|
+
/** Crossover Frequency. Frequency above which Haas spreading is applied. Lows below this stay centered for mono compatibility. Range 200–2000 Hz (log). Default 800. */
|
|
1645
|
+
center?: Hz;
|
|
1646
|
+
}
|
|
1647
|
+
export type StereoSpreadInputs = {
|
|
1648
|
+
"in": AudioNode;
|
|
1649
|
+
};
|
|
1650
|
+
export type StereoSpreadOutputs = {
|
|
1651
|
+
"out": AudioNode;
|
|
1652
|
+
};
|
|
1653
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1654
|
+
export type StereoSpreadProps = {
|
|
1655
|
+
"in": AudioNode;
|
|
1656
|
+
"out": AudioNode;
|
|
1657
|
+
readonly params: Record<never, never>;
|
|
1658
|
+
};
|
|
1659
|
+
export declare const StereoSpread: LibModule<StereoSpreadParams, StereoSpreadInputs, StereoSpreadOutputs, StereoSpreadProps>;
|
|
1660
|
+
export interface SubharmonicParams {
|
|
1661
|
+
/** Direct Level. Level of the dry input signal passed through to the output. Range 0–1. Default 1. */
|
|
1662
|
+
direct?: number;
|
|
1663
|
+
/** Octave Down. Level of the first sub-octave (one octave below input via ÷2 frequency division). Range 0–1. Default 0.5. */
|
|
1664
|
+
octave1?: number;
|
|
1665
|
+
/** Two Octaves Down. Level of the second sub-octave (two octaves below input via ÷4 frequency division). Range 0–1. Default 0.3. */
|
|
1666
|
+
octave2?: number;
|
|
1667
|
+
}
|
|
1668
|
+
export type SubharmonicInputs = {
|
|
1669
|
+
"in": AudioNode;
|
|
1670
|
+
};
|
|
1671
|
+
export type SubharmonicOutputs = {
|
|
1672
|
+
"out": AudioNode;
|
|
1673
|
+
};
|
|
1674
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1675
|
+
export type SubharmonicProps = {
|
|
1676
|
+
"in": AudioNode;
|
|
1677
|
+
"out": AudioNode;
|
|
1678
|
+
readonly params: {
|
|
1679
|
+
/** Direct Level. Native AudioParam — value is the param value 1:1. */
|
|
1680
|
+
"direct": AudioParam;
|
|
1681
|
+
/** Octave Down. Native AudioParam — value is the param value 1:1. */
|
|
1682
|
+
"octave1": AudioParam;
|
|
1683
|
+
/** Two Octaves Down. Native AudioParam — value is the param value 1:1. */
|
|
1684
|
+
"octave2": AudioParam;
|
|
1685
|
+
};
|
|
1686
|
+
};
|
|
1687
|
+
export declare const Subharmonic: LibModule<SubharmonicParams, SubharmonicInputs, SubharmonicOutputs, SubharmonicProps>;
|
|
1688
|
+
export interface TapeDelayParams {
|
|
1689
|
+
/** Delay Time. Echo time. Changes glide with a tape-style pitch bend instead of jumping. Range 0.05–1.5 s (log). Default 0.375. */
|
|
1690
|
+
time?: Seconds;
|
|
1691
|
+
/** Feedback. Repeat intensity. High values create dreamy, degrading echoes. Range 0–0.95. Default 0.5. */
|
|
1692
|
+
feedback?: number;
|
|
1693
|
+
/** Dry/Wet Mix. Balance between original and delayed signal. Range 0–1. Default 0.4. */
|
|
1694
|
+
mix?: number;
|
|
1695
|
+
/** Wow & Flutter. Slow wow plus fast flutter — tape transport speed wobble, proportional to delay time. Range 0–1. Default 0.3. */
|
|
1696
|
+
flutter?: number;
|
|
1697
|
+
/** Saturation. Tape saturation warmth and subtle compression, applied on every pass. Range 0–1. Default 0.4. */
|
|
1698
|
+
saturation?: number;
|
|
1699
|
+
}
|
|
1700
|
+
export type TapeDelayInputs = {
|
|
1701
|
+
"in": AudioNode;
|
|
1702
|
+
};
|
|
1703
|
+
export type TapeDelayOutputs = {
|
|
1704
|
+
"out": AudioNode;
|
|
1705
|
+
};
|
|
1706
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1707
|
+
export type TapeDelayProps = {
|
|
1708
|
+
"in": AudioNode;
|
|
1709
|
+
"out": AudioNode;
|
|
1710
|
+
readonly params: {
|
|
1711
|
+
/** Delay Time. Native AudioParam — value is s 1:1. */
|
|
1712
|
+
"time": AudioParam;
|
|
1713
|
+
/** Feedback. Native AudioParam — value is the param value 1:1. */
|
|
1714
|
+
"feedback": AudioParam;
|
|
1715
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1716
|
+
"mix": AudioParam;
|
|
1717
|
+
/** Wow & Flutter. Native AudioParam — value is the param value 1:1. */
|
|
1718
|
+
"flutter": AudioParam;
|
|
1719
|
+
/** Saturation. Native AudioParam — value is the param value 1:1. */
|
|
1720
|
+
"saturation": AudioParam;
|
|
1721
|
+
};
|
|
1722
|
+
};
|
|
1723
|
+
export declare const TapeDelay: LibModule<TapeDelayParams, TapeDelayInputs, TapeDelayOutputs, TapeDelayProps>;
|
|
1724
|
+
export interface TapeStopParams {
|
|
1725
|
+
/** Stop/Start Time. Duration of the tape deceleration or acceleration ramp. Range 0.01–4 s (log). Default 0.5. */
|
|
1726
|
+
time?: Seconds;
|
|
1727
|
+
/** Dry/Wet Mix. Balance between original signal and tape-stopped signal. Range 0–1. Default 1. */
|
|
1728
|
+
mix?: number;
|
|
1729
|
+
}
|
|
1730
|
+
export type TapeStopInputs = {
|
|
1731
|
+
"in": AudioNode;
|
|
1732
|
+
"trigger": AudioNode;
|
|
1733
|
+
};
|
|
1734
|
+
export type TapeStopOutputs = {
|
|
1735
|
+
"out": AudioNode;
|
|
1736
|
+
};
|
|
1737
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1738
|
+
export type TapeStopProps = {
|
|
1739
|
+
"in": AudioNode;
|
|
1740
|
+
"trigger": AudioNode;
|
|
1741
|
+
"out": AudioNode;
|
|
1742
|
+
readonly params: {
|
|
1743
|
+
/** Stop/Start Time. Native AudioParam — value is s 1:1. */
|
|
1744
|
+
"time": AudioParam;
|
|
1745
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1746
|
+
"mix": AudioParam;
|
|
1747
|
+
};
|
|
1748
|
+
};
|
|
1749
|
+
export declare const TapeStop: LibModule<TapeStopParams, TapeStopInputs, TapeStopOutputs, TapeStopProps>;
|
|
1750
|
+
export interface TiltParams {
|
|
1751
|
+
/** Tilt Amount. Positive tilts towards highs (brighter), negative towards lows (darker). Drives the low shelf (inverted) and high shelf gains. Range -12–12 dB. Default 0. */
|
|
1752
|
+
tilt?: Decibels;
|
|
1753
|
+
/** Pivot Frequency. Center frequency around which the tilt occurs, shared by both the low and high shelf filters. Range 200–5000 Hz. Default 1000. */
|
|
1754
|
+
frequency?: Hz;
|
|
1755
|
+
}
|
|
1756
|
+
export type TiltInputs = {
|
|
1757
|
+
"in": AudioNode;
|
|
1758
|
+
};
|
|
1759
|
+
export type TiltOutputs = {
|
|
1760
|
+
"out": AudioNode;
|
|
1761
|
+
};
|
|
1762
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1763
|
+
export type TiltProps = {
|
|
1764
|
+
"in": AudioNode;
|
|
1765
|
+
"out": AudioNode;
|
|
1766
|
+
readonly params: Record<never, never>;
|
|
1767
|
+
};
|
|
1768
|
+
export declare const Tilt: LibModule<TiltParams, TiltInputs, TiltOutputs, TiltProps>;
|
|
1769
|
+
export interface TremoloParams {
|
|
1770
|
+
/** Rate. Amplitude-modulation LFO speed, driven directly by the oscillator frequency. modRate sums into the same AudioParam. Range 0.5–20 Hz. Default 5. */
|
|
1771
|
+
rate?: Hz;
|
|
1772
|
+
/** Modulation Depth. How much the volume varies. 100% goes from silence to full volume. Split across a depth gain and a DC offset, so it is set-only (no single AudioParam carries it). Range 0–1. Default 0.5. */
|
|
1773
|
+
depth?: number;
|
|
1774
|
+
/** LFO Shape. Waveform shape: sine for smooth, triangle for linear, square for choppy. Default "sine". */
|
|
1775
|
+
shape?: "sine" | "triangle" | "square";
|
|
1776
|
+
}
|
|
1777
|
+
export type TremoloInputs = {
|
|
1778
|
+
"in": AudioNode;
|
|
1779
|
+
"modRate": AudioParam;
|
|
1780
|
+
};
|
|
1781
|
+
export type TremoloOutputs = {
|
|
1782
|
+
"out": AudioNode;
|
|
1783
|
+
};
|
|
1784
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1785
|
+
export type TremoloProps = {
|
|
1786
|
+
"in": AudioNode;
|
|
1787
|
+
"out": AudioNode;
|
|
1788
|
+
"modRate": AudioParam;
|
|
1789
|
+
readonly params: {
|
|
1790
|
+
/** Rate. Native AudioParam — value is Hz 1:1. */
|
|
1791
|
+
"rate": AudioParam;
|
|
1792
|
+
};
|
|
1793
|
+
};
|
|
1794
|
+
export declare const Tremolo: LibModule<TremoloParams, TremoloInputs, TremoloOutputs, TremoloProps>;
|
|
1795
|
+
export interface VcaParams {
|
|
1796
|
+
/** Resting level. Sets the level when no CV is patched, and the offset the CV rides on. Leave at 0 for envelope-gated patches so the VCA fully closes. Range 0–2. Default 0.5. */
|
|
1797
|
+
gain?: number;
|
|
1798
|
+
/** CV attenuverter. Scales the control voltage from the CV input. Negative values invert it, so the signal ducks instead of swelling. Range -1–1. Default 1. */
|
|
1799
|
+
cvAmount?: number;
|
|
1800
|
+
}
|
|
1801
|
+
export type VcaInputs = {
|
|
1802
|
+
"in": AudioNode;
|
|
1803
|
+
"modGain": AudioParam;
|
|
1804
|
+
};
|
|
1805
|
+
export type VcaOutputs = {
|
|
1806
|
+
"out": AudioNode;
|
|
1807
|
+
};
|
|
1808
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1809
|
+
export type VcaProps = {
|
|
1810
|
+
"in": AudioNode;
|
|
1811
|
+
"out": AudioNode;
|
|
1812
|
+
"modGain": AudioParam;
|
|
1813
|
+
readonly params: {
|
|
1814
|
+
/** Resting level. Native AudioParam — value is the param value 1:1. */
|
|
1815
|
+
"gain": AudioParam;
|
|
1816
|
+
/** CV attenuverter. Native AudioParam — value is the param value 1:1. */
|
|
1817
|
+
"cvAmount": AudioParam;
|
|
1818
|
+
};
|
|
1819
|
+
};
|
|
1820
|
+
export declare const Vca: LibModule<VcaParams, VcaInputs, VcaOutputs, VcaProps>;
|
|
1821
|
+
export interface VcfParams {
|
|
1822
|
+
/** Filter Type. Selects lowpass, highpass, bandpass, or notch response. Default "lowpass". */
|
|
1823
|
+
filterType?: "lowpass" | "highpass" | "bandpass" | "notch";
|
|
1824
|
+
/** Cutoff Note. Filter cutoff as a note (83 ≈ 1 kHz, 69 = 440 Hz). Drives the V/OCT worklet 1:1 — the panel knob shows the equivalent Hz. Range 15–135 notes. Default 83. */
|
|
1825
|
+
note?: Note;
|
|
1826
|
+
/** Resonance (Q). True filter Q, identical in every mode: Q 0.707 is maximally flat, Q 8 peaks ~+18 dB in lowpass and narrows bandpass to f/8. Range 0.1–20 (sqrt). Default 1. */
|
|
1827
|
+
resonance?: number;
|
|
1828
|
+
}
|
|
1829
|
+
export type VcfInputs = {
|
|
1830
|
+
"in": AudioNode;
|
|
1831
|
+
"modFreq": AudioNode;
|
|
1832
|
+
"modQ": AudioNode;
|
|
1833
|
+
};
|
|
1834
|
+
export type VcfOutputs = {
|
|
1835
|
+
"out": AudioNode;
|
|
1836
|
+
};
|
|
1837
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1838
|
+
export type VcfProps = {
|
|
1839
|
+
"in": AudioNode;
|
|
1840
|
+
"out": AudioNode;
|
|
1841
|
+
"modFreq": AudioNode;
|
|
1842
|
+
"modQ": AudioNode;
|
|
1843
|
+
readonly params: {
|
|
1844
|
+
/** Cutoff Note. Native AudioParam — value is note 1:1. */
|
|
1845
|
+
"note": AudioParam;
|
|
1846
|
+
};
|
|
1847
|
+
};
|
|
1848
|
+
export declare const Vcf: LibModule<VcfParams, VcfInputs, VcfOutputs, VcfProps>;
|
|
1849
|
+
export interface VcoParams {
|
|
1850
|
+
/** Waveshape Skew. Symmetry of the waveform: −1 reversed sawtooth, 0 symmetric, +1 sawtooth. Range -1–1. Default 1. */
|
|
1851
|
+
skew?: number;
|
|
1852
|
+
/** Waveshape Curvature. Curvature of the waveform: −1 square, 0 triangle, +1 sine. Range -1–1. Default 0. */
|
|
1853
|
+
shape?: number;
|
|
1854
|
+
/** Pitch Offset. Semitones added to the V/OCT input (12 = one octave). Unpatched the input is silent, so this is the note itself: 69 = A4. Driven by an absolute pitch CV (keyboard, sequencer), set 0 to play as-is or ±12 to shift an octave. Range -48–108 semitones. Default 69. */
|
|
1855
|
+
offset?: Semitones;
|
|
1856
|
+
/** Detune. Fine pitch offset in semitones; ±1 = ±100 cents. Use for detuning oscillators against each other. Range -1–1 semitones. Default 0. */
|
|
1857
|
+
detune?: Semitones;
|
|
1858
|
+
/** Output Level. Amplitude of the oscillator output signal. Range 0–1. Default 0.5. */
|
|
1859
|
+
gain?: number;
|
|
1860
|
+
}
|
|
1861
|
+
export type VcoInputs = {
|
|
1862
|
+
"voct": AudioNode;
|
|
1863
|
+
"modSkew": AudioParam;
|
|
1864
|
+
"modShape": AudioParam;
|
|
1865
|
+
"modDetune": AudioParam;
|
|
1866
|
+
};
|
|
1867
|
+
export type VcoOutputs = {
|
|
1868
|
+
"out": AudioNode;
|
|
1869
|
+
};
|
|
1870
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1871
|
+
export type VcoProps = {
|
|
1872
|
+
"voct": AudioNode;
|
|
1873
|
+
"out": AudioNode;
|
|
1874
|
+
"modSkew": AudioParam;
|
|
1875
|
+
"modShape": AudioParam;
|
|
1876
|
+
"modDetune": AudioParam;
|
|
1877
|
+
readonly params: {
|
|
1878
|
+
/** Waveshape Skew. Native AudioParam — value is the param value 1:1. */
|
|
1879
|
+
"skew": AudioParam;
|
|
1880
|
+
/** Waveshape Curvature. Native AudioParam — value is the param value 1:1. */
|
|
1881
|
+
"shape": AudioParam;
|
|
1882
|
+
/** Pitch Offset. Native AudioParam — value is semitone 1:1. */
|
|
1883
|
+
"offset": AudioParam;
|
|
1884
|
+
/** Detune. Native AudioParam — value is semitone 1:1. */
|
|
1885
|
+
"detune": AudioParam;
|
|
1886
|
+
/** Output Level. Native AudioParam — value is the param value 1:1. */
|
|
1887
|
+
"gain": AudioParam;
|
|
1888
|
+
};
|
|
1889
|
+
};
|
|
1890
|
+
export declare const Vco: LibModule<VcoParams, VcoInputs, VcoOutputs, VcoProps>;
|
|
1891
|
+
export interface WahParams {
|
|
1892
|
+
/** 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. Range 55–95 notes. Default 79. */
|
|
1893
|
+
note?: Note;
|
|
1894
|
+
/** Resonance. How pronounced and vocal the wah peak sounds. Range 1–20 (log). Default 8. */
|
|
1895
|
+
resonance?: number;
|
|
1896
|
+
/** Auto-Wah Rate. Speed of the automatic wah sweep in Hz. Range 0.1–10 Hz (log). Default 1. */
|
|
1897
|
+
rate?: Hz;
|
|
1898
|
+
/** Modulation Depth. How much the frequency sweeps. Full depth ≈ 3 octaves. Range 0–1. Default 0.6. */
|
|
1899
|
+
depth?: number;
|
|
1900
|
+
}
|
|
1901
|
+
export type WahInputs = {
|
|
1902
|
+
"in": AudioNode;
|
|
1903
|
+
"modFreq": AudioNode;
|
|
1904
|
+
};
|
|
1905
|
+
export type WahOutputs = {
|
|
1906
|
+
"out": AudioNode;
|
|
1907
|
+
};
|
|
1908
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1909
|
+
export type WahProps = {
|
|
1910
|
+
"in": AudioNode;
|
|
1911
|
+
"out": AudioNode;
|
|
1912
|
+
"modFreq": AudioNode;
|
|
1913
|
+
readonly params: {
|
|
1914
|
+
/** Center Note. Native AudioParam — value is note 1:1. */
|
|
1915
|
+
"note": AudioParam;
|
|
1916
|
+
/** Auto-Wah Rate. Native AudioParam — value is Hz 1:1. */
|
|
1917
|
+
"rate": AudioParam;
|
|
1918
|
+
};
|
|
1919
|
+
};
|
|
1920
|
+
export declare const Wah: LibModule<WahParams, WahInputs, WahOutputs, WahProps>;
|
|
1921
|
+
export interface WavefolderParams {
|
|
1922
|
+
/** Fold Amount. How many times the waveform folds back. More folds = richer harmonics. Range 1–10. Default 2. */
|
|
1923
|
+
folds?: number;
|
|
1924
|
+
/** Symmetry. Asymmetric folding creates even harmonics for different timbres. Range -1–1. Default 0. */
|
|
1925
|
+
symmetry?: number;
|
|
1926
|
+
/** Dry/Wet Mix. Balance between original and wavefolded signal. Range 0–1. Default 1. */
|
|
1927
|
+
mix?: number;
|
|
1928
|
+
}
|
|
1929
|
+
export type WavefolderInputs = {
|
|
1930
|
+
"in": AudioNode;
|
|
1931
|
+
};
|
|
1932
|
+
export type WavefolderOutputs = {
|
|
1933
|
+
"out": AudioNode;
|
|
1934
|
+
};
|
|
1935
|
+
/** Port properties on the instance: slug → native connect target (same as input()/output()). */
|
|
1936
|
+
export type WavefolderProps = {
|
|
1937
|
+
"in": AudioNode;
|
|
1938
|
+
"out": AudioNode;
|
|
1939
|
+
readonly params: {
|
|
1940
|
+
/** Dry/Wet Mix. Native AudioParam — value is the param value 1:1. */
|
|
1941
|
+
"mix": AudioParam;
|
|
1942
|
+
};
|
|
1943
|
+
};
|
|
1944
|
+
export declare const Wavefolder: LibModule<WavefolderParams, WavefolderInputs, WavefolderOutputs, WavefolderProps>;
|
|
1945
|
+
|
|
1946
|
+
export {};
|