/** * audiobox — zero-dependency audio toolkit. * * ```ts * import { decode, encode } from 'audiobox'; * * const audio = await decode(bytes); * const clip = audio.cut({ from: '0:10', to: '0:40' }).toMono().resample(16000); * const wav = await encode(clip, 'wav', { bitDepth: 16 }); * ``` * * MP3 and FLAC live behind `audiobox/mp3` and `audiobox/flac` so their tables * stay out of bundles that never touch them; `decode`/`encode` load them on * demand. * * @see https://github.com/jmsansan/audiobox */ export { Audio } from './audio.js'; export type { CutOptions, AudioFadeOptions } from './audio.js'; export { decode, decodeSync, encode, encodeSync, toBytes } from './codec.js'; export type { EncodableFormat, EncodeOptionsByFormat } from './codec.js'; export { AudioboxError, UnsupportedFormatError, DecodeError, EncodeError, InvalidArgumentError, LimitExceededError, AbortedError, UnsupportedRuntimeError, throwIfAborted, } from './errors.js'; export type { ErrorCode } from './errors.js'; export { DEFAULT_LIMITS, resolveLimits, checkDecodeShape } from './limits.js'; export type { Limits } from './limits.js'; export { decodeWav, encodeWav } from './formats/wav.js'; export type { WavDecodeOptions, WavEncodeOptions } from './formats/wav.js'; export { decodeAiff, encodeAiff } from './formats/aiff.js'; export type { AiffDecodeOptions, AiffEncodeOptions } from './formats/aiff.js'; export { decodeAu, encodeAu } from './formats/au.js'; export { decodeCaf, encodeCaf } from './formats/caf.js'; export type { DecodedContainer, ContainerEncodeOptions } from './formats/types.js'; export { decodeInterleaved, encodeInterleaved, bytesPerSample, bitDepthOf, isFloatFormat, linearToALaw, linearToULaw, } from './pcm/convert.js'; export type { DitherOptions } from './pcm/convert.js'; export { resampleChannel, resamplePlanar, resampledLength } from './dsp/resample.js'; export type { ResampleQuality, ResampleOptions } from './dsp/resample.js'; export { slicePlanar, removeRange, concatPlanar, padPlanar, reversePlanar, mixPlanar } from './dsp/edit.js'; export type { MixOptions } from './dsp/edit.js'; export { applyGain, applyFade, crossfade, normalize } from './dsp/gain.js'; export type { FadeCurve, FadeOptions, NormalizeUnit, NormalizeOptions, NormalizeResult } from './dsp/gain.js'; export { toMono, toStereo, toChannelCount, mapChannels, pan, splitChannels, mergeChannels } from './dsp/channels.js'; export { applyFilter, applyLimiter } from './dsp/filter.js'; export type { FilterType, FilterOptions, LimiterOptions } from './dsp/filter.js'; export { detectSilence, trimSilence, removeDcOffset } from './dsp/silence.js'; export type { SilenceOptions, SilentRange, TrimSilenceOptions } from './dsp/silence.js'; export { changeSpeed, changeTempo, changePitch } from './dsp/timestretch.js'; export { toSampleIndex, toFrameCount, formatDuration } from './dsp/time.js'; export { measureLoudness, measurePeak, measureTruePeak, measureRms, toDb, fromDb, } from './analyze/loudness.js'; export type { LoudnessResult } from './analyze/loudness.js'; export { sniff } from './io/sniff.js'; export type { SniffResult, KnownUndecodableFormat } from './io/sniff.js'; export { Reader } from './io/reader.js'; export { Writer } from './io/writer.js'; export { BitReader, BitWriter } from './io/bits.js'; export type { AudioFormat, SampleFormat, Endianness, BinaryInput, DecodeOptions, DecodeInfo, AudioMetadata, TimePosition, OperationOptions, AbortSignalLike, } from './types.js';