Gapless Audio CD Creation from MP3s

From ArchWiki
Revision as of 17:23, 19 February 2010 by Totalwormage (talk | contribs) (use i18n template)
Jump to navigation Jump to search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی


Some albums are meant to be played without any silent gap between tracks -- especially live albums. Furthermore, when you copy a regular album that has gaps, the ripped audio files will actually include this gap at the end of each track -- to burn these tracks with a gap will actually increase the length of silence between tracks. Therefore, in almost all cases, you are better off burning all your CD backups gaplessly.

Here's an easy way to burn a gapless audio CD from the shell using cdrdao.


We'll be using a few programs for this.

pacman -S lame cdrdao

Optional: Let's configure cdrdao to use our CD burner. Open up /etc/cdrdao.conf (as root), and enter the /dev entry for your burner in this format:

write_device: "/dev/cdrw"

Decode the MP3s

First of all, copy all the songs you want on the CD to a folder. If necessary, rename them to reflect the order you want the tracks to be laid out (such as 01.mp3, 02.mp3, etc). Now we're going to decode all the mp3s into uncompressed wav files. Take note that a full album can take up more than 800MB in wav files alone.

mkdir wav
for file in *.mp3 ; do
   lame --decode "$file" "wav/$file.wav"

Create a Table of Contents file

Once finished, let's make a Table of Contents file that describes the layout of the CD.

cd wav
  echo "CD_DA"
  for file in *.wav ; do
    echo "TRACK AUDIO"
    echo "FILE \"$file\" 0"
} > toc

Optionally, if you would like to insert a 2-second gap between certain tracks, you can edit the toc file and insert this line between the TRACK AUDIO and FILE lines for that track:

PREGAP 00:02:00

Of course, you can change the gap length to any time you desire.


Finally, all we have to do is burn the CD.

cdrdao write toc

Some people prefer to burn audio CDs at a low speed for higher quality. Here's an example for burning at 8x:

cdrdao write --speed 8 toc