Audio data format parser/detector/serializer.
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'}
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'
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}
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'
Value | Meaning |
---|---|
'interleaved' , 'interleave' |
interleaved is true , channels is 2 or more. |
'planar' |
interleaved is false , channels is 2 or more. |
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' |
Value | Meaning |
---|---|
'mono' |
1 channel |
'stereo' |
2 channels |
'2.1' |
3 channels |
'quad' |
4 channels |
'5.1' |
5 channels |
'*-channel' |
N channels |
Value | Meaning |
---|---|
Number |
Any number, primarily default sample-rates |
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 |
- pcm-convert converts low-level pcm data from one format to another
(c) 2017 Dmitry Yvanov @ audiojs. MIT License