@effetune/dsp 0.0.0

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.
@@ -0,0 +1,512 @@
1
+ export type {
2
+ LevelMeterOptions,
3
+ OscilloscopeOptions,
4
+ SpectrogramOptions,
5
+ SpectrumAnalyzerOptions,
6
+ StereoMeterOptions,
7
+ ChannelDividerOptions,
8
+ DCOffsetOptions,
9
+ FIRCrossoverOptions,
10
+ MatrixOptions,
11
+ MultiChannelPanelOptions,
12
+ MuteOptions,
13
+ PolarityInversionOptions,
14
+ StereoBalanceOptions,
15
+ VolumeOptions,
16
+ DelayOptions,
17
+ TimeAlignmentOptions,
18
+ AMRadioSimulatorOptions,
19
+ AutoLevelerOptions,
20
+ BandPassFilterOptions,
21
+ BitCrusherOptions,
22
+ BrickwallLimiterOptions,
23
+ CombFilterOptions,
24
+ CommonEffectOptions,
25
+ CompressorOptions,
26
+ CrossfeedFilterOptions,
27
+ DSD64IMDSimulatorOptions,
28
+ DattorroPlateReverbOptions,
29
+ DigitalErrorEmulatorOptions,
30
+ DopplerDistortionOptions,
31
+ DynamicSaturationOptions,
32
+ EarphoneCableSimOptions,
33
+ EffectChannel,
34
+ EffectClassByType,
35
+ EffectOptionsByType,
36
+ EffectType,
37
+ ExciterOptions,
38
+ ExpanderOptions,
39
+ FDNReverbOptions,
40
+ FMRadioSimulatorOptions,
41
+ FifteenBandGEQOptions,
42
+ FifteenBandPEQOptions,
43
+ FiveBandDynamicEQOptions,
44
+ FiveBandFIRPEQOptions,
45
+ FiveBandPEQOptions,
46
+ GateOptions,
47
+ GroupDelayEQOptions,
48
+ HardClippingOptions,
49
+ HarmonicDistortionOptions,
50
+ HiPassFilterOptions,
51
+ HornResonatorOptions,
52
+ HornResonatorPlusOptions,
53
+ HumGeneratorOptions,
54
+ IRReverbAssets,
55
+ IRReverbOptions,
56
+ LoPassFilterOptions,
57
+ LoudnessEqualizerOptions,
58
+ MSMatrixOptions,
59
+ ModalResonatorOptions,
60
+ MultibandBalanceOptions,
61
+ MultibandCompressorOptions,
62
+ MultibandExpanderOptions,
63
+ MultibandSaturationOptions,
64
+ MultibandTransientOptions,
65
+ NarrowRangeOptions,
66
+ NoiseBlenderOptions,
67
+ OscillatorOptions,
68
+ PitchShifterOptions,
69
+ PowerAmpSagOptions,
70
+ RSReverbOptions,
71
+ RoomEQOptions,
72
+ SaturationOptions,
73
+ SimpleJitterOptions,
74
+ StereoBlendOptions,
75
+ SubSynthOptions,
76
+ SWRadioSimulatorOptions,
77
+ TiltEQOptions,
78
+ ToneControlOptions,
79
+ TransientShaperOptions,
80
+ TremoloOptions,
81
+ VinylArtifactsOptions,
82
+ VinylSimulatorOptions,
83
+ WowFlutterOptions
84
+ } from './generated-effects.js';
85
+ export {
86
+ LevelMeter,
87
+ Oscilloscope,
88
+ Spectrogram,
89
+ SpectrumAnalyzer,
90
+ StereoMeter,
91
+ ChannelDivider,
92
+ DCOffset,
93
+ FIRCrossover,
94
+ Matrix,
95
+ MultiChannelPanel,
96
+ Mute,
97
+ PolarityInversion,
98
+ StereoBalance,
99
+ Volume,
100
+ Delay,
101
+ TimeAlignment,
102
+ AMRadioSimulator,
103
+ AutoLeveler,
104
+ BandPassFilter,
105
+ BitCrusher,
106
+ BrickwallLimiter,
107
+ CombFilter,
108
+ Compressor,
109
+ CrossfeedFilter,
110
+ DSD64IMDSimulator,
111
+ DattorroPlateReverb,
112
+ DigitalErrorEmulator,
113
+ DopplerDistortion,
114
+ DynamicSaturation,
115
+ EarphoneCableSim,
116
+ EFFECT_CLASSES,
117
+ EFFECT_METADATA,
118
+ EFFECT_TYPES,
119
+ Exciter,
120
+ Expander,
121
+ FDNReverb,
122
+ FMRadioSimulator,
123
+ FifteenBandGEQ,
124
+ FifteenBandPEQ,
125
+ FiveBandDynamicEQ,
126
+ FiveBandFIRPEQ,
127
+ FiveBandPEQ,
128
+ Gate,
129
+ GroupDelayEQ,
130
+ HardClipping,
131
+ HarmonicDistortion,
132
+ HiPassFilter,
133
+ HornResonator,
134
+ HornResonatorPlus,
135
+ HumGenerator,
136
+ IRReverb,
137
+ LoPassFilter,
138
+ LoudnessEqualizer,
139
+ MSMatrix,
140
+ ModalResonator,
141
+ MultibandBalance,
142
+ MultibandCompressor,
143
+ MultibandExpander,
144
+ MultibandSaturation,
145
+ MultibandTransient,
146
+ NarrowRange,
147
+ NoiseBlender,
148
+ Oscillator,
149
+ PitchShifter,
150
+ PowerAmpSag,
151
+ RSReverb,
152
+ RoomEQ,
153
+ Saturation,
154
+ SimpleJitter,
155
+ StereoBlend,
156
+ SubSynth,
157
+ SWRadioSimulator,
158
+ TiltEQ,
159
+ ToneControl,
160
+ TransientShaper,
161
+ Tremolo,
162
+ VinylArtifacts,
163
+ VinylSimulator,
164
+ WowFlutter,
165
+ createLevelMeter,
166
+ createOscilloscope,
167
+ createSpectrogram,
168
+ createSpectrumAnalyzer,
169
+ createStereoMeter,
170
+ createChannelDivider,
171
+ createDCOffset,
172
+ createFIRCrossover,
173
+ createMatrix,
174
+ createMultiChannelPanel,
175
+ createMute,
176
+ createPolarityInversion,
177
+ createStereoBalance,
178
+ createVolume,
179
+ createDelay,
180
+ createTimeAlignment,
181
+ createAMRadioSimulator,
182
+ createAutoLeveler,
183
+ createBandPassFilter,
184
+ createBitCrusher,
185
+ createBrickwallLimiter,
186
+ createCombFilter,
187
+ createCompressor,
188
+ createCrossfeedFilter,
189
+ createDSD64IMDSimulator,
190
+ createDattorroPlateReverb,
191
+ createDigitalErrorEmulator,
192
+ createDopplerDistortion,
193
+ createDynamicSaturation,
194
+ createEarphoneCableSim,
195
+ createEffect,
196
+ createExciter,
197
+ createExpander,
198
+ createFDNReverb,
199
+ createFMRadioSimulator,
200
+ createFifteenBandGEQ,
201
+ createFifteenBandPEQ,
202
+ createFiveBandDynamicEQ,
203
+ createFiveBandFIRPEQ,
204
+ createFiveBandPEQ,
205
+ createGate,
206
+ createGroupDelayEQ,
207
+ createHardClipping,
208
+ createHarmonicDistortion,
209
+ createHiPassFilter,
210
+ createHornResonator,
211
+ createHornResonatorPlus,
212
+ createHumGenerator,
213
+ createIRReverb,
214
+ createLoPassFilter,
215
+ createLoudnessEqualizer,
216
+ createMSMatrix,
217
+ createModalResonator,
218
+ createMultibandBalance,
219
+ createMultibandCompressor,
220
+ createMultibandExpander,
221
+ createMultibandSaturation,
222
+ createMultibandTransient,
223
+ createNarrowRange,
224
+ createNoiseBlender,
225
+ createOscillator,
226
+ createPitchShifter,
227
+ createPowerAmpSag,
228
+ createRSReverb,
229
+ createRoomEQ,
230
+ createSaturation,
231
+ createSimpleJitter,
232
+ createStereoBlend,
233
+ createSubSynth,
234
+ createSWRadioSimulator,
235
+ createTiltEQ,
236
+ createToneControl,
237
+ createTransientShaper,
238
+ createTremolo,
239
+ createVinylArtifacts,
240
+ createVinylSimulator,
241
+ createWowFlutter
242
+ } from './generated-effects.js';
243
+ export { Effect, EFFECT_CHANNELS } from './effect.js';
244
+ export type { EffectDefinition } from './effect.js';
245
+
246
+ import type { Effect } from './effect.js';
247
+ import type { EffectChannel, EffectType } from './generated-effects.js';
248
+
249
+ export declare class EffeTuneError extends Error {}
250
+ export declare class ValidationError extends EffeTuneError {}
251
+ export declare class EffectError extends EffeTuneError {}
252
+ export declare class AssetError extends EffeTuneError {}
253
+ export declare class EffeTuneRuntimeError extends EffeTuneError {}
254
+ export declare class StateError extends EffeTuneError {}
255
+
256
+ export interface ChainEffect {
257
+ readonly id: string;
258
+ readonly type: EffectType;
259
+ readonly enabled: boolean;
260
+ readonly channel: EffectChannel;
261
+ readonly parameters: Readonly<Record<string, unknown>>;
262
+ readonly assets?: Readonly<Record<string, string>>;
263
+ }
264
+
265
+ export interface ChainEffectInput {
266
+ readonly id?: string;
267
+ readonly type: EffectType;
268
+ readonly enabled?: boolean;
269
+ readonly channel?: EffectChannel;
270
+ readonly parameters: Readonly<Record<string, unknown>>;
271
+ readonly assets?: Readonly<Record<string, string>>;
272
+ }
273
+
274
+ export interface ChainDocument {
275
+ readonly version: 1;
276
+ readonly chain: readonly ChainEffect[];
277
+ }
278
+
279
+ export interface ChainDocumentInput {
280
+ readonly version: 1;
281
+ readonly chain: readonly ChainEffectInput[];
282
+ }
283
+
284
+ export interface MatrixPath {
285
+ readonly inputSlot: number;
286
+ readonly outputSlot: number;
287
+ readonly irChannel: number;
288
+ }
289
+
290
+ export interface ImpulseResponseFormat {
291
+ readonly formatTag: 1;
292
+ readonly magic: 'ETA1';
293
+ readonly headerBytes: 32;
294
+ readonly pathRecordBytes: 12;
295
+ readonly reservedBytes: 8;
296
+ readonly sampleType: 'float32';
297
+ readonly byteOrder: 'little-endian';
298
+ readonly layout: 'planar';
299
+ readonly channels: number;
300
+ readonly frames: number;
301
+ readonly sampleRate: number;
302
+ readonly topology: 'unspecified' | 'mono' | 'independent' | 'trueStereo' | 'matrix';
303
+ readonly pathCount: number;
304
+ readonly paths?: readonly MatrixPath[];
305
+ }
306
+
307
+ export interface Eta1EncodeOptions {
308
+ readonly channels: readonly Float32Array[];
309
+ readonly sampleRate: number;
310
+ readonly topology?: 'unspecified' | 'mono' | 'independent' | 'trueStereo' | 'matrix';
311
+ readonly paths?: readonly MatrixPath[];
312
+ }
313
+
314
+ export interface BundleAsset {
315
+ readonly id: string;
316
+ readonly kind: 'impulseResponse';
317
+ readonly reference: string;
318
+ readonly sha256: string;
319
+ readonly byteLength: number;
320
+ readonly format: ImpulseResponseFormat;
321
+ }
322
+
323
+ export interface BundleDocument {
324
+ readonly version: 1;
325
+ readonly chain: ChainDocumentInput;
326
+ readonly assets: readonly BundleAsset[];
327
+ }
328
+
329
+ export interface ResolvedAsset {
330
+ readonly bytes?: ArrayBuffer | ArrayBufferView;
331
+ readonly data?: ArrayBuffer | ArrayBufferView;
332
+ readonly format?: ImpulseResponseFormat;
333
+ }
334
+
335
+ export type AssetResolver = (
336
+ reference: string,
337
+ manifest?: BundleAsset
338
+ ) => ResolvedAsset | ArrayBuffer | ArrayBufferView | Response | null |
339
+ Promise<ResolvedAsset | ArrayBuffer | ArrayBufferView | Response | null>;
340
+
341
+ export interface ArtifactOptions {
342
+ readonly variant?: 'auto' | 'baseline' | 'simd';
343
+ readonly wasmUrl?: string | URL;
344
+ readonly simdWasmUrl?: string | URL;
345
+ readonly metaUrl?: string | URL;
346
+ readonly fetch?: typeof globalThis.fetch;
347
+ readonly webAssembly?: typeof WebAssembly;
348
+ readonly cache?: boolean;
349
+ }
350
+
351
+ export interface CreateChainOptions extends ArtifactOptions {
352
+ readonly assetResolver?: AssetResolver | { resolve: AssetResolver };
353
+ }
354
+
355
+ export interface TelemetryFrameBase {
356
+ readonly kind: 'level' | 'oscilloscope' | 'spectrum' | 'spectrogram' | 'stereo';
357
+ readonly effectType: EffectType;
358
+ readonly effectId: string | null;
359
+ readonly effectIndex: number;
360
+ readonly sequence: number;
361
+ /** Frames lost since the previous decoded delivery. */
362
+ readonly dropped: number;
363
+ }
364
+
365
+ export interface LevelTelemetryChannel {
366
+ readonly peak: number;
367
+ readonly rms: number;
368
+ readonly clipped: boolean;
369
+ }
370
+
371
+ export interface LevelTelemetryFrame extends TelemetryFrameBase {
372
+ readonly kind: 'level';
373
+ readonly channels: readonly LevelTelemetryChannel[];
374
+ }
375
+
376
+ export interface OscilloscopeTelemetryFrame extends TelemetryFrameBase {
377
+ readonly kind: 'oscilloscope';
378
+ readonly sampleRate: number;
379
+ readonly captureSampleCount: number;
380
+ readonly triggerOffset: number;
381
+ readonly triggered: boolean;
382
+ readonly encoding: 'samples' | 'minMax';
383
+ readonly sampleIndices: Uint32Array;
384
+ readonly values: Float32Array;
385
+ }
386
+
387
+ export interface SpectrumTelemetryFrame extends TelemetryFrameBase {
388
+ readonly kind: 'spectrum';
389
+ readonly sampleRate: number;
390
+ readonly points: number;
391
+ readonly binsTruncated: boolean;
392
+ readonly currentDb: Float32Array;
393
+ readonly peakDb: Float32Array;
394
+ }
395
+
396
+ export interface SpectrogramTelemetryFrame extends TelemetryFrameBase {
397
+ readonly kind: 'spectrogram';
398
+ readonly sampleRate: number;
399
+ readonly timeSeconds: number;
400
+ readonly points: number;
401
+ readonly intensities: Uint8Array;
402
+ }
403
+
404
+ export interface StereoTelemetryFrame extends TelemetryFrameBase {
405
+ readonly kind: 'stereo';
406
+ readonly sampleRate: number;
407
+ readonly discontinuity: boolean;
408
+ /** Interleaved side (R-L), mid (L+R) coordinate pairs. */
409
+ readonly samples: Float32Array;
410
+ readonly envelope: Float32Array;
411
+ readonly correlation: number;
412
+ readonly balance: number;
413
+ readonly peakLeft: number;
414
+ readonly peakRight: number;
415
+ }
416
+
417
+ export type TelemetryFrame =
418
+ | LevelTelemetryFrame
419
+ | OscilloscopeTelemetryFrame
420
+ | SpectrumTelemetryFrame
421
+ | SpectrogramTelemetryFrame
422
+ | StereoTelemetryFrame;
423
+
424
+ export type TelemetryCallback = (frame: TelemetryFrame) => void;
425
+
426
+ export interface ProcessOptions {
427
+ readonly sampleRate: number;
428
+ readonly seed?: number;
429
+ readonly blockSize?: number;
430
+ readonly onTelemetry?: TelemetryCallback;
431
+ }
432
+
433
+ export interface StreamOptions {
434
+ readonly sampleRate: number;
435
+ readonly channels?: number;
436
+ readonly seed?: number;
437
+ readonly blockSize?: number;
438
+ readonly onTelemetry?: TelemetryCallback;
439
+ }
440
+
441
+ export interface ParameterEvent {
442
+ readonly frame: number;
443
+ readonly effectId: string;
444
+ readonly parameters: Readonly<Record<string, unknown>>;
445
+ }
446
+
447
+ export interface StreamProcessOptions {
448
+ readonly events?: readonly ParameterEvent[];
449
+ }
450
+
451
+ export interface PrewarmOptions {
452
+ readonly sampleRate: number;
453
+ readonly channels?: number;
454
+ readonly seed?: number;
455
+ readonly blockSize?: number;
456
+ }
457
+
458
+ /** Options for `Chain.latencySamples()`, which reports latency without a stream. */
459
+ export interface LatencyOptions {
460
+ readonly sampleRate: number;
461
+ /** Channel count the chain will process; defaults to 2. */
462
+ readonly channels?: number;
463
+ readonly blockSize?: number;
464
+ }
465
+
466
+ export declare class Chain {
467
+ private constructor();
468
+ readonly preset: ChainDocument;
469
+ readonly effects: readonly ChainEffect[];
470
+ setParam(effectId: string, parameterName: string, value: unknown): this;
471
+ reset(): this;
472
+ prewarm(options: PrewarmOptions): Promise<this>;
473
+ latencySamples(options: LatencyOptions): Promise<number>;
474
+ stream(options: StreamOptions): Promise<ChainStream>;
475
+ process(audio: readonly Float32Array[], options: ProcessOptions): Promise<Float32Array[]>;
476
+ close(): void;
477
+ }
478
+
479
+ export interface ChainStream {
480
+ readonly preset: ChainDocument;
481
+ readonly effects: readonly ChainEffect[];
482
+ readonly latencySamples: number;
483
+ readonly droppedTelemetryFrames: number;
484
+ subscribe(callback: TelemetryCallback): () => void;
485
+ unsubscribe(callback: TelemetryCallback): boolean;
486
+ setParam(effectId: string, parameterName: string, value: unknown): this;
487
+ reset(): this;
488
+ process(
489
+ audio: readonly Float32Array[],
490
+ options?: StreamProcessOptions
491
+ ): Promise<Float32Array[]>;
492
+ close(): void;
493
+ }
494
+
495
+ export declare function createChain(
496
+ input: string | ChainDocumentInput | BundleDocument |
497
+ readonly (Effect | ChainEffectInput)[],
498
+ options?: CreateChainOptions
499
+ ): Promise<Chain>;
500
+
501
+ export declare function parsePreset(
502
+ input: string | ChainDocumentInput | readonly (Effect | ChainEffectInput)[]
503
+ ): ChainDocument;
504
+ export declare function importLegacyPreset(input: string | object): ChainDocument;
505
+ export declare function encodeEta1(options: Eta1EncodeOptions): ArrayBuffer;
506
+ export declare function getEffectCatalog(): Readonly<{
507
+ version: 1;
508
+ channels: readonly EffectChannel[];
509
+ effects: readonly Readonly<Record<string, unknown>>[];
510
+ }>;
511
+ export declare const EFFECT_CATALOG: ReturnType<typeof getEffectCatalog>;
512
+ export declare function isBundleDocument(input: unknown): boolean;
package/dist/index.js ADDED
@@ -0,0 +1,175 @@
1
+ export {
2
+ AssetError,
3
+ EffectError,
4
+ EffeTuneError,
5
+ EffeTuneRuntimeError,
6
+ StateError,
7
+ ValidationError
8
+ } from './errors.js';
9
+ export { Effect, EFFECT_CHANNELS } from './effect.js';
10
+ export {
11
+ LevelMeter,
12
+ Oscilloscope,
13
+ Spectrogram,
14
+ SpectrumAnalyzer,
15
+ StereoMeter,
16
+ ChannelDivider,
17
+ DCOffset,
18
+ FIRCrossover,
19
+ Matrix,
20
+ MultiChannelPanel,
21
+ Mute,
22
+ PolarityInversion,
23
+ StereoBalance,
24
+ Volume,
25
+ Delay,
26
+ TimeAlignment,
27
+ AMRadioSimulator,
28
+ AutoLeveler,
29
+ BitCrusher,
30
+ BrickwallLimiter,
31
+ BandPassFilter,
32
+ CombFilter,
33
+ Compressor,
34
+ CrossfeedFilter,
35
+ DSD64IMDSimulator,
36
+ DattorroPlateReverb,
37
+ DigitalErrorEmulator,
38
+ DopplerDistortion,
39
+ DynamicSaturation,
40
+ EarphoneCableSim,
41
+ Exciter,
42
+ EFFECT_CLASSES,
43
+ EFFECT_METADATA,
44
+ EFFECT_TYPES,
45
+ Expander,
46
+ FDNReverb,
47
+ FMRadioSimulator,
48
+ FifteenBandGEQ,
49
+ FifteenBandPEQ,
50
+ FiveBandDynamicEQ,
51
+ FiveBandFIRPEQ,
52
+ FiveBandPEQ,
53
+ Gate,
54
+ GroupDelayEQ,
55
+ HardClipping,
56
+ HarmonicDistortion,
57
+ HiPassFilter,
58
+ HornResonator,
59
+ HornResonatorPlus,
60
+ HumGenerator,
61
+ IRReverb,
62
+ LoPassFilter,
63
+ LoudnessEqualizer,
64
+ MSMatrix,
65
+ ModalResonator,
66
+ MultibandBalance,
67
+ MultibandCompressor,
68
+ MultibandExpander,
69
+ MultibandSaturation,
70
+ MultibandTransient,
71
+ NarrowRange,
72
+ NoiseBlender,
73
+ Oscillator,
74
+ PitchShifter,
75
+ PowerAmpSag,
76
+ RSReverb,
77
+ RoomEQ,
78
+ Saturation,
79
+ SimpleJitter,
80
+ StereoBlend,
81
+ SubSynth,
82
+ SWRadioSimulator,
83
+ TiltEQ,
84
+ ToneControl,
85
+ TransientShaper,
86
+ Tremolo,
87
+ VinylArtifacts,
88
+ VinylSimulator,
89
+ WowFlutter,
90
+ createLevelMeter,
91
+ createOscilloscope,
92
+ createSpectrogram,
93
+ createSpectrumAnalyzer,
94
+ createStereoMeter,
95
+ createChannelDivider,
96
+ createDCOffset,
97
+ createFIRCrossover,
98
+ createMatrix,
99
+ createMultiChannelPanel,
100
+ createMute,
101
+ createPolarityInversion,
102
+ createStereoBalance,
103
+ createVolume,
104
+ createDelay,
105
+ createTimeAlignment,
106
+ createAMRadioSimulator,
107
+ createAutoLeveler,
108
+ createBandPassFilter,
109
+ createBitCrusher,
110
+ createBrickwallLimiter,
111
+ createCombFilter,
112
+ createCompressor,
113
+ createCrossfeedFilter,
114
+ createDSD64IMDSimulator,
115
+ createDattorroPlateReverb,
116
+ createDigitalErrorEmulator,
117
+ createDopplerDistortion,
118
+ createDynamicSaturation,
119
+ createEarphoneCableSim,
120
+ createEffect,
121
+ createExciter,
122
+ createExpander,
123
+ createFDNReverb,
124
+ createFMRadioSimulator,
125
+ createFifteenBandGEQ,
126
+ createFifteenBandPEQ,
127
+ createFiveBandDynamicEQ,
128
+ createFiveBandFIRPEQ,
129
+ createFiveBandPEQ,
130
+ createGate,
131
+ createGroupDelayEQ,
132
+ createHardClipping,
133
+ createHarmonicDistortion,
134
+ createHiPassFilter,
135
+ createHornResonator,
136
+ createHornResonatorPlus,
137
+ createHumGenerator,
138
+ createIRReverb,
139
+ createLoPassFilter,
140
+ createLoudnessEqualizer,
141
+ createMSMatrix,
142
+ createModalResonator,
143
+ createMultibandBalance,
144
+ createMultibandCompressor,
145
+ createMultibandExpander,
146
+ createMultibandSaturation,
147
+ createMultibandTransient,
148
+ createNarrowRange,
149
+ createNoiseBlender,
150
+ createOscillator,
151
+ createPitchShifter,
152
+ createPowerAmpSag,
153
+ createRSReverb,
154
+ createRoomEQ,
155
+ createSaturation,
156
+ createSimpleJitter,
157
+ createStereoBlend,
158
+ createSubSynth,
159
+ createSWRadioSimulator,
160
+ createTiltEQ,
161
+ createToneControl,
162
+ createTransientShaper,
163
+ createTremolo,
164
+ createVinylArtifacts,
165
+ createVinylSimulator,
166
+ createWowFlutter
167
+ } from './generated-effects.js';
168
+ export { getEffectCatalog } from './catalog.js';
169
+ export { encodeEta1 } from './assets.js';
170
+ export { Chain, createChain, isBundleDocument } from './runtime.js';
171
+ export { importLegacyPreset, parsePreset } from './preset.js';
172
+
173
+ import { getEffectCatalog } from './catalog.js';
174
+
175
+ export const EFFECT_CATALOG = getEffectCatalog();