複数の MIDI ファイルを MP3 ファイルに一括変換する Shell Script
お正月ドラマを観ながら、昔作った MIDI ファイルを MP3 にして整理するためにシェルスクリプトを作りました。
MIDI ファイルは 2020 年現在、デフォルトで QuickLook できないので、MP3 の方が取り回しが楽ですね。
ツールのインストール
Homebrew を使えるようにしておき、 Fluid Synth と ffmpeg をインストールします。
$ brew install fluid-synth
$ brew install ffmpeg
Sound Font を入れる
S. Christian Collins--Pianist, Composer, Virtual Instrument Designer から、「GeneralUser GS 1.471」 をダウンロードして伸長し、好きなディレクトリに配置します。
Sound Font は超絶平たくいうと MIDI 音源の種類の一つです。
質の良い Sound Font を使うと音が良くなります。
上のやつはライセンス的にも良さげなのでこれを使います。
$HOME/Music/SoundFonts/GeneralUser GS 1.471/GeneralUser GS v1.471.sf2
に配置しました。
一括変換シェルスクリプトを作る
次の create_mp3_from_midi.sh
ファイルを適当なディレクトリに配置して、実行権限を与えます。
$HOME/Music/create_mp3_from_midi.sh
に配置しました。
「今見ているディレクトリ」にある .mid
.MID
拡張子のファイルを一括で .mp3
に変換するスクリプトです。
#!/bin/sh
soundfont="$HOME/Music/SoundFonts/GeneralUser GS 1.471/GeneralUser GS v1.471.sf2"
echo "🎹 SoundFont の場所は $soundfont !"
for file in `\find . -maxdepth 1 -type f`; do
filename=${file%.*}
fileext=${file##*.}
if [ $fileext = "mid" ] || [ $fileext = "MID" ]; then
echo "🎹 ${file}"
fluidsynth -F "${filename}".wav -i "$soundfont" $file
ffmpeg -i ${filename}.wav -f mp3 -b:a 192k ${filename}.mp3
rm ${filename}.wav
echo "🎹 ===== > ${filename}.mp3"
fi
done
echo "🎹 おしまい!"
Sound Font を配置したパスを変えた場合は、soundfont
変数に指定してください。
実行権限を与えます。
$ chmod 755 create_mp3_from_midi.sh
スクリプトをどこからでも実行できるようにする
midimp3
コマンドを作って、どこでも実行できるようにエイリアスを作ります。
$ echo 'alias midimp3="~/Music/create_mp3_from_midi.sh"' >> ~/.bash_profile
$ source ~/.bash_profile
実行!
midi ファイルがあるディレクトリに Terminal で移動して、midimp3
コマンドを実行します。
$ midimp3
参考
Author And Source
この問題について(複数の MIDI ファイルを MP3 ファイルに一括変換する Shell Script), 我々は、より多くの情報をここで見つけました https://qiita.com/feb19/items/6469b7516751c022548c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .