サウンドフォントを変更して「適用」するとアプリケーションごとのボリュームも変更される場合がある
黒鉄の風斬り羽根の人さんの報告です。
https://twitter.com/cw_rom/status/901113355426947072
自分の方では上記のような構成にしても再現しなかったのですが、DMでのやりとりで、「コピーでは症状が継続しないが、移動では継続する」ということで、そういえば一時期自分もそういうことがあったなぁと思い、通知領域の音声アイコン右クリック→ミキサーを確認して頂いたところビンゴのようでした。
再現のためにPy2.0β4を新規に落とし直して、2~3回再現を確認とのことです。
Comments (9)
-
repo owner -
reporter テスト版でもかなりガチャガチャやると再現する、 また、原因とは無関係かも知れないが適用時にフリーズしてエラーログが出た、とのことでした。
- https://ux.getuploader.com/CardWirthReplay04/download/1036
- https://ux.getuploader.com/CardWirthReplay04/download/1035
- https://ux.getuploader.com/CardWirthReplay04/download/1034
パスワード:abc
(転載許可は頂きました)
サウンドフォントを全て削除してPyを再起動する時、Windowsの音量ミキサーを同時に表示していると、(WinMMで)DefOpenが流れた瞬間に音量ミキサー上のPyの音量が下がっており、(WinMMで再生されているため)そのタイミングでは下がっているのがわからず、サウンドフォントにチェックを入れた時に(BASSからの出力でPy側の音量が適用されるので)発覚しているのかも、という流れ?のようです。
見た感じ、またSDLmixerの厄介な競合が起こってるのかなという感じですね。
-
repo owner サウンドフォントを全て削除してPyを再起動する時、
たしかにSDL_mixerっぽいですね。
もういっそSDL_mixerを使う処理を削除してしまった方がよさそうですが、今の時期にそれをやるのは他の問題を入れてしまいそうなので躊躇する所です。
-
repo owner 新しいエラーログは全てSDL_mixerのものなので、サウンドフォントを全く使わない設定にしない限りは発生しないと思います。
-
repo owner 事故じみていますがpull request #1983でBASSを初期化しないようにする変更をマージしました。
「かなりガチャガチャやると再現する」との事ですが、たぶん全てのサウンドフォントを使用しない設定を挟まなければ大丈夫になっているのではないかと思います。ただ、起動時の初期化でこの現象が起きるのではという不安は依然としてあります。
-
reporter -
reporter - changed status to resolved
-
repo owner 手をつける箇所は同じになるはずなので、参考にさせていただきます。
init
のif文はBASSの初期化を行ってそれに失敗したら……というものですので、中身のinit_bass
だけ実行するようにしてみてください。 -
reporter あ、この1行で実行もしてるんですね。
ご教示の通りで鳴るようになりました。糞初心者でお恥ずかしい限りです。
- Log in to comment
ご報告ありがとうございます。
手許のWindows 10で見てみたところ、Windowsのアプリケーションごとの音量とCWPyの設定音量は連動して動いているようでした。以前のバージョンのWindowsではこの辺りが違うのかもしれませんが、そうなるとアプリケーション側から書き換えてしまえる事が謎になります。
サウンドフォントの変更時にはBASS Audioを再初期化していますが、それによって設定の変化が起きているのであれば、再初期化を抑止する事で問題を軽減できるはずです。以下はそれを試しに実装してみたものです。
https://bitbucket.org/k4nagatsuki/cardwirthpy-reboot-k4nagatsuki/downloads/CardWirthPy_test_20170826a.zip
しかしそもそもエンジンの起動時に初期化を行っているので、そこでもこの問題が起きる可能性は残ります。