Nerfing Powerful Megalomaniacs
    Wondering what’s next for npm?Check out our public roadmap! »

    audio-format

    2.3.2 • Public • Published

    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

    Install

    npm i audio-format

    DownloadsWeekly Downloads

    1,343

    Version

    2.3.2

    License

    MIT

    Last publish

    Collaborators

    • avatar