Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

audio-source

audiojs927MIT1.1.1

Stream audio buffer or array buffer

audio, pcm, stream, web-audio-api, audiobuffer

readme

Build Status stable

Create audio stream from AudioBuffer or ArrayBuffer.

Usage

npm install audio-source

As a function

Audio-source in functional style is a sync source.

const createSource = require('audio-source');
const createSpeaker = require('audio-speaker/direct');
const lena = require('audio-lena/buffer');

let read = Source(lena, {channels: 1});
let write = Speaker({channels: 1});

//create and start reading loop
(function again (err, buf) {
    //get next chunk
    buf = read(buf);

    //catch end
    if (!buf) return;

    //send chunk to speaker
    write(buf, again);
})();

As a pull-stream

Pull-streams are awesome and faster than streams (but slower than plain fn).

const pull = require('pull-stream/pull');
const Source = require('audio-source/pull');
const Speaker = require('audio-speaker/pull');
const lena = require('audio-lena/buffer');

let source = Source(lena, {channels: 1});
let sink = Speaker({channels: 1});

pull(source, sink);

As a stream

Streams are concise:

const Source = require('audio-source/stream');
const Speaker = require('audio-speaker/stream');
const lena = require('audio-lena/buffer');

Source(lena).pipe(Speaker());

API

const Source = require('audio-source');

//create source reader
let read = Source(audioBuffer, {channels: 2, loop: false}?, endCallback?);

//get next chunk of audio data
let chunk = read();

//dispose stream
read.end();

web-audio-stream — connect WebAudio to audio-stream or audio-stream to WebAudio.