Linux audio

From miki
Jump to navigation Jump to search

Audio Conversion using Virtual FS

mp3fs

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 to lame -V 0, ie. fast extreme preset
  • 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

  • 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)

Web Radio

Several ways to play internet radios in Linux (sources [7]).

Let's consider the following radios:

[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)


rythmbox
  • 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.