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を演奏するという目的には一応使えております。