Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

audio-source

1.1.1 • Public • Published

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();

Related

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

Install

npm i audio-source

DownloadsWeekly Downloads

224

Version

1.1.1

License

MIT

Last publish

Collaborators

  • avatar
  • avatar
  • avatar