This package has been deprecated

Author message:

Sad to admit that was wrong.

audio-sink

1.1.6 • Public • Published

audio-sink Build Status stable

Triggers an event for received audio chunk and releases the data. If piped to somewhere, it turns into a pass-throught stream. That way, it is through2-sink and tap-stream in one. Use as a fast replacement for audio-speaker or audio-render.

Can function as a pressure controller. See example.

Usage

npm install audio-sink

Direct

const Sink = require('audio-sink/direct');
 
let sink = Sink((data, cb) => {
    console.log(data);
    setTimeout(cb, 100);
});
 
//log data and invoke cb after 100ms
sink(buffer, (err, buffer) => {
 
});

Pull-stream

const pull = require('pull-stream/pull');
const sink = require('audio-sink/pull');
const generator = require('audio-generator/pull');
 
//stream generated data to sink with pressure control
pull(
    generator(time => Math.sin(time * Math.PI * 2 * 440)),
    sink((data, cb) => {
        //end stream if needed
        if (tooLate) return cb(true);
 
        console.log(data);
        setTimeout(cb, 100);
    });
);

Stream

var Gen = require('audio-generator/stream');
var Sink = require('audio-sink/stream');
 
Gen(function (time) {
    return time ? 0 : 1;
})
.pipe(Sink(function (data, cb) {
    console.log('This sink is a pass-through with 10ms throttling ', data.length);
 
    setTimeout(cb, 10);
}))
.pipe(Sink(function (data) {
    console.log('This sink gets the data and releases it ', data.length);
}));

Related

stream-sink — universal stream sink.
through2-sink — triggers an event for the data chunk, but does not pass data through.
tap-stream — triggers callback for the passed through data, but does not release data.

Package Sidebar

Install

npm i audio-sink

Weekly Downloads

195

Version

1.1.6

License

MIT

Last publish

Collaborators

  • ahdinosaur
  • dfcreative
  • jamen