# 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