UNPKG

smoosic

Version:

<sub>[Github site](https://github.com/Smoosic/smoosic) | [source documentation](https://smoosic.github.io/Smoosic/release/docs/modules.html) | [change notes](https://aarondavidnewman.github.io/Smoosic/changes.html) | [application](https://smoosic.github.i

82 lines 2.8 kB
import { SmoOscillatorInfo } from '../../smo/data/staffModifiers'; /** * A set of parameters from the instrument interface used to create audio from samples. * @category SuiAudio */ export interface SampleChooserParams { family?: string; instrument: string; frequency: number; duration: number; gain: number; articulation?: string; } /** * A function prototype that chooses from among samples to return the correct one for that note */ export type SampleChooser = (params: SampleChooserParams, samples: SmoOscillatorInfo[]) => AudioSample | null; /** * A specific audio sample that can be converted into an audio node * @category SuiAudio */ export interface AudioSample { sample: AudioBuffer; frequency: number; patch: string; gain: number; } /** * Interface for a chooser function and a set of samples * @category SuiAudio */ export interface InstrumentSampleChooser { instrument: string; sampleChooser: SampleChooser; samples: SmoOscillatorInfo[]; } /** * @category SuiAudio * @param params * @param samples * @returns */ export declare const sampleForPercussion: (params: SampleChooserParams, samples: SmoOscillatorInfo[]) => AudioSample | null; /** * For instruments like violin that require different samples depending on note duration * @param params * @param samples * @returns * @category SuiAudio */ export declare const sampleFromMinDuration: (params: SampleChooserParams, samples: SmoOscillatorInfo[]) => AudioSample | null; /** * Give a set of samples, return the one that closest matches the frequency * @param params * @param samples * @returns * @category SuiAudio */ export declare const sampleFromFrequency: (params: SampleChooserParams, samples: SmoOscillatorInfo[]) => AudioSample | null; /** * Logic to create audio nodes out of HTML5 media elements * @category SuiAudio */ export declare class SuiSampleMedia { static sampleFiles: SmoOscillatorInfo[]; static sampleBufferMap: Record<string, AudioBuffer>; static sampleOscMap: Record<string, SmoOscillatorInfo[]>; static instrumentChooser: Record<string, InstrumentSampleChooser>; static receivedBuffer: boolean; static getFamilyForInstrument(instKey: string): string; static insertIntoMap(sample: Partial<SmoOscillatorInfo>): void; static populateSampleMap(): void; static getSmoOscillatorInfo(instrument: string): SmoOscillatorInfo[]; /** * Load samples so we can play the music * @returns - promise, resolved when loaded */ static samplePromise(audio: AudioContext): Promise<any>; static sampleForFrequency(f: number, oscs: SmoOscillatorInfo[]): AudioSample | null; static matchedSample(params: SampleChooserParams): AudioSample | null; } //# sourceMappingURL=samples.d.ts.map