よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

March 04, 2006 [おもひで]

[Misc] midiファイルをテンポを変えつつmp3へ変換する

唐突感があるけど自分用メモ、とJazzを練習しているLinuxユーザーの方へ(ニッチだ・・・)。

Jazzのアドリブを練習するとき、特に和音の出せない管楽器ではなかなか自分の吹いてる音があってるのかわからない。誰かバック弾いてくれ〜と思っても友達イナイ。っていう人向けにJazzのCD付き教則本として「マイナスワン」というシリーズが売ってる。主旋律が入っていないので、それに合わせて練習できる(要はカラオケ)。

・・・・なんだけど、オレみたいな下手っぴでは、もっと遅いバージョンじゃないと吹けない、なんてことも多々ある。

そこで、オレが最近編み出した(今さら知ったとも言う)のは、midiファイルからテンポを変更しつつをmp3化してiPodに落としそれを聴きながら練習する、ってこと。これはイイ!

#ポータブルMIDIプレーヤ買えばその場でテンポ変えつつ練習できるよ!

#なんていう富豪的アプローチはなしの方向で(^^;)。

ということで手順。

まずは1つのテンポでmidiを作る。Rosegardenがかなり使えると思う。一から作ることもあるけど単純なものでも結構面倒くさい。Jazzのスタンダードであればインターネットでフリーのmidiファイルが公開されてたりするので、それを頂いてきてメロディの部分をざっくり削除して、思う存分繰り返しを入れる。んで保存、が楽なのでオススメ。

で、次に、timidity++(どこが公式サイト?http://timidity.jpっぽいけどなぜかつながらず・・・)と午後のこ〜だid3libに含まれるid3tag、shell(zsh)を使って以下のようにすると複数テンポのmp3ができる。もちろん、Rosegardenでテンポを変更したmidiファイルを作っても良いけどこっちの方が圧倒的に楽。

各ツールにはホント感謝だ。ありがたいことです。

 % foreach i in 80 100 120 150 200
 timidity -T $i -Ow FOO.MID
 gogo FOO.WAV foo_$i.mp3
 id3tag -aPractice -APractice -gJazz -sFoo_$i foo_$i.mp3
 end

  • FOO.MIDはmidiファイル名、FOO.WAVはFOO.MIDに合わせる。foo_$i.mp3は出力先ファイル名ね。foo_80.mp3みたくなる。
  • timidityの-Tオプションは原曲に対するテンポを割合(%)で指定していることに注意。なので、元々のmidiファイルをテンポ100で作っておくと吉。
  • id3tagでアーティスト名、アルバムタイトルをPractice、ジャンルをJazz、タイトルをFoo_(テンポ)に設定している。この設定はiPodで表示するのに使われる。
  • んで、あとは、iPodに転送すればOK。オレはgtkpodを使ってるのでそれで説明。

    まず、適当なディレクトリにfoo_*.mp3をコピーする。

    次に「ファイル(F)」→「ディレクトリを追加する(D)」でそのディレクトリを選択。

    アーティストなどが空欄のところにコピーしたファイルが出てくるので、gtkpod上で空欄を埋めていく。オレはpracticeって名前を付けてる。

    んで、ツールバーのところの「更新」をクリック。以上!

    あ、そうそう。例えばブルースとかでキーがC, A, F, G, Bbくらいのバージョンも欲しいなぁ、と言う場合は、timidityの-kオプションを使えばOK。

    元がCの曲であれば、Aが、"-k -3"、Fが、"-k 5"、Gが "-k 7"、Bbが "-k -2" かな、たぶん。


    編集