# Extract waveform data for I in *.mp3; do lame --decode "${I}" "wav/$(basename "${I}" .mp3).wav"; done for I in *.flv; do mplayer -vo null -ao pcm:fast:file="wav/$(basename "${I}" .flv).wav" "${I}"; done # Strip off leading and trailing silence bash for I in *.wav do echo -n "==> ${I} : " echo -n "copy "; cp "${I}" 00.wav || kill $$ echo -n "silence "; sox 00.wav 01.wav silence 1 0.1 0.1 || kill $$ echo -n "reverse "; sox 01.wav 02.wav reverse || kill $$ echo -n "silence "; sox 02.wav 01.wav silence 1 0.1 0.1 || kill $$ echo -n "reverse "; sox 01.wav 00.wav reverse || kill $$ echo "move"; mv 00.wav "${I}" || kill $$ done # Normalize all tracks normalize -m *.wav
Generate a toc with this: generate_toc.sh
Then edit the TOC to add CD Text information:
CD_DA CD_TEXT { LANGUAGE_MAP { 0 : EN } LANGUAGE 0 { TITLE "Mix CD" PERFORMER "Various Artists" } } TRACK AUDIO CD_TEXT { LANGUAGE 0 { TITLE "She Got It" PERFORMER "2 Pistols" } } AUDIOFILE "2 Pistols - She Got It.wav" 0 TRACK AUDIO CD_TEXT { LANGUAGE 0 { TITLE "How's It Going To Be" PERFORMER "3rd Eye Blind" } } AUDIOFILE "3rd Eye Blind - How's It Going To Be.wav" 0
And burn using the raw driver, to ensure the CD-TEXT gets written:
sudo cdrdao write --speed 1 --device /dev/sr0 --driver generic-mmc-raw -v 2 -n --eject cd.toc