smplr 0.24.0 → 0.26.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.
- package/README.md +197 -147
- package/dist/index.d.mts +117 -46
- package/dist/index.d.ts +117 -46
- package/dist/index.js +510 -48
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +503 -48
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -208,68 +208,90 @@ type VoiceParams = {
|
|
|
208
208
|
reverse?: boolean;
|
|
209
209
|
};
|
|
210
210
|
|
|
211
|
+
/** Options accepted by `SampleLoader(context, options)`. */
|
|
212
|
+
type SampleLoaderOptions = {
|
|
213
|
+
/** Custom storage backend (e.g. `CacheStorage` for offline). Defaults to `HttpStorage`. */
|
|
214
|
+
storage?: Storage;
|
|
215
|
+
};
|
|
216
|
+
/** Options accepted by `loader.load(json, options)`. */
|
|
217
|
+
type SampleLoaderLoadOptions = {
|
|
218
|
+
/** Pre-decoded buffers keyed by sample name — skip fetch for these. */
|
|
219
|
+
buffers?: Map<string, AudioBuffer>;
|
|
220
|
+
/** Called once per sample (including cache hits) with cumulative progress. */
|
|
221
|
+
onProgress?: (loaded: number, total: number) => void;
|
|
222
|
+
};
|
|
223
|
+
type SampleLoaderFactory = {
|
|
224
|
+
(context: BaseAudioContext, options?: SampleLoaderOptions): SampleLoader;
|
|
225
|
+
/** @deprecated Call as a function: `SampleLoader(...)` instead of `new SampleLoader(...)`. */
|
|
226
|
+
new (context: BaseAudioContext, options?: SampleLoaderOptions): SampleLoader;
|
|
227
|
+
};
|
|
211
228
|
/**
|
|
212
|
-
* Loads and
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
* or decoded twice. Multiple Smplr instances can share one SampleLoader by
|
|
216
|
-
* passing it via SmplrOptions.loader.
|
|
229
|
+
* Loads and decodes AudioBuffers for the samples referenced by a {@link SmplrPreset}.
|
|
230
|
+
* Used internally by every smplr instrument; pass an instance via
|
|
231
|
+
* {@link SmplrOptions.loader} to share buffer caching across multiple instruments.
|
|
217
232
|
*/
|
|
218
|
-
|
|
219
|
-
#private;
|
|
220
|
-
constructor(context: BaseAudioContext, options?: {
|
|
221
|
-
storage?: Storage;
|
|
222
|
-
});
|
|
233
|
+
interface SampleLoader {
|
|
223
234
|
/**
|
|
224
|
-
* Load all samples referenced
|
|
225
|
-
*
|
|
226
|
-
*
|
|
235
|
+
* Load all samples referenced by `json`. Returns a Map keyed by sample
|
|
236
|
+
* name (`region.sample`), values are decoded `AudioBuffer`s. Failed
|
|
237
|
+
* samples are silently omitted (callers handle absence at lookup time).
|
|
227
238
|
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
239
|
+
* Internally cached by resolved URL, so repeated calls with the same
|
|
240
|
+
* baseUrl/format/path do not re-fetch.
|
|
241
|
+
*
|
|
242
|
+
* @param json The preset describing samples to load.
|
|
243
|
+
* @param options
|
|
244
|
+
* - `buffers`: pre-decoded buffers keyed by sample name — skip fetch for these.
|
|
245
|
+
* - `onProgress`: called with `(loaded, total)` per sample (including cache hits).
|
|
246
|
+
*/
|
|
247
|
+
load(json: SmplrPreset, options?: SampleLoaderLoadOptions): Promise<Map<string, AudioBuffer>>;
|
|
248
|
+
/**
|
|
249
|
+
* @deprecated Pass `{ onProgress }` instead. The bare-callback form is kept
|
|
250
|
+
* for compatibility; the options form is the canonical 1.x signature.
|
|
230
251
|
*/
|
|
231
|
-
load(json: SmplrPreset,
|
|
232
|
-
buffers?: Map<string, AudioBuffer>;
|
|
233
|
-
onProgress?: (loaded: number, total: number) => void;
|
|
234
|
-
}): Promise<Map<string, AudioBuffer>>;
|
|
252
|
+
load(json: SmplrPreset, onProgress: (loaded: number, total: number) => void): Promise<Map<string, AudioBuffer>>;
|
|
235
253
|
}
|
|
236
|
-
declare const SampleLoader:
|
|
237
|
-
storage?: Storage;
|
|
238
|
-
} | undefined], SampleLoaderImpl>;
|
|
239
|
-
type SampleLoader = ReturnType<typeof SampleLoader>;
|
|
254
|
+
declare const SampleLoader: SampleLoaderFactory;
|
|
240
255
|
|
|
256
|
+
/** Options accepted by `Scheduler(context, options)`. */
|
|
257
|
+
type SchedulerOptions = {
|
|
258
|
+
/**
|
|
259
|
+
* How far ahead of `currentTime` events are dispatched synchronously.
|
|
260
|
+
* Defaults to 200ms.
|
|
261
|
+
*/
|
|
262
|
+
lookaheadMs?: number;
|
|
263
|
+
/**
|
|
264
|
+
* How often the queue is polled for events ready to dispatch.
|
|
265
|
+
* Defaults to 50ms.
|
|
266
|
+
*/
|
|
267
|
+
intervalMs?: number;
|
|
268
|
+
};
|
|
269
|
+
type SchedulerFactory = {
|
|
270
|
+
(context: BaseAudioContext, options?: SchedulerOptions): Scheduler;
|
|
271
|
+
/** @deprecated Call as a function: `Scheduler(...)` instead of `new Scheduler(...)`. */
|
|
272
|
+
new (context: BaseAudioContext, options?: SchedulerOptions): Scheduler;
|
|
273
|
+
};
|
|
241
274
|
/**
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
* Multiple Smplr instances can share a single Scheduler for coordinated timing.
|
|
275
|
+
* Schedules note events for future dispatch. Used internally by every smplr
|
|
276
|
+
* instrument; pass an instance via {@link SmplrOptions.scheduler} to share one
|
|
277
|
+
* scheduler across multiple instruments.
|
|
246
278
|
*/
|
|
247
|
-
|
|
248
|
-
#private;
|
|
249
|
-
constructor(context: BaseAudioContext, options?: {
|
|
250
|
-
lookaheadMs?: number;
|
|
251
|
-
intervalMs?: number;
|
|
252
|
-
});
|
|
279
|
+
interface Scheduler {
|
|
253
280
|
/**
|
|
254
|
-
*
|
|
281
|
+
* Dispatch `callback` at `event.time`. If `event.time` is within the
|
|
282
|
+
* scheduler's lookahead window (or omitted), the callback fires synchronously
|
|
283
|
+
* and the returned {@link StopFn} is a no-op. Otherwise the event is queued.
|
|
255
284
|
*
|
|
256
|
-
*
|
|
257
|
-
* callback is called synchronously and a no-op StopFn is returned.
|
|
258
|
-
* - Otherwise the event is queued, the interval is started if needed, and a StopFn
|
|
259
|
-
* is returned that removes the event from the queue before it is dispatched.
|
|
285
|
+
* The returned function removes the event from the queue before dispatch.
|
|
260
286
|
*/
|
|
261
287
|
schedule(event: NoteEvent, callback: (event: NoteEvent) => void): StopFn;
|
|
262
288
|
/**
|
|
263
|
-
* Clear all queued (not-yet-dispatched) events and stop the
|
|
264
|
-
* Does not affect voices
|
|
289
|
+
* Clear all queued (not-yet-dispatched) events and stop the polling
|
|
290
|
+
* interval. Does not affect voices already playing.
|
|
265
291
|
*/
|
|
266
292
|
stop(): void;
|
|
267
293
|
}
|
|
268
|
-
declare const Scheduler:
|
|
269
|
-
lookaheadMs?: number;
|
|
270
|
-
intervalMs?: number;
|
|
271
|
-
} | undefined], SchedulerImpl>;
|
|
272
|
-
type Scheduler = ReturnType<typeof Scheduler>;
|
|
294
|
+
declare const Scheduler: SchedulerFactory;
|
|
273
295
|
|
|
274
296
|
type SmplrOptions = {
|
|
275
297
|
/** Custom storage backend for sample fetching (e.g. CacheStorage). */
|
|
@@ -478,6 +500,55 @@ type DrumMachine = ReturnType<typeof DrumMachine>;
|
|
|
478
500
|
*/
|
|
479
501
|
declare function drumMachineToPreset(instrument: DrumMachineInstrument): SmplrPreset;
|
|
480
502
|
|
|
503
|
+
declare const DRUM_ABUSE_PACKS: readonly ["vol1", "vol2", "vol3", "vol4", "vol5"];
|
|
504
|
+
type DrumAbusePackId = (typeof DRUM_ABUSE_PACKS)[number];
|
|
505
|
+
declare function getDrumAbuseMachineNames(): string[];
|
|
506
|
+
declare function getDrumAbuseMachinesForPack(pack: DrumAbusePackId): readonly string[];
|
|
507
|
+
declare function getDrumAbusePackNames(): readonly DrumAbusePackId[];
|
|
508
|
+
declare function getDrumAbuseMachinePack(id: string): DrumAbusePackId | undefined;
|
|
509
|
+
/** Build a full sample URL. Exported so external row-level Sampler use
|
|
510
|
+
* (e.g. the sequencer engine) can share the same URL convention. */
|
|
511
|
+
declare function drumAbuseSampleUrl(pack: DrumAbusePackId, urlPath: string, fileNoExt: string, format?: string, baseUrl?: string): string;
|
|
512
|
+
type DrumAbuseSource = {
|
|
513
|
+
kind: "machine";
|
|
514
|
+
machine: string;
|
|
515
|
+
set?: string;
|
|
516
|
+
} | {
|
|
517
|
+
kind: "pack";
|
|
518
|
+
pack: DrumAbusePackId;
|
|
519
|
+
instrument: string;
|
|
520
|
+
};
|
|
521
|
+
type DrumAbuseConfig = {
|
|
522
|
+
source: DrumAbuseSource;
|
|
523
|
+
baseUrl: string;
|
|
524
|
+
storage: Storage;
|
|
525
|
+
};
|
|
526
|
+
type DrumAbuseOptions = Partial<DrumAbuseConfig & {
|
|
527
|
+
destination?: AudioNode;
|
|
528
|
+
volume?: number;
|
|
529
|
+
pan?: number;
|
|
530
|
+
velocity?: number;
|
|
531
|
+
onLoadProgress?: (progress: LoadProgress) => void;
|
|
532
|
+
}>;
|
|
533
|
+
type DrumAbuseExtras = {
|
|
534
|
+
readonly mode: "machine" | "pack";
|
|
535
|
+
getSampleNames(): string[];
|
|
536
|
+
getGroupNames(): string[];
|
|
537
|
+
getSampleNamesForGroup(groupName: string): string[];
|
|
538
|
+
getMachineId(): string | null;
|
|
539
|
+
getSetPath(): string | null;
|
|
540
|
+
getPackId(): DrumAbusePackId;
|
|
541
|
+
start(event: NoteEvent): StopFn;
|
|
542
|
+
};
|
|
543
|
+
declare const DrumAbuse: InstrumentFactory<Partial<DrumAbuseConfig & {
|
|
544
|
+
destination?: AudioNode;
|
|
545
|
+
volume?: number;
|
|
546
|
+
pan?: number;
|
|
547
|
+
velocity?: number;
|
|
548
|
+
onLoadProgress?: (progress: LoadProgress) => void;
|
|
549
|
+
}>, DrumAbuseExtras>;
|
|
550
|
+
type DrumAbuse = ReturnType<typeof DrumAbuse>;
|
|
551
|
+
|
|
481
552
|
/**
|
|
482
553
|
* The result of an offline render. Provides the raw AudioBuffer and
|
|
483
554
|
* lazy WAV encoding / download convenience methods.
|
|
@@ -1224,4 +1295,4 @@ declare const LAYERS: ({
|
|
|
1224
1295
|
cutoff?: undefined;
|
|
1225
1296
|
})[];
|
|
1226
1297
|
|
|
1227
|
-
export { type AddTrackOptions, CacheStorage, DrumMachine, type DrumMachineOptions, ElectricPiano, type ElectricPianoOptions, HttpStorage, Instrument, LAYERS, type LoadProgress, Mallet, Mellotron, type MellotronConfig, type MellotronOptions, NAME_TO_PATH, type NoteEvent, type PatternInput, type PlaybackParams, type RenderOfflineOptions, RenderResult, Reverb, SampleLoader, Sampler, type SamplerConfig, type SamplerReloadInput, Scheduler, Sequencer, type SequencerInstrument, type SequencerNote, type SequencerNoteEvent, type SequencerOptions, Smolken, type SmolkenConfig, type SmolkenOptions, type Smplr, type SmplrGroup, type SmplrOptions, type SmplrPlugin, type SmplrPreset, type SmplrRegion, type SmplrSamples, Soundfont, Soundfont2, type Soundfont2Options, Soundfont2Sampler, type SoundfontOptions, SplendidGrandPiano, type SplendidGrandPianoConfig, type StopFn, type StopTarget, type Storage, type StorageResponse, type TimeSignature, Versilian, type VersilianConfig, type VersilianOptions, type VoiceParams, audioBufferToWav, audioBufferToWav16, drumMachineToPreset, getDrumMachineNames, getElectricPianoNames, getMalletNames, getMellotronNames, getSmolkenNames, getSoundfontKits, getSoundfontNames, getVersilianInstruments, loadVersilianInstrument, mellotronToPreset, pianoToPreset, renderOffline, samplerToPreset, sf2InstrumentToPreset, soundfontToPreset, trimSilence };
|
|
1298
|
+
export { type AddTrackOptions, CacheStorage, DRUM_ABUSE_PACKS, DrumAbuse, type DrumAbuseConfig, type DrumAbuseExtras, type DrumAbuseOptions, type DrumAbusePackId, type DrumAbuseSource, DrumMachine, type DrumMachineOptions, ElectricPiano, type ElectricPianoOptions, HttpStorage, Instrument, LAYERS, type LoadProgress, Mallet, Mellotron, type MellotronConfig, type MellotronOptions, NAME_TO_PATH, type NoteEvent, type PatternInput, type PlaybackParams, type RenderOfflineOptions, RenderResult, Reverb, SampleLoader, type SampleLoaderLoadOptions, type SampleLoaderOptions, Sampler, type SamplerConfig, type SamplerReloadInput, Scheduler, type SchedulerOptions, Sequencer, type SequencerInstrument, type SequencerNote, type SequencerNoteEvent, type SequencerOptions, Smolken, type SmolkenConfig, type SmolkenOptions, type Smplr, type SmplrGroup, type SmplrOptions, type SmplrPlugin, type SmplrPreset, type SmplrRegion, type SmplrSamples, Soundfont, Soundfont2, type Soundfont2Options, Soundfont2Sampler, type SoundfontOptions, SplendidGrandPiano, type SplendidGrandPianoConfig, type StopFn, type StopTarget, type Storage, type StorageResponse, type TimeSignature, Versilian, type VersilianConfig, type VersilianOptions, type VoiceParams, audioBufferToWav, audioBufferToWav16, drumAbuseSampleUrl, drumMachineToPreset, getDrumAbuseMachineNames, getDrumAbuseMachinePack, getDrumAbuseMachinesForPack, getDrumAbusePackNames, getDrumMachineNames, getElectricPianoNames, getMalletNames, getMellotronNames, getSmolkenNames, getSoundfontKits, getSoundfontNames, getVersilianInstruments, loadVersilianInstrument, mellotronToPreset, pianoToPreset, renderOffline, samplerToPreset, sf2InstrumentToPreset, soundfontToPreset, trimSilence };
|
package/dist/index.d.ts
CHANGED
|
@@ -208,68 +208,90 @@ type VoiceParams = {
|
|
|
208
208
|
reverse?: boolean;
|
|
209
209
|
};
|
|
210
210
|
|
|
211
|
+
/** Options accepted by `SampleLoader(context, options)`. */
|
|
212
|
+
type SampleLoaderOptions = {
|
|
213
|
+
/** Custom storage backend (e.g. `CacheStorage` for offline). Defaults to `HttpStorage`. */
|
|
214
|
+
storage?: Storage;
|
|
215
|
+
};
|
|
216
|
+
/** Options accepted by `loader.load(json, options)`. */
|
|
217
|
+
type SampleLoaderLoadOptions = {
|
|
218
|
+
/** Pre-decoded buffers keyed by sample name — skip fetch for these. */
|
|
219
|
+
buffers?: Map<string, AudioBuffer>;
|
|
220
|
+
/** Called once per sample (including cache hits) with cumulative progress. */
|
|
221
|
+
onProgress?: (loaded: number, total: number) => void;
|
|
222
|
+
};
|
|
223
|
+
type SampleLoaderFactory = {
|
|
224
|
+
(context: BaseAudioContext, options?: SampleLoaderOptions): SampleLoader;
|
|
225
|
+
/** @deprecated Call as a function: `SampleLoader(...)` instead of `new SampleLoader(...)`. */
|
|
226
|
+
new (context: BaseAudioContext, options?: SampleLoaderOptions): SampleLoader;
|
|
227
|
+
};
|
|
211
228
|
/**
|
|
212
|
-
* Loads and
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
* or decoded twice. Multiple Smplr instances can share one SampleLoader by
|
|
216
|
-
* passing it via SmplrOptions.loader.
|
|
229
|
+
* Loads and decodes AudioBuffers for the samples referenced by a {@link SmplrPreset}.
|
|
230
|
+
* Used internally by every smplr instrument; pass an instance via
|
|
231
|
+
* {@link SmplrOptions.loader} to share buffer caching across multiple instruments.
|
|
217
232
|
*/
|
|
218
|
-
|
|
219
|
-
#private;
|
|
220
|
-
constructor(context: BaseAudioContext, options?: {
|
|
221
|
-
storage?: Storage;
|
|
222
|
-
});
|
|
233
|
+
interface SampleLoader {
|
|
223
234
|
/**
|
|
224
|
-
* Load all samples referenced
|
|
225
|
-
*
|
|
226
|
-
*
|
|
235
|
+
* Load all samples referenced by `json`. Returns a Map keyed by sample
|
|
236
|
+
* name (`region.sample`), values are decoded `AudioBuffer`s. Failed
|
|
237
|
+
* samples are silently omitted (callers handle absence at lookup time).
|
|
227
238
|
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
239
|
+
* Internally cached by resolved URL, so repeated calls with the same
|
|
240
|
+
* baseUrl/format/path do not re-fetch.
|
|
241
|
+
*
|
|
242
|
+
* @param json The preset describing samples to load.
|
|
243
|
+
* @param options
|
|
244
|
+
* - `buffers`: pre-decoded buffers keyed by sample name — skip fetch for these.
|
|
245
|
+
* - `onProgress`: called with `(loaded, total)` per sample (including cache hits).
|
|
246
|
+
*/
|
|
247
|
+
load(json: SmplrPreset, options?: SampleLoaderLoadOptions): Promise<Map<string, AudioBuffer>>;
|
|
248
|
+
/**
|
|
249
|
+
* @deprecated Pass `{ onProgress }` instead. The bare-callback form is kept
|
|
250
|
+
* for compatibility; the options form is the canonical 1.x signature.
|
|
230
251
|
*/
|
|
231
|
-
load(json: SmplrPreset,
|
|
232
|
-
buffers?: Map<string, AudioBuffer>;
|
|
233
|
-
onProgress?: (loaded: number, total: number) => void;
|
|
234
|
-
}): Promise<Map<string, AudioBuffer>>;
|
|
252
|
+
load(json: SmplrPreset, onProgress: (loaded: number, total: number) => void): Promise<Map<string, AudioBuffer>>;
|
|
235
253
|
}
|
|
236
|
-
declare const SampleLoader:
|
|
237
|
-
storage?: Storage;
|
|
238
|
-
} | undefined], SampleLoaderImpl>;
|
|
239
|
-
type SampleLoader = ReturnType<typeof SampleLoader>;
|
|
254
|
+
declare const SampleLoader: SampleLoaderFactory;
|
|
240
255
|
|
|
256
|
+
/** Options accepted by `Scheduler(context, options)`. */
|
|
257
|
+
type SchedulerOptions = {
|
|
258
|
+
/**
|
|
259
|
+
* How far ahead of `currentTime` events are dispatched synchronously.
|
|
260
|
+
* Defaults to 200ms.
|
|
261
|
+
*/
|
|
262
|
+
lookaheadMs?: number;
|
|
263
|
+
/**
|
|
264
|
+
* How often the queue is polled for events ready to dispatch.
|
|
265
|
+
* Defaults to 50ms.
|
|
266
|
+
*/
|
|
267
|
+
intervalMs?: number;
|
|
268
|
+
};
|
|
269
|
+
type SchedulerFactory = {
|
|
270
|
+
(context: BaseAudioContext, options?: SchedulerOptions): Scheduler;
|
|
271
|
+
/** @deprecated Call as a function: `Scheduler(...)` instead of `new Scheduler(...)`. */
|
|
272
|
+
new (context: BaseAudioContext, options?: SchedulerOptions): Scheduler;
|
|
273
|
+
};
|
|
241
274
|
/**
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
* Multiple Smplr instances can share a single Scheduler for coordinated timing.
|
|
275
|
+
* Schedules note events for future dispatch. Used internally by every smplr
|
|
276
|
+
* instrument; pass an instance via {@link SmplrOptions.scheduler} to share one
|
|
277
|
+
* scheduler across multiple instruments.
|
|
246
278
|
*/
|
|
247
|
-
|
|
248
|
-
#private;
|
|
249
|
-
constructor(context: BaseAudioContext, options?: {
|
|
250
|
-
lookaheadMs?: number;
|
|
251
|
-
intervalMs?: number;
|
|
252
|
-
});
|
|
279
|
+
interface Scheduler {
|
|
253
280
|
/**
|
|
254
|
-
*
|
|
281
|
+
* Dispatch `callback` at `event.time`. If `event.time` is within the
|
|
282
|
+
* scheduler's lookahead window (or omitted), the callback fires synchronously
|
|
283
|
+
* and the returned {@link StopFn} is a no-op. Otherwise the event is queued.
|
|
255
284
|
*
|
|
256
|
-
*
|
|
257
|
-
* callback is called synchronously and a no-op StopFn is returned.
|
|
258
|
-
* - Otherwise the event is queued, the interval is started if needed, and a StopFn
|
|
259
|
-
* is returned that removes the event from the queue before it is dispatched.
|
|
285
|
+
* The returned function removes the event from the queue before dispatch.
|
|
260
286
|
*/
|
|
261
287
|
schedule(event: NoteEvent, callback: (event: NoteEvent) => void): StopFn;
|
|
262
288
|
/**
|
|
263
|
-
* Clear all queued (not-yet-dispatched) events and stop the
|
|
264
|
-
* Does not affect voices
|
|
289
|
+
* Clear all queued (not-yet-dispatched) events and stop the polling
|
|
290
|
+
* interval. Does not affect voices already playing.
|
|
265
291
|
*/
|
|
266
292
|
stop(): void;
|
|
267
293
|
}
|
|
268
|
-
declare const Scheduler:
|
|
269
|
-
lookaheadMs?: number;
|
|
270
|
-
intervalMs?: number;
|
|
271
|
-
} | undefined], SchedulerImpl>;
|
|
272
|
-
type Scheduler = ReturnType<typeof Scheduler>;
|
|
294
|
+
declare const Scheduler: SchedulerFactory;
|
|
273
295
|
|
|
274
296
|
type SmplrOptions = {
|
|
275
297
|
/** Custom storage backend for sample fetching (e.g. CacheStorage). */
|
|
@@ -478,6 +500,55 @@ type DrumMachine = ReturnType<typeof DrumMachine>;
|
|
|
478
500
|
*/
|
|
479
501
|
declare function drumMachineToPreset(instrument: DrumMachineInstrument): SmplrPreset;
|
|
480
502
|
|
|
503
|
+
declare const DRUM_ABUSE_PACKS: readonly ["vol1", "vol2", "vol3", "vol4", "vol5"];
|
|
504
|
+
type DrumAbusePackId = (typeof DRUM_ABUSE_PACKS)[number];
|
|
505
|
+
declare function getDrumAbuseMachineNames(): string[];
|
|
506
|
+
declare function getDrumAbuseMachinesForPack(pack: DrumAbusePackId): readonly string[];
|
|
507
|
+
declare function getDrumAbusePackNames(): readonly DrumAbusePackId[];
|
|
508
|
+
declare function getDrumAbuseMachinePack(id: string): DrumAbusePackId | undefined;
|
|
509
|
+
/** Build a full sample URL. Exported so external row-level Sampler use
|
|
510
|
+
* (e.g. the sequencer engine) can share the same URL convention. */
|
|
511
|
+
declare function drumAbuseSampleUrl(pack: DrumAbusePackId, urlPath: string, fileNoExt: string, format?: string, baseUrl?: string): string;
|
|
512
|
+
type DrumAbuseSource = {
|
|
513
|
+
kind: "machine";
|
|
514
|
+
machine: string;
|
|
515
|
+
set?: string;
|
|
516
|
+
} | {
|
|
517
|
+
kind: "pack";
|
|
518
|
+
pack: DrumAbusePackId;
|
|
519
|
+
instrument: string;
|
|
520
|
+
};
|
|
521
|
+
type DrumAbuseConfig = {
|
|
522
|
+
source: DrumAbuseSource;
|
|
523
|
+
baseUrl: string;
|
|
524
|
+
storage: Storage;
|
|
525
|
+
};
|
|
526
|
+
type DrumAbuseOptions = Partial<DrumAbuseConfig & {
|
|
527
|
+
destination?: AudioNode;
|
|
528
|
+
volume?: number;
|
|
529
|
+
pan?: number;
|
|
530
|
+
velocity?: number;
|
|
531
|
+
onLoadProgress?: (progress: LoadProgress) => void;
|
|
532
|
+
}>;
|
|
533
|
+
type DrumAbuseExtras = {
|
|
534
|
+
readonly mode: "machine" | "pack";
|
|
535
|
+
getSampleNames(): string[];
|
|
536
|
+
getGroupNames(): string[];
|
|
537
|
+
getSampleNamesForGroup(groupName: string): string[];
|
|
538
|
+
getMachineId(): string | null;
|
|
539
|
+
getSetPath(): string | null;
|
|
540
|
+
getPackId(): DrumAbusePackId;
|
|
541
|
+
start(event: NoteEvent): StopFn;
|
|
542
|
+
};
|
|
543
|
+
declare const DrumAbuse: InstrumentFactory<Partial<DrumAbuseConfig & {
|
|
544
|
+
destination?: AudioNode;
|
|
545
|
+
volume?: number;
|
|
546
|
+
pan?: number;
|
|
547
|
+
velocity?: number;
|
|
548
|
+
onLoadProgress?: (progress: LoadProgress) => void;
|
|
549
|
+
}>, DrumAbuseExtras>;
|
|
550
|
+
type DrumAbuse = ReturnType<typeof DrumAbuse>;
|
|
551
|
+
|
|
481
552
|
/**
|
|
482
553
|
* The result of an offline render. Provides the raw AudioBuffer and
|
|
483
554
|
* lazy WAV encoding / download convenience methods.
|
|
@@ -1224,4 +1295,4 @@ declare const LAYERS: ({
|
|
|
1224
1295
|
cutoff?: undefined;
|
|
1225
1296
|
})[];
|
|
1226
1297
|
|
|
1227
|
-
export { type AddTrackOptions, CacheStorage, DrumMachine, type DrumMachineOptions, ElectricPiano, type ElectricPianoOptions, HttpStorage, Instrument, LAYERS, type LoadProgress, Mallet, Mellotron, type MellotronConfig, type MellotronOptions, NAME_TO_PATH, type NoteEvent, type PatternInput, type PlaybackParams, type RenderOfflineOptions, RenderResult, Reverb, SampleLoader, Sampler, type SamplerConfig, type SamplerReloadInput, Scheduler, Sequencer, type SequencerInstrument, type SequencerNote, type SequencerNoteEvent, type SequencerOptions, Smolken, type SmolkenConfig, type SmolkenOptions, type Smplr, type SmplrGroup, type SmplrOptions, type SmplrPlugin, type SmplrPreset, type SmplrRegion, type SmplrSamples, Soundfont, Soundfont2, type Soundfont2Options, Soundfont2Sampler, type SoundfontOptions, SplendidGrandPiano, type SplendidGrandPianoConfig, type StopFn, type StopTarget, type Storage, type StorageResponse, type TimeSignature, Versilian, type VersilianConfig, type VersilianOptions, type VoiceParams, audioBufferToWav, audioBufferToWav16, drumMachineToPreset, getDrumMachineNames, getElectricPianoNames, getMalletNames, getMellotronNames, getSmolkenNames, getSoundfontKits, getSoundfontNames, getVersilianInstruments, loadVersilianInstrument, mellotronToPreset, pianoToPreset, renderOffline, samplerToPreset, sf2InstrumentToPreset, soundfontToPreset, trimSilence };
|
|
1298
|
+
export { type AddTrackOptions, CacheStorage, DRUM_ABUSE_PACKS, DrumAbuse, type DrumAbuseConfig, type DrumAbuseExtras, type DrumAbuseOptions, type DrumAbusePackId, type DrumAbuseSource, DrumMachine, type DrumMachineOptions, ElectricPiano, type ElectricPianoOptions, HttpStorage, Instrument, LAYERS, type LoadProgress, Mallet, Mellotron, type MellotronConfig, type MellotronOptions, NAME_TO_PATH, type NoteEvent, type PatternInput, type PlaybackParams, type RenderOfflineOptions, RenderResult, Reverb, SampleLoader, type SampleLoaderLoadOptions, type SampleLoaderOptions, Sampler, type SamplerConfig, type SamplerReloadInput, Scheduler, type SchedulerOptions, Sequencer, type SequencerInstrument, type SequencerNote, type SequencerNoteEvent, type SequencerOptions, Smolken, type SmolkenConfig, type SmolkenOptions, type Smplr, type SmplrGroup, type SmplrOptions, type SmplrPlugin, type SmplrPreset, type SmplrRegion, type SmplrSamples, Soundfont, Soundfont2, type Soundfont2Options, Soundfont2Sampler, type SoundfontOptions, SplendidGrandPiano, type SplendidGrandPianoConfig, type StopFn, type StopTarget, type Storage, type StorageResponse, type TimeSignature, Versilian, type VersilianConfig, type VersilianOptions, type VoiceParams, audioBufferToWav, audioBufferToWav16, drumAbuseSampleUrl, drumMachineToPreset, getDrumAbuseMachineNames, getDrumAbuseMachinePack, getDrumAbuseMachinesForPack, getDrumAbusePackNames, getDrumMachineNames, getElectricPianoNames, getMalletNames, getMellotronNames, getSmolkenNames, getSoundfontKits, getSoundfontNames, getVersilianInstruments, loadVersilianInstrument, mellotronToPreset, pianoToPreset, renderOffline, samplerToPreset, sf2InstrumentToPreset, soundfontToPreset, trimSilence };
|