Skip to content

audiojs/audio-format

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

audio-format Build Status unstable Greenkeeper badge

Audio data format parser/detector/serializer.

npm install audio-format

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

About

Parse or stringify audio format

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published