BGMのMIDIが上手く再生できないとき
TIPS@初めてカードワース
問題と解決1:MIDIファイルの再生開始が遅れる
【問題が起きる可能性がある場合】
- 基本的にCW1.28まで
- CW1.29で行われた改善のための修正は、全ての環境で効果があるかは不明とのことなので:
- CW1.29を使用しているとき
- CW1.30でBMGの再生に従来の再生方法(winmm)を選択しているとき
【解決策】
1.29より古いエンジンをご利用の場合や、1.29以降のエンジンでも遅延が起きる場合、以下のどちらかの方法で解決を試みてください。- CWを実行する前にWindows Media Playerを起動しておく。
(情報元:groupAsk official fansite-Q&A)
※CW本体の更新によって問題が解決されたため、現在、Q&Aに該当する内容はありません。 - MIDI再生遅延解消パッチ「CardWirth MidiPatch」を使用する。
(この記事の時点(Ver.1.10)でWindows XP/Vista/7に対応、Window 8/8.1/10でも動作します)
問題と解決2:MIDIファイルの再生自体が上手くいかない(音が鳴らない、音がおかしい)
【問題が起きる可能性がある場合】
- OSがWindows Vista以降(Vista/7/8/...?)
【問題の原因】
- OS付属のMIDI音源(MSGS)の仕様変更により、これまで問題が無かったものが正常に再生されなくなる事がある。
(音飛び、音が出ないなど) - Windows VistaでMIDIマッパーの出力先がMSGS固定となり、コントロールパネルから音源変更ができなくなった。
(他のソフトウェア音源や外部音源があっても、そのままでは使えない) - さらに、Windows 8以降ではVistaや7で使えた音源変更ツールによる変更が反映されない。
(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Multimedia\MIDIMapの設定値が使われなくなった?)
【解決策】
(1)ソフトウェア音源の入手と設定
まず、まともな音が出る音源を入手して、再生時に起こる問題を解決します。無料の有名どころに、TiMidity++ windows synthesizer(TWSYNTH)があります。
- ダウンロードとインストール
- 上のリンク先からダウンロードページに移動し、TiMidity-CVS(日付数字)_setup_JPN.exeをダウンロードします。
複数ある場合は、最新版を選択してください。 - ダウンロードしたファイルを実行して言語を選ぶと、コンポーネントの選択画面に移動します。
- 全ての項目にチェックを入れたまま「次へ」を選択、インストールを実行します。
特に、外部ソフトからTiMidity++音源を使う際に必要な「Timidity++ Driver」は必須です。 - OSを再起動します。
- 上のリンク先からダウンロードページに移動し、TiMidity-CVS(日付数字)_setup_JPN.exeをダウンロードします。
- MIDIドライバ(Timidity++ Driver)で使う音源ファイルの設定
最新版にはサウンドフォントがついていてそのままでも使えますが、簡単な操作で別のものに変更もできます。- 使いたいサウンドフォントを、C:\timidity\musix(←デフォルトの場所にインストールした場合)に置きます。
(※MSGS風味が良ければこの辺から捜索を。) - スタートメニューに登録されたショートカットから「setwindrv」を選択します。
→Timidity++ Driverの設定メニューが起動 - 「サウンドフォントと追加設定ファイル」からサウンドフォントの追加や削除を行います。
(※設定は、細かくカスタマイズもできます。必要なら検索などで調べてみてください。)
- 使いたいサウンドフォントを、C:\timidity\musix(←デフォルトの場所にインストールした場合)に置きます。
- 音色の確認
- スタートメニューに登録されたショートカットから「timw32g」を選択します。
→TiMidity++ GUI版が起動 - 設定>詳細設定から、設定ファイルを"C:\Windows\timidity.cfg"に変更します。
(※MIDIプレイヤーでMIDIドライバとは別の設定を使う場合は、後で設定ファイルの参照先を戻しておいてください。) - 適当なMIDIファイルを読み込み、きちんと再生されれば成功です。
CardWirthのデフォルトBGM(起動時のDefOpen.midや宿のDefInn.midなど)を使うと分かりやすいと思います。
- スタートメニューに登録されたショートカットから「timw32g」を選択します。
無料で使える音源には、他にBASSMIDI Driver(CW1.30デフォルト/CW1.50のサウンド再生と実体は同じ)やVirtualMIDISynthがありますが、カスタマイズの幅を考えるとCWの最新版を使うのと大きな差はないように思います。
CW以外でもMIDI再生の機会があるなら、ひと手間かけて導入する意味が出てくるかも。
(2)標準のMIDI音源の変更
次に、MIDI音源をデフォルト設定の「Microsoft GS Wavetable Synth」から「Timidity++ Driver」に変更します。コントロールパネルの設定メニューが無くても、レジストリに適切な値を書き込む事で変更可能です。
(TiMidity++以外を使う場合も、設定の流れは同じです。)
- 【Windows Vista/7の場合】
直接レジストリを書き換えなくても、音源変更ツールで変更できます。
良く知られていると思われるものから、2つ紹介します。
どちらかをインストールし、MIDIの出力先として「Timidity++ Driver」を選択してください。
- MIDIせれくたー
- ダウンロードしたアーカイブを任意の場所に展開すればインストール完了です。
- ツールを起動して、MIDIの出力先を選択します。
- Putzlowitschs Vista-MIDIMapper
- 上のリンク先ページで、Download (putzlowitsch.de)~のリンクからダウンロードできます。
- ZIPファイルを展開して得られるPLWMidiMap.cplを
- OSが32ビット版→Windows\System32 フォルダに入れます。
- OSが64ビット版→Windows\SysWOW64 フォルダに入れます。
- どちらか不明...。
- コントロールパネルの「Putzlowitschs Vista-MIDIMapper」からMIDIの出力先を選択します。
(※それらしい項目がコントロールパネルに無いときは、一旦OSを再起動してください。)
- MIDIせれくたー
- 【Windows 8/8.1/10の場合】
上で紹介した音源変更ツールによる変更はできないようです。
音源が正しく変更されたように見えても音が変わらない場合は、レジストリを直接編集します。
今後、対応ツールが出てくるかもしれません。
レジストリ エディターを起動して、以下のキーに移動。
- OSが32ビット版
→HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32 - OSが64ビット版
→HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32 - 何ビットか分からん。
万一の場合に備え、変更前にレジストリキーの内容をエクスポートしておく事をお勧めします。
元に戻すときは、「timiditydrv.dll」にしたところを「wdmaud.drv」に書き換えてください。
- OSが32ビット版
補足:OSが32ビット版か64ビット版かを確認する方法
以下のどちらかの方法でシステムのプロパティを表示し、「システムの種類」の項目を見ます。- デスクトップで「コンピューター」アイコンを右クリック→プロパティを選択
- コントロールパネルで、システムとセキュリティ→システムを選択
[▲上へ]
補足:CardWirthのBGM(MIDI)再生の変遷
本体の更新で変更が入り、バージョンによって再生方法や関連設定項目が異なります。- CW1.28まで
-
MIDI音源や音量は、Windowsの設定に従います。
CWエンジンの設定メニューからBGMのON/OFFを選択できます。
再生開始が遅れる事がありますが、回避策によって回避できる場合もあります。 - CW1.29
-
MIDI音源や音量は、Windowsの設定に従います。
CWエンジンの設定メニューからBGMのON/OFFを選択できます。
再生遅延のための修正が行われました。 - CW1.30
-
BASSによる再生(デフォルト)と従来の再生方法のどちらかを選択できます。
再生方法やBASSで使用するサウンドフォントは、cwex.iniで指定します。(設定方法→extender.txt)
CWエンジンの設定メニューからBGMのON/OFFを選択できる他、再生方法にBASSを選択している場合は音量の調節もできます。 - CW1.50
-
BASSによる再生のみ使用できます。
再生に使用するサウンドフォントとBGMのON/OFF、音量を、CWエンジンの設定メニューから変更できます。