Linux audio
Jump to navigation
Jump to search
Audio Conversion using Virtual FS
Example:
mp3fs -b 224 ~/Music /mnt/mp3 -o allow_other,ro
GUI Audio Conversion
Nautilus Audio Converter
- Install with
sudo apt-get install wavpack mppenc libmpcdec3 faac flac vorbis-tools faad lame libid3-3.8.3-dev nautilus-script-audio-convert
- libid3-3.8.3-dev needed for id3tag.
- See Ubuntu Geek - Simplest way to convert audio file(s) on Ubuntu Linux
Gnome Sound Converter
Very nice utility.
- Can convert to flac, ogg, mp3.
- Output to given directory, in {artis - album} format
- mp3, support lame vbr (but apparently --vbr-old only) — done via GStreamer pipeline.
CLI Audio Conversion
flac - FLAC encoder / decoder
flac -d source.flac
flac -d source.flac -o output.wav
flac -d source.flac -c # Write output to stdout
lame - MP3 encoder / decoder
See also Technical information on encoding settings.
lame -m auto --preset standard input.wav output.mp3 # Equiv to fast standard
lame -m auto --preset fast standard input.wav output.mp3 # Equiv to -V2 (~192kbps)
lame -m auto --preset extreme input.wav output.mp3 # Equiv to fast extreme
lame -m auto --preset fast extreme input.wav output.mp3 # Equiv to -V0 (~256kbps)
lame -m auto --preset insane input.wav output.mp3 # Equiv to -b 320
twolame - MP2 encoder / decoder
twolame -b 256 input.wav -o "output.mp3"
pacpl - Multi-format encoder / decoder in Perl
# From FLAC to MP3 - Using LAME (extreme quality) - recurse & keep directory structure
pacpl --to mp3 -r -p flac/ --outdir /media/USB --encoder lame --defopts 0 --eopts="-m auto --preset fast extreme"
# To decrease encoding priority:
nice -n 19 pacpl ...
To change the directory structure from "Artist - Album" to "Artist/Album":
for i in *; do eval $(echo $i | sed -r '/ - /!s/(.*)/ARTIST=Various;ALBUM="\1"/; / - /s/(.*) - (.*)/ARTIST="\1"; ALBUM="\2"/'); mkdir "$ARTIST"; mv "$i" "$ARTIST/$ALBUM"; done
yaflac2mp3 - Yet Another FLAC to MP3 script
An handy script to transcode from FLAC to MP3. Could be used as a basis for customized script. See also [1] for more ideas.
yaflac2mp3.sh -s . -d mp3
Conversion in integrated players
Banshee
- Plug external mp3 player device
- Right click on device in Banshee
- Select the media type (ogg, mp3), then click on edit button.
- For mp3, quality goes from 0 (worst) to 9 (best). 7 seems equivalent to
lame -V 2
, i.e. fast standard preset, and 9 seems equivalent tolame -V 0
, ie. fast extreme preset
- For mp3, quality goes from 0 (worst) to 9 (best). 7 seems equivalent to
- BUG? — apparently can't save to .ogg although ogg is selected as encoder... — SOLVED see below.
- BUG? — export all files in device root directory — SOLVED see below.
- Create a file named ..is_audio_player in device root directory. For instance, to have audio files added in OGG format to the device, using a 1-folder deep structure (ie. Artist - Album/Track. Title), use the following:
name=SAMSUNG\ YP-U1\ (1GB)
folder_depth=1
output_formats=application/ogg,audio/mpeg,audio/mp3
To have files stored elsewhere than in root folder:
name=SAMSUNG\ CARD\ (8GB)
audio_folders=musics/,other/subfolder
folder_depth=2
output_formats=application/ogg,audio/mpeg,audio/mp3
RhythmBox
- Can also export to external mp3 player
- BUG? — Apparently only in mp3 (although there are some settings about preferred format in preferences)
- Quality seems to be
lame --preset fast standard
- Export in /Artist/Album/Track - Title.mp3
Cover Art and ID3 Tags
GUI ID3 tags editors
mp3 tag editor, idv3 tags...
- Banshee
Banshee downloads automatically cover arts for music in the library.
- These cover arts are stored in ~/.cache/media-art. Cover art filename is a hash of artist and album name (See this link for a more powerful script [6]):
f="Ennio Morricone" al="My Name Is Nobody" echo "~/.cache/media-art/album-$(echo -ne "$f\t$al" | md5sum | cut -b1-32).jpg"
- You can edit metadata (ID3 tags) in Banshee, but click Write metadata to files to save back to library.
- Easytags aac
- Edit ID3 tag, including cover arts (with automatically download)
- Puddletag
- A bit buggy sometimes
- folder.jpg
- Used under Windows.
Can save into a folder.jpg file, .folder.png and an Icon
entry in .directory for Konqueror, into an ID3v3 APIC frame...
CLI ID3 tags editors
- eyeD3
- The most complete so far (including cover art edition).
eyeD3 myfile.mp3
eyeD3 --list-image-types # View available image type (APIC frame)
- id3v2
- Does not report cover arts.
Web Radio
Several ways to play internet radios in Linux (sources [7]).
Let's consider the following radios:
- Chromanova.fm Chillout (homepage) - playlist (.pls) content:
[playlist] numberofentries=5 File1=http://85.25.86.69:8100 Title1=(#1 - 25/160) Chromanova.fm presents: Ambient & Chillout Deejay Sets Length1=-1 File2=http://212.112.241.88:8100 Title2=(#2 - 25/120) Chromanova.fm presents: Ambient & Chillout Deejay Sets Length1=-1 File3=http://85.25.86.69:9000 Title3=(#3 - 159/160) Chromanova.fm presents: Ambient & Chillout Deejay Sets Length1=-1
Here we list the various way to play the radios listed above.
- Mplayer
- Mplayer can play most streams. Give it the *stream* URL, not the playlist. Use -cache 1000 to cache audio stream. Works also fine with proxies.
mplayer -cache 1000 http://85.25.86.69:8100
- mpg123
- mpg123 can also play most radio stream. Works also fine with proxies.
mpg123 -cache 1000 http://85.25.86.69:8100
- audacious
- TBC
- streamtuner2
- TBC
streamtuner2 -r # Then tell audacious to open http://localhost:8000
- streamripper
- Use streamripper to rip an audio stream into a file. It can also relay the stripped stream to a local port to be played and ripped simultaneously
streamripper server:port -D "%S/%q -- %A - %T" # Rip to file (w/ naming convention)
streamripper server:port -D "%S/%q -- %A - %T" -r # Rip and relay to port 8000
mpg123 http://localhost:8000 # ... and play it
- banshee
- NOT WORKING — can't make it work, at least behind a proxy. Giving either .pls, or stream URL, nothing works (w/o error msg)
- rhythmbox
- NOT WORKING — can't make it work, at least behind a proxy. Giving either .pls, or stream URL, nothing works (w/o error msg)
- amarok
- STATE UNKNOWN — Used to work in the past, but need some weird configuration for the proxy.