126

I want to play music in the terminal with sox.

# install sox/lame
sudo apt-get install sox
sudo apt-get install lame

# play music
play music.mp3
# play FAIL formats: no handler for file extension `mp3'

# mp3 -> wav
lame --decode music.mp3 music.wav

# play music
play music.wav

~ $ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"

~ $ sox --version
sox: SoX v14.3.2

The size of music.wav is +10 times larger than music.mp3.
I don't want to convert all *.mp3 to *.wav.
Is it possible to add mp3-handler to sox?

kev
  • 12,462
  • 13
  • 59
  • 72
  • what linux distro are you on... and what version of the distro and sox are you running... also running `sox -h` reports codecs supported by the program... please check if mp3 is supported therein... – user1055604 May 06 '12 at 07:59
  • 2
    instead of the present accepted answer (lame/pipe), the correct/simplest answer is install `libsox-fmt-all` http://superuser.com/a/421168/73961 – michael Jun 24 '16 at 04:33

2 Answers2

307

Install libsox-fmt-mp3:

sudo apt-get install libsox-fmt-mp3
kev
  • 12,462
  • 13
  • 59
  • 72
  • 1
    I found I also needed to upgrade sox after that; so it doesn't hurt to add "sox" to the above command. – jcomeau_ictx Sep 12 '12 at 05:44
  • This does not work for me. Even after `aptitude reinstall sox` I still get a `SoX was compiled without MP3 encoding support` when I try to run `sox` afterwards. (Though admittedly I'm still running Lucid, this might work better on a more modern Ubuntu.) – zrajm Oct 23 '13 at 08:06
  • 19
    @kev, you should select this as the accepted answer. Also, there is a `libsox-fmt-all` package that installs the mp3 format, as well as all other available formats. – naught101 Jan 11 '14 at 23:23
  • 9
    +1, this should be the accepted answer because it allows for other things beyond playing as well, for example conversion (e.g. `sox input.wav output.mp3` won't work without this package) – pascalhein Jul 10 '14 at 14:48
  • 3
    after installing libsox-fmt-mp3 and running it i get a : sox WARN mp3-util: MAD lost sync – kroe Aug 24 '15 at 23:32
  • @zrajm indeed I had no problems here on Linux Mint, this answer did the trick for me – gilbertohasnofb Jan 12 '17 at 15:45
  • on Debian there's the libsox-fmt-all package which gives you more too! I also did an apt-get purge sox and apt-get install sox afterward just in case, but I don't know if it was actually necessary. Worked fine. – bchurchill May 24 '18 at 00:59
  • This works great in ubuntu 18.04 – EyesBear Jul 04 '19 at 08:26
6

Pipe?

lame --decode music.mp3 - | play -

Won't leave any trace.

eepp
  • 264
  • 1
  • 3