node package manager

ndsamples

ndsamples

ndsamples are ndarrays in a format for audio.

unstable

spec

each ndsamples frame should have the follow properties:

shape

should be an Array of the form:

[length, numberOfChannels]

for example, a frame of 1024 samples per channel and 2 channels (stereo) has the shape [1024, 2].

data

should be a Float32Array of samples between -1.0 and +1.0.

if we .pick(time), we should see channel data in a form such as:

[center] // 1.0 mono
[front left, front right] // 2.0 stereo
[front left, front right, front center] // 3.0 stereo
[front left, front right, back center] // 3.0 surround
[front left, front right, back left, back right] // 4.0 quad
[front left, front right, front center, back center] // 4.0 surround
...

TODO: support other common data types? (uint8, int16, float64, ...)

format

should be an Object with the following properties:

{
  sampleRate: 44100
}

TODO: should there be a format identifier to store channel configuration of a frame?

modules

some modules use ndsamples.

  • TODO

feel free to add what's missing. :)

ndsamples factory

install

with npm, do

npm i --save ndsamples

usage

var ndsamples = require('ndsamples')
 
var samples = ndsamples({
  data: [0, 0.5, -0.5, 0, 1, -1, -1, 1],
  shape: [4, 2],
  format: {
    sampleRate: 44100
  }
})

the ndsamples factory returns an ndarray with:

  • your data cast into a Float32Array, if necessary
  • a getter for length (shape[0])
  • a getter for numberOfChannels (shape[1])
  • a getter for format as given

license

ISC