Tag Archives: lame

Bash Script to Merge WAV Files into a Single MP3

I record audio notes to myself and it can be difficult to go back and listen to them. This is especially frustrating because I have to be at my computer to do so. I needed to be able to take my smaller notes in a single file on my phone and listen to them while I commute to work. After doing some research online, I was able to write the following bash script to do just that:

#!/bin/bash
mkdir temp_mp3
find -size -20000k -name '*.WAV' | \
while read f;
do
  echo "Processing $f"
  lame "$f" "$f.mp3"
  echo "cat $f.mp3 > Combined.mp3"
  cat "$f".mp3 Combined-temp.mp3 > Combined.mp3
  mv Combined.mp3 Combined-temp.mp3
  mv "$f".mp3 ./temp_mp3/
done
mv Combined-temp.mp3 Combined.mp3
mp3val Combined.mp3 -f -nb

The bash script is straight-forward, but for those of you that cannot read the script:

  1. Run this script in your desired directory
  2. A list of all of the WAV files that are less than 20 megabytes is generated (using find)
  3. Each file will be changed into an MP3 (using LAME)
  4. The current MP3 will be concatenated into a single MP3 file, Combined.mp3 (using cat)
  5. After it has been concatenated, the MP3 file is moved to a directory, ./temp_mp3
  6. Once all of the applicable WAV files have been processed, the Combined-temp.mp3 is renamed to Combined.mp3
  7. An mp3val is ran on the newly named Combined.mp3 to clean up some of the ID3 header information
  8. Enjoy listening to your new mp3

This information was gathered from the following sources: