From 9f32c88b28d1d0423a7df981de3b3be4a2994630 Mon Sep 17 00:00:00 2001 From: Bram van der Veen <96aa48@gmail.com> Date: Sat, 28 Mar 2015 15:59:29 +0100 Subject: [PATCH] Tried experimenting with Speex again --- index.js | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/index.js b/index.js index 2cb494d..8a70c25 100644 --- a/index.js +++ b/index.js @@ -5,6 +5,7 @@ var fs = require('fs'); var http = require('http'); var lame = require('lame'); var wav = require('wav'); +var celt = require('celt'); var connection; @@ -25,8 +26,9 @@ mumble.connect('mumble://wallpiece:9648', options, function (err, res) { // var speaker = new require('speaker')(); // var decoder = new lame.Decoder(); - // fs.createReadStream(__dirname + '/song.mp3').pipe(decoder).pipe(res.inputStream()); - play(); + // fs.createReadStream(__dirname + '/song.mp3')/*.pipe(decoder)*/.pipe(res.inputStream()); + res.outputStream().pipe(res.inputStream()); + }); // message('Hey there, I\'m music bot!'); @@ -59,6 +61,7 @@ function grooveshark(command) { GS.Tinysong.getSongInfo(lookup, null, function (err, info) { GS.Grooveshark.getStreamingUrl(info.SongID, function (err, url) { if (fs.existsSync(__dirname + '/song.mp3')) fs.unlinkSync(__dirname + '/song.mp3'); + if (fs.existsSync(__dirname + '/song.wav')) fs.unlinkSync(__dirname + '/song.wav'); message('Got the song, downloading it now!'); http.get(url, function (res) { @@ -80,29 +83,16 @@ function grooveshark(command) { }); } -function play(song) { +function play(output) { var speaker = new require('speaker')(); var decoder = new lame.Decoder(); - var spawn = require('child_process').spawn; - var speex = spawn('speexenc', ['-', '-', '--rate 48000', '--16bit']); + var speex = spawn('speexenc', ['-', '-', '--16bit'/*, '-u'*/]); - fs.createReadStream(__dirname + '/song.mp3').pipe(decoder);//.pipe(speex.stdin); + fs.createReadStream(__dirname + '/song.mp3').pipe(decoder).pipe(speex.stdin); + speex.stderr.on('data', function (data) {console.log(data.toString())}); - decoder.on('format', onFormat); + speex.stdout.pipe(speaker); - function onFormat (format) { - console.error('MP3 format: %j', format); - - // write the decoded MP3 data into a WAV file - var writer = new wav.Writer(format); - decoder.pipe(writer).pipe(speex.stdin); - } - - speex.stdout.pipe(connection.inputStream()); - - // enogg.pipe(speaker); - - // fs.createReadStream(__dirname + '/song.mp3').pipe(decoder).pipe(speaker); } \ No newline at end of file