私が持っているすべての音楽フォルダー内のすべての mp3 のピッチを、sox を使用して変更したいと考えています。私はこれをbashで書きました:
function pitch_mp3 {
for mp3 in /home/mp3s/*/*.mp3
do
cd "$(dirname "$mp3")"
output=$(basename "$mp3" .mp3)PITCHED.mp3
sox -S "$mp3" -C 192 "$output" pitch 50
done
}
たとえば 01song.mp3 にピッチを追加すると、出力ファイルは 01songPITCHED.mp3 になります。しかし、何が起こるかというと、最初は sox が仕事をしますが、再びフォルダーを巡回し、既にピッチングされた mp3-s にピッチを追加するため、それらのファイル名は 01songPITCHEDPITCHED.mp3 であることが判明しました。気がついたらやめていたので、3回目以降は音程が上がるかわかりませんが…。
これを修正する理由と方法