Bindings JACK-Audio-Connection-Kit for Node.JS
npm install jack-connector
libjack2, libjack2-devel
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);
});
});
Viacheslav Lotsmanov
MIT