audio-format
v2.3.2
Published
Parse or stringify audio format
Downloads
13,654
Maintainers
Readme
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