4月24日付の記事「NetWalkerでMidiを演奏するのに苦労しました」にて、
ターミナルから対話的に曲の入っているフォルダ(私の場合は /media/disk/data/music/midi/の下)を指定し、そのフォルダの中の.midファイルを全部演奏するようなスクリプトを書きました。
「NetWalkerでMidiを演奏するのに苦労しました」より
と書いた上でNetWalkerでTimidityを使うための簡単なシェルスクリプトを紹介しましたが、現在該当スクリプトは以下のような形になっております。
#!/bin/bash
CURRENTDIR=\$PWD
while :
do
echo '演奏するディレクトリを以下のリストから選んで入力してください。'
ls /media/disk/data/music/midi/
echo -n '>'
read PLAYDIR
if [ -e /media/disk/data/music/midi/\$PLAYDIR ]
then
cd /media/disk/data/music/midi/\$PLAYDIR
else
echo '/media/disk/data/music/midi/'\${PLAYDIR}'は存在しません。'
continue
fi
echo 'このディレクトリ/media/disk/data/music/midi/'\${PLAYDIR}'には次のファイルがあります。'
declare -i INDEX
INDEX=0
for FILE in *.mid
do
INDEX=\$INDEX+1
printf "%3d %s %s\\n" \$INDEX '.' \$FILE
done
echo -n '何番目のファイルから演奏しますか? '
declare -i STARTPT
read STARTPT
INDEX=0
for FILE in *.mid
do
INDEX=\$INDEX+1
if [ \$INDEX -lt $STARTPT ]
then
continue
else
echo '次のファイル'\${FILE}'を演奏します。'
timidity -OsS -A21,30a \$FILE
fi
done
echo -n '終了しますか? (y/n) '
read KEY
if [ "\$KEY" = "y" ]
then
break
fi
done
cd \$CURRENTDIR
簡単に使い方を解説すると、
- ターミナルからスクリプトを起動する。
- ディレクトリの一覧から演奏したいディレクトリを選んで入力。
- ファイルの一覧が番号付きリストで出力される。
- 開始したいファイルを番号で選んで入力。
- 入力した番号のファイルから順番に演奏される。
- 最後のファイルの演奏が終了したらこれで終了するかどうかを入力。
シェルスクリプトをほとんど知らないところからいろいろ調べて書くのはちょっとした手間でしたが、こんなものでもNetWalkerでMidiを演奏するという目的には一応使えております。
