Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // bytebeat.js
- // Run using node like this:
- // node bytebeat.js < input.js | pacat --format=u8 --channels=1 --rate=8000 (PulseAudio)
- // node bytebeat.js < input.js | aplay --rate=8000 (ALSA)
- function dataread(buf) {
- expr += buf;
- }
- if (process.stdout.isTTY) {
- console.log('stdout = tty, exiting');
- process.exit(1);
- }
- var CHUNK = 1024;
- var LIM = Number(process.argv[2]) || -1;
- var expr = 'return ';
- process.stdin.on('data', function(buf) {
- expr += buf;
- });
- process.stdin.on('end', function() {
- var fun = new Function('t', expr);
- var t = 0;
- function write() {
- var ok = true;
- while (ok && (t < LIM || LIM == -1)) {
- var data = new Buffer(CHUNK);
- for (var k = 0; k < CHUNK; ++k) {
- data[k] = fun(t+k);
- }
- ok = process.stdout.write(data);
- t += CHUNK;
- }
- if (t < LIM || LIM == -1) {
- process.stdout.once('drain', write);
- }
- };
- write();
- });
Advertisement
Add Comment
Please, Sign In to add comment