Convert pcm data from one format to another

Downloads in past


1.6.56 years ago7 years agoMinified + gzip package size for pcm-convert in KB


pcm-convert unstable Build Status Greenkeeper badge
Convert data from one pcm-format to another.


npm install pcm-convert ```js const convert = require('pcm-convert') //convert data from float32 to uint8 array let uint8arr = convert(0, 0.1, 0.1, 0, 'float32', 'uint8') //convert interleaved uint8 to planar float32 array let float32arr = convert(new Uint8Array(127, 200, 127, 200), 'uint8 stereo interleaved', 'float32 planar') //deinterleave keeping the same data type let int8arr = convert(new Int8Array(-100,100,-100,100), 'interleaved', 'planar') //change endianness keeping the same data type let float32be = convert(new Float32Array(1,.5,-.5,-1), 'le', 'be') //use objects as formats let float64 = convert(float32be, {
dtype: 'float32',
channels: 2,
interleaved: false,
endianness: 'be'
}, {
dtype: 'float64',
interleaved: true,
endianness: 'le'
}) //skip source format string, convert directly to data format let uint16 = convert(new Uint8Array(0,255), 'uint16') //put data into target container skipping format strings convert(new Uint8Array(0,255), new Uint16Array(2)) //full arguments case let uint16arr = convert(0, 0, 1, 1, 'float32 le stereo planar', 'uint16 interleaved be', new Uint16Array(4)) ```


convert(src, srcFormat?, dstFormat?, dst?)

Takes data in src container and converts from srcFormat to dstFormat. Format can be whether a string with tags or an object with properties, see audio-format module. If srcFormat is skipped, it is detected from src. Optionally a destination container can be provided as dst, and in case if dstFormat is skipped, it will be detected from dst.


Source format is inferred from src data type and extended with srcFormat properties. By default source is considered planar mono le. Source data types: | Type | Dtype | |---|---| | Array | float32 | | Float32Array | float32 | | Float64Array | float64 | | ArrayBuffer | uint8 | | Buffer | uint8 | | Uint8Array | uint8 | | Uint8ClampedArray | uint8 | | Uint16Array | uint16 | | Uint32Array | uint32 | | Int8Array | int8 | | Int16Array | int16 | | Int32Array | int32 |


Can be defined as dtype string with tags, eg. 'uint8 interleaved mono le', 'float64 planar quad' (some tags can be skipped), or an object with the following properties: | Property | Meaning | |---|---| | dtype | Data type string: uint8, uint16, uint32, int8, int16, int32, float32, float64, array (only dstFormat), arraybuffer (only dstFormat). | | interleaved | Boolean indicating if data has interleaved or planar layout. | | channels | Number of channels in source: mono, stereo, quad, 5.1. | | endianness | be or le, defaults to OS endianness. |


  • dtype - list of standard data types.


© 2017 Dima Yv. MIT License