ゆめにっきと wine 上での midi の再生の設定

wine でゆめにっきが動いた。RPGツクール2003のランタイムインストールして、動いた。
でも、 midi (机に向かってセーブするときの BGM)が鳴らなかったので、鳴らせるようにした。

Timidity++ のインストール
  • timidity
  • timidity-interfaces-extra

をSynapticでインストール

サウンドフォントの導入

デフォルトで入っているfreepatsは音色が揃ってない(MusicBox とか)ので、一通りの音色が揃った物を入れる。
Reality_GMGS.SF2 というサウンドフォントを使った。サイズがばかでかくなくて、音もそこそこだそう。

展開したサウンドフォントを/usr/share/midi以下にフォルダごとコピー
sudo cp -r reality_gmgs/ /usr/share/midi/


cfgforsfを使ってサウンドフォントの設定。コンパイルすればLinuxネイティブで動くらしいけど面倒なので wine で動かした。
cfgforsfのフォルダに reality_gmgs.sf2 をコピーして以下のコマンドを実行した

wine cfgforsf.exe -C reality_gmgs.sf2 reality_gmgs.cfg

生成された reality_gmgs.cfg のファイルの先頭に

dir /usr/share/midi/reality_gmgs

の一行を書き足す(フォルダはサウンドフォントがある場所を指定)

設定ファイル(reality_gmgs.cfg)を /etc/timidity にコピー

sudo cp reality_gmgs.cfg /etc/timidity/
Timidity++ の設定

/etc/timidity/timidity.cfg を編集

opt -Os

を書き加える(ALSA 出力をデフォルトにするオプションらしい)
また、freepatsを使う設定をコメントアウトし、 Reality_GMGS.SF2 を使うように書き加えて、以下のようになる。

#source /etc/timidity/freepats.cfg
source /etc/timidity/reality_gmgs.cfg
Wine の設定

winecfg で設定画面を出し、「オーディオ」タブで、ドライバ・エミュレーションにチェックを入れた。
(既に ALSA Driver 経由で音が鳴るようになってるたので、これだけ)

実行

Timidity++ の実行

timidity --sequencer-ports=2 -iAD

これで、Wine上でソフトを実行すると、鳴った!

また、再起動すれば、起動時に Timidity++ が自動起動するようになるので、 Timidity++ をいちいち立ち上げる必要はなし。


鳴ったは鳴ったけど、もたついたり引っかかったりする感じがあるので、ちょっと辛い。上手く設定をすれば良くなるのかもしれないけど。

参考サイト:
http://blog.danna.dvrdns.org/item/478/catid/22
TiMidity++をWineのMIDIデバイスとして使用する - 試験運用中なLinux備忘録・旧記事
TiMidity++でサウンドフォントを使用するための設定ファイルを自動生成するツール(cfgforsf)について - 試験運用中なLinux備忘録・旧記事
http://d.hatena.ne.jp/kurohige2/20070307/1173265810
Ubuntu日本語フォーラム / 【HowTo】TiMidity++の基本的な使い方とちょっとしたTips