TiMidity++ を使って MIDI を MP3 に変換する bash スクリプト

TiMidity++ で WAVE ファイルを作って,lame で MP3 にエンコーディングするスクリプトを作ってみた.

スクリプト (midi2mp3)

#! /bin/sh
usage="usage: midi2mp3 MIDI-FILES"

if [ $# -eq 0 ];  then
  echo ${usage}
  exit 1
fi

for i in $@; do
  if [ -f $i ]; then
    fn=`basename $i | sed 's/\(.\+\)\(\..\{1,10\}$\)/\1/'`
    echo "convert $i to ${fn}.wav ..."
    timidity -A40,60a -Ow $i -o ${fn}.wav
    echo "convert ${fn}.wav to ${fn}.mp3 ..."
    lame -b 128 ${fn}.wav ${fn}.mp3
    rm ${fn}.wav
  fi
done

使い方

保存先のディレクトリに移動して,

midi2mp3 ../midi/test1.mid ../midi/test2.mid

とすれば,カレントディレクトリに test1.mp3, test2.mp3 が作成される.