Awesome
audio-format
Audio data format parser/detector/serializer.
obj = format.parse(string)
Parse format properties from a string. Returns only guaranteed properties and does not try to guess them.
format.parse('interleaved uint8 le stereo 44100')
// {interleaved: true, type: 'uint8', endianness: 'le', channels: 2, sampleRate: 44100}
format.parse('stereo audiobuffer 96000')
// {channels: 2, type: 'audiobuffer', sampleRate: 96000, interleaved: false, endianness: 'le'}
str = format.stringify(obj, defaults?)
Get string identifying a format object. Optional defaults
can indicate properties to skip if format value matches them.
format.stringify({channels: 2, interleaved: false})
// 'stereo planar'
format.stringify(
{type: 'float32', endianness: 'le', interleaved: false, channels: 2},
{endianness: 'le', type: 'float32'}
)
// 'stereo planar'
format.stringify(new AudioBuffer(null, {length: 10}))
// 'mono audiobuffer 44100'
obj = format.detect(obj)
Retrieve available format properties from an audio-like object.
format.detect(new AudioBuffer(null, {length: 10, numberOfChannels: 2}))
// {channels: 2, type: 'audiobuffer', sampleRate: 44100, endianness: 'le', interleaved: false}
format.detect(new Uint8ClampedArray([0, 255, 0, 255]))
// {type: 'uint8_clamped'}
format.detect(ndarray([0,0,0,0], [2,2]))
// {type: 'ndarray', interleaved: false, channels: 2}
str = format.type(obj)
Get type string identifying data container.
format.type(new AudioBuffer(ctx, {length: 1024})) // 'audiobuffer'
format.type(new Float32Array([-1, 1])) // 'float32'
format.type(new Float32Array([-1, 1]).buffer) // 'arraybuffer'
format.type(Array(100)) // 'array'
format.type(Buffer.from([0, 1, ...])) // 'buffer'
format.type(ndarray([0,0,0,0], [2,2])) // 'ndarray'
format.interleaved
marker
Value | Meaning |
---|---|
'interleaved' , 'interleave' | interleaved is true , channels is 2 or more. |
'planar' | interleaved is false , channels is 2 or more. |
format.endianness
marker
Value | Meaning |
---|---|
'le' | endianness is 'le' (little endian), type is not 'int8' or 'uint8' |
'be' | endianness is 'be' (big endian), type is not 'int8' or 'uint8' |
format.channels
marker
Value | Meaning |
---|---|
'mono' | 1 channel |
'stereo' | 2 channels |
'2.1' | 3 channels |
'quad' | 4 channels |
'5.1' | 5 channels |
'*-channel' | N channels |
format.sampleRate
marker
Value | Meaning |
---|---|
Number | Any number, primarily default sample-rates |
format.type
marker
Value | Meaning |
---|---|
'uint8' | Uint8Array |
'uint8_clamped' | Uint8ClampedArray |
'uint16' | Uint16Array |
'uint32' | Uint32Array |
'int8' | Int8Array |
'int16' | Int16Array |
'int32' | Int32Array |
'float32' , 'float' | Float32Array |
'float64' | Float64Array |
'array' | Array |
'arraybuffer' | ArrayBuffer |
'buffer' | Buffer |
'audiobuffer' | AudioBuffer |
'ndarray' | ndarray |
'ndsamples' | ndsamples |
See also
- pcm-convert converts low-level pcm data from one format to another
License
(c) 2017 Dmitry Yvanov @ audiojs. MIT License