unclechu / node-jack-connector

Bindings JACK-Audio-Connection-Kit for Node.JS
MIT License
50 stars 14 forks source link
audio ecmascript jack-audio-connection-kit javascript js nodejs

Node.JS JACK-connector

Bindings JACK-Audio-Connection-Kit for Node.JS

Install

npm install jack-connector

Build requirements

libjack2, libjack2-devel

How to use

var jackConnector = require('jack-connector');
jackConnector.openClientSync('Noize Generator');
jackConnector.registerOutPortSync('output');

function audioProcess(err, nframes) {
    if (err) {
        console.error(err);
        process.exit(1);
        return;
    }

    var ret = [];
    for (var i=0; i<nframes; i++) ret.push((Math.random() * 2) - 1);
    return { output: ret };
}

jackConnector.bindProcessSync(audioProcess);
jackConnector.activateSync();
jackConnector.connectPortSync('Noize Generator:output', 'system:playback_1');
jackConnector.connectPortSync('Noize Generator:output', 'system:playback_2');

(function mainLoop() { setTimeout(mainLoop, 1000000000); })();

process.on('SIGTERM', function () {
    jackConnector.deactivateSync();
    jackConnector.closeClient(function (err) {
        if (err) {
            console.error(err);
            process.exit(1);
            return;
        }

        process.exit(0);
    });
});

More examples

examples/

Author

Viacheslav Lotsmanov

License

MIT