Tips・その他
バグ
- YellowMusicPlayerの起動が遅い。BGMがなるまで時間がかかる。
- Windows Vista, 7 でこの現象が起こるPCがあります。(すぐ起動するwin7のPCもある。XP以前はすぐ起動する)
YellowMusicPlayerの設定でDirectMusicをOFFにすると起動が速くなります。
- ただし、DirectMusicをOFFにすると、Midiの反応が鈍くなる・他のPCで同じ音源でなくなる・Midiの音がきれいではなくなる
といったことが起こるので、そこも考慮して下さい。
- 再生の命令を出しても、再生されない場合があります。
- YellowMusicPlayerでは反応速度を優先しているため、デフォルトではファイルの読み込み頻度が1秒間に60回と高いです。
YellowMusicPlayerの設定でファイルの読み込み頻度を少なくすると、バグが少なくなる可能性があります。
- 標準の$mplayerのままの場合に発生しやすいです。(バグの原因となるコードがあるため)
- Ymplayer.tonyuを使用することを勧めます。(バグの発生しにくくなる)
または、修正版MediaPlayer.tonyuを上書きすることを勧めます。
- TonyuとMusicPlayerが、1つのファイルを読み書きしてBGMの再生命令を認識するという方法をとっています。
その仕様上同時アクセスが発生する可能性があるため、このバグを完全に消すことはできません。
- マスターピッチ機能を使うと、Midiファイルによっては音が変になる場合があります。
- ピッチベンドが送信されているMidiファイルで、うまく再生されないらしいです。
- バグが起きないMidiファイルで、マスターピッチ機能を使いたい場合のみONにするといいです。
- 使用しているライブラリの仕様(Midiの仕様かも)なので悪しからず…
- Midiでフェードイン・フェードアウトを行ったり、Midi再生中に音量・ピッチの値が変化する頻度が多かったりすると、
Midiファイルによっては再生速度が遅くなる場合があります。
- 毎秒60回程の頻度で音量・ピッチの値が変化する場合に、再生速度が遅くなるMidiファイルがありました。
- DirectMusicを使用している場合で起きる現象だと思います。
- 遅くなる場合は、変化の頻度を少なくしたり、フェードイン・フェードアウトを無効にしたりするほうがいいです。
または、DirectMusicをOFFにするとこのバグがおきません。
- Midi再生開始時に、最初の音だけピアノ音になることがあります。
- 「細かい仕様」にもあるようにバグ防止策を講じているので、バグの頻度は少なくなっています。
- しかし、稀にこのバグが発生してしまいます。気になるときは、冒頭の空白スキップをOFFにしてください。
- DirectMusicがOFFで、Midiデバイスに「TiMidity++」を設定している場合、Midiの音色が全てピアノになることがあります。
- Midiのキャッシュ機能がONのとき、Midiファイルを途中で上書きしても、YellowMusicPlayerでは反映されません。
- Midiのキャッシュ機能がONのときは、起動時にMidiファイルをメモリに読み込んで、それ以降はディスクから読まないため、
このような現象が起きます。
- Tonyuの開発環境版でMidiを変更した場合、Tonyuを再起動すると変更後のMidiファイルが適応されます。
- PCの処理がかなり重くなった時に、Oggの曲が8秒ごとに繰り返される場合があります。
- この現象はよほどPCが重くならない限り、めったに起きない現象なので、気にする必要はないでしょう。
ただし、Oggのテンポを速くしている場合は、音が繰り返してしまう可能性が少し高まるので注意が必要です。
この現象が起きても、処理に余裕ができれば本来の再生位置まで戻るように作っているので、再生位置がずれることはほぼ無いと思います。
- YellowMusicPlayerではOggを再生するために、前もって8秒先の音を作っておきます。
再生中は、8秒先の音を常に作っています。
しかし、PCの処理がかなり重くなった時は処理が止まってしまい、音を作るのが間に合わなくなった時にこの現象が発生します。
細かい仕様
細かい仕様なので、あまりに気にする必要はないです!
- Midi再生中・一時停止中に他のMidiに切り換えて再生する場合、30ミリ秒間停止してから再生開始します。
- 即座にMidiを切り換えると、最初の音がピアノになってしまうことがあるため、そのバグ防止策です。
- 停止中は30ミリ秒間待たずに、即座に再生開始します。
- 現在の演奏時間の取得・Midiファイルの情報取得は、setGettingPlayerStatus()メソッドで指定した頻度で更新される以外に、
再生・停止・一時停止・一時停止からの再開の命令が出された時でも更新されます。
- 一時停止・一時停止からの再開では、30ミリ秒遅れて更新されます。
- 再生・停止では、即座に更新されます。
- 開発環境版では、プロジェクトを切り換えると、エフェクト情報・再生オプションの情報がリセットされます。
- MusicPlayerでは、Midiファイルのあるパスを見て、default.tonyuprjのパスが変わったときにリセットという方法をとっています。
- Midiファイルがサブフォルダ3つの中までなら、MusicPlayerはエフェクト情報の取得・MusicPlayerの状態の書き込みができます。
- 例えば、今開いているプロジェクトのフォルダのパスが「C:\Usr」の場合、
Midiファイルのパスが「C:\Usr\sub1\sub2\sub3\bgm01.mid」の場合でも、
エフェクト情報「eff_midi.txt」を取得でき、「YMPStatus.dat」を書き込むことができます。
- 「C:\Usr\sub1\sub2\sub3\sub4\bgm01.mid」のようにサブフォルダが4つの場合、
Midiは再生されますが、エフェクトが適応されずに演奏されます。
また、MusicPlayerの状態取得もできなくなります。
- 演奏されるMidiのパスから、「default.tonyuprj」を探すのでこのような現象が起きます。
- エフェクトを使わない場合・MusicPlayerの状態取得機能を使わない場合は、この話は無関係です。
戻る