Codeboard.
Technical referenceAPI signaturesData shapes

Audio types

Data shapes for audio. See all type groups for other domains and shared units. Import public types from codeboard-studio; helper shapes are included to explain nested values.

ToneOptions

Code
export interface ToneOptions {
    frequency?: number;
    durationSeconds?: number;
    sampleRate?: number;
    volume?: number;
    attackSeconds?: number;
    releaseSeconds?: number;
}

WavEncodingOptions

Code
export interface WavEncodingOptions {
    sampleFormat?: "pcm16" | "float32";
}

CompiledAudioClip

Code
export interface CompiledAudioClip {
    trackId: string;
    clip: StudioAudioClip;
    startSample: TimeConversion;
    sampleCount: TimeConversion;
    fadeInSamples: TimeConversion;
    fadeOutSamples: TimeConversion;
}

AudioSampleRounding

Code
export type AudioSampleRounding = "nearest" | "exact";

AudioGainRamp

Code
export interface AudioGainRamp {
    startSample: number;
    endSample: number;
    from: number;
    to: number;
}

ConformedAudioSegment

Code
export interface ConformedAudioSegment {
    ownerId: string;
    editorialClipId?: string;
    audio: CompiledAudioClip;
    outputStartSample: number;
    clipOffsetSamples: number;
    sampleCount: number;
    ramps: AudioGainRamp[];
}

AudioConform

Code
export interface AudioConform {
    rounding?: AudioSampleRounding;
    trackSelection?: AudioTrackRef[];
    sampleRate: number;
    duration: TimeConversion;
    segments: ConformedAudioSegment[];
    windows: {
        clipId: string;
        sourceStart: TimeConversion;
        outputStart: TimeConversion;
        outputEnd: TimeConversion;
        /** Present when source playback begins after an initial silent picture hold. */
        playbackStart?: TimeConversion;
        sourceLimit: TimeConversion;
    }[];
    transitions: "sum" | "linear";
}

AudioDecodeRequest

Code
export interface AudioDecodeRequest {
    assetId: string;
    sourceSampleRate: number;
    startSample: number;
    sampleCount: number;
    outputSampleRate: number;
    outputSampleCount: number;
    signal?: AbortSignal;
}

StudioAudioDecoder

Code
/** Return trimmed/resampled mono or stereo PCM; the adapter must verify source rate and range. */
export type StudioAudioDecoder = (request: AudioDecodeRequest) => Promise<Float32Array[]>;

AudioMixOptions

Code
export interface AudioMixOptions {
    rounding?: AudioSampleRounding;
    range?: {
        startSample: number;
        endSample: number;
    };
    tracks?: readonly AudioTrackRef[];
    sampleRate?: number;
    maxSamples?: number;
    signal?: AbortSignal;
}

AudioMixResult

Code
export interface AudioMixResult {
    range: {
        startSample: number;
        endSample: number;
    };
    sampleRate: number;
    channels: [
        Float32Array,
        Float32Array
    ];
    peak: number;
    clippedSamples: number;
    conform: AudioConform;
}

AudioTrackRef

Code
export interface AudioTrackRef {
    ownerId: string;
    trackId: string;
}

FFmpegAudioDecoderOptions

Code
export interface FFmpegAudioDecoderOptions {
    ffmpegPath?: string;
    ffprobePath?: string;
    timeoutMs?: number;
    maxAssetBytes?: number;
}

On this page