Skip to content

Instantly share code, notes, and snippets.

@TooTallNate
Created October 24, 2012 17:42
Show Gist options
  • Star 57 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save TooTallNate/3947591 to your computer and use it in GitHub Desktop.
Save TooTallNate/3947591 to your computer and use it in GitHub Desktop.
node.js command line MP3 player in 9 lines of code!
var fs = require('fs');
var lame = require('lame');
var Speaker = require('speaker');
fs.createReadStream(process.argv[2])
.pipe(new lame.Decoder())
.on('format', function (format) {
this.pipe(new Speaker(format));
});
@eslin
Copy link

eslin commented Jan 7, 2013

Im writing an application that is supposed to build sentences out of short mp3's with words.
the complete sound is not played when playing these short (0.55s) mp3 files.

I can't really figure out why.
when playing the sounds in mplayer the complete samples are played.

@notcoffeetable
Copy link

Is there a correct way to stop playing the stream?

@Connor-Knabe
Copy link

I'm wondering this too notcoffeetable ever figure it out?

@nebulou5
Copy link

That's a lame 9 lines of code.

@Ajedi32
Copy link

Ajedi32 commented May 18, 2016

To get this to work I needed to first run:

sudo apt-get install libasound2-dev
npm install --save speaker lame

Just to make that explicit...

@crazyyi
Copy link

crazyyi commented Nov 7, 2016

Thanks I use yarn and don't need to install any other packages other than lame and speaker. Very neat code by the way.

@immartian
Copy link

is there a way to accommodate an URL stream in this snippet?

@sincerefly
Copy link

@eslin You can use https://github.com/jimlawless/cmdmp3 and child_process play short mp3 voice

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment