2007/4/22
Masayuki Nii / msyk@msyk.net
Last Modified:
久しぶりにMIDIをいじることになり、経緯はさておき、MIDIデータをサウンドデータにレンダリングしたかったのです。あれこれ、あれこれ探すと、そういう機能を持つMIDIプレイヤとしてQMidiってのがあるのが分かりました。これはこれで使えるのですが、「いろいろなテンポ」「いろいろなキー」でのMIDI演奏結果のファイルを作りたかったので、あれこれ探して、TiMidity++にいきつきました。インストール方法をメモっておきます。
TiMidity++のMac OS X版(CocoaでGUI)もあるのですが、とりあえずバイナリは動きませんでした。ソースもあったのですが、コマンドラインの方が事は早そうなんで、こちらは追求せず。TiMidity++ for MacOS X
以下の手順を行ったのは2007/4/21、OSはMac OS X v10.4.9、Developer ToolsはVer.2.4です。
cd ~/Desktop/TiMidity++-2.13.0
./configure make sudo make install
sudo cp /usr/local/bin/TiMidity /usr/sbin
sudo cp /usr/local/man/man1/TiMidity.1 /usr/share/man/man1 sudo cp /usr/local/man/man5/TiMidity.cfg.5 /usr/share/man/man3
mkdir /usr/local/share
mkdir /usr/local/share/timidity
sudo cp -r ~/Desktop/timidity-cfgp/cfgs /usr/local/share/timidity/cfg
cp /usr/local/share/timidity/cfg/sgm150v140.cfg ~/sgm180v150.cfg (ホームのルートにある「sgm180v150.cfg」をエディタで開いて一括置換、保存) sudo cp ~/sgm180v150.cfg /usr/local/share/timidity/cfg
cd /usr/local/share/timidity sudo cp cfg/TiMidity_sgm.cfg timidity.cfg
sudo nano /usr/local/share/timidity/TiMidity.cfg
# example of TiMidity configuration files # paths dir ${basedir}/ # to *.exe dir ${basedir}/cfg # to *.cfg dir ${basedir}/sf2 # to *.sf2 dir /Library/Audio/Sounds/Banks dir /usr/local/share/timidity/cfg # fundamental SoundFont bank source sgm180v150.cfg # GS compatibility source altassign.cfg source level88.cfg source playnote88.cfg source send88.cfg
これで基本的にOKかと思います。
まずはヘルプとバージョンを確認
timidity -h timidity -v
引数にMIDIファイルを指定すると、即座に音が出ます。つまり演奏ばっちりできますね。
timidity [MIDIファイル]
MIDI演奏をAIFFファイルに落とすには、次のようにします。
timidity -o [出力ファイル.aiff] -Oa [MIDIファイル]
キーを移動するのは-Kパラメータ。-24〜24が指定できます。1単位は半音です。
timidity -K 2 -o [出力ファイル.aiff] -Oa [MIDIファイル]
テンポは-Tパラメータで、パーセントで指定します。つまり、-T 100はオリジナルとおり
timidity -T 90 -o [出力ファイル.aiff] -Oa [MIDIファイル]
特定のMIDIチャンネルを抜くには、-Qパラメータです。複数のチャンネルを抜く場合はカンマで区切ればいいです。どのチャンネルに何の音が入っているか知りたい場合は、QMidiで開いて調べるのが早いかな…。
timidity -Q3,4 -o [出力ファイル.aiff] -Oa [MIDIファイル]
以上、自分の目的は達成できそうですので、終了!
ちなみに、今時、MIDIなんて言う輩は時代遅れと思っている人も多いかもしれません。まあ、その通りなんですが、それを通り越して、「いまだにフロッピー」な世界ってまだあります。フロッピーにMIDIデータを入れて販売するマシンは最近はメモリカードも使えるとは言え現役ですし、最新版じゃないエレクトーンはいまもフロッピーを使う必要があります(2002年に新発売のEL-900Bまでフロッピー、2004年のStagea以降USBやメモリが主流に)。また、この世界では、ピアノプレーヤ(ミュージックプレイヤなどとも言う)というマシンも音楽教室でよく使われており、それもデータはフロッピーです。こういう歴史を突き抜けた世界はまだまだあるのです。
なんでMIDIで、なんでピアノプレーヤか? たぶん、最新技術を知っている人に取ってはアホ臭いでしょうけど、これは理由があります。音楽教室でのニーズにMIDIは合致します。MIDIであれば、テンポやキーを変えて演奏したり、特定のパートを抜いて演奏することができます。練習曲のMIDIデータが販売されていて、たとえばピアノのパートを消して伴奏にするとか、まだちゃんと弾けない場合にはゆっくりやるとか、いろいろ使い勝手がいいわけです。もちろん、今時のサウンド編集ソフトを使えば同じ事ができますが、10年以上前に買ったMIDI/フロッピー機材でやれることと根本的には変わらないですよね。むしろ、MIDIデータのように軽く、演奏途中でのテンポやキーの変更が簡単にできるといった機能、そしてエレクトーンやピアノプレーヤといった一体化されたソリューション、過去からのデータの蓄積…こうした事情を考えればこの世界はまだまだなくなりそうにありません。
しかし、今時の機材を考えてみれば…だいたい、30秒くらいの曲だと非圧縮で5MB、概算で10のキーと、それぞれ10種類のテンポをそれぞれサウンドで用意するとしたら、500MBとなります(そんなにいらんでしょうけど)。MP3にしたらだいたい10分の1くらいになります。それらのMP3データを用意しておいて、切り替えて使うとか、実際に使うファイルだけを使うとすれば、ピアノプレーヤってiPodに置き換わりますよね? もちろん、フルパート、ピアノパートなしなどなど、いろんなバリエーションが欲しい訳ですが、今時のコンピュータのリソースでは、それらをもともと用意しておいて、必要なものを取り出す…ということも十分可能になってきています。つまり、iTunesにはバラエティ豊富なレンダリング済みのデータがあり、それをチョイスしてiPodにコピーして使うというイメージですね。
ということで、後はスクリプトをくむだけになりました〜。