Foros: ユーザフォーラム (Thread #36288)

DTX忘年会 (2014-12-13 12:03 by yyagi #75035)

何やら再生障害が出ているとのことですが、みなさんどうでしょうか。

ウチの環境では概ね問題なく演奏できていますが、
「未知へと向かう」だけ音が途切れ気味になります。この現象のことかな?

見たところ、サウンドのチップ音の合成に負荷がかかっていて、
それでサウンド再生がとぎれとぎれになっていました。

この現象は、以下のどちらかで改善できます。

1. Config.ini の、PolyphonicSounds の値を小さくする。
 初期値は4ですが、これを2くらいにする。
2. DirectSoundを使うか、WASAPI/ASIOのサウンドのバッファ量を増やす。
 (ただし、WASAPIの場合は手動でバッファ量を増やせないのでハマります。
  ごめんなさい。
 試しにWASAPIで強制的に100msほどのバッファをとる版を作ってみたところ、
  問題なく再生できました)

2.のWASAPIについては、今後、手動でWASAPIのバッファ量を設定できるような
機能を追加する形で対応したい思います。


なお、なぜこの曲データでだけ合成に負荷がかかるかというと、
この曲データの1つ1つのチップ音の再生時間が長いためです。
チップ音が長いと、とあるチップ音の再生が終わる前に次のチップ音が
どんどんやってきて・・・という状況になり、チップ音のミキシングの
負荷が大きくなり、サウンドバッファ内の局所部分の再生が終了する前に
次のミキシング済みサウンドを用意できず、音が途切れるようになります。

ですから、対策としては
1. チップの多重再生数を小さくする (ミキシングの負荷を小さくする)
2. 再生バッファ量を大きくする (多少ミキシング負荷が高くてもサウンド再生に影響が出ないようにする)
といったことが考えられ、これがそれぞれ先ほど挙げた対策となります。

Responder al #75035×

You can use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Entrar

Re: DTX忘年会 (2014-12-13 13:12 by from #75036)

[メッセージ #75035 への返信]
> なお、なぜこの曲データでだけ合成に負荷がかかるかというと、
> この曲データの1つ1つのチップ音の再生時間が長いためです。

あー。うちはチップ音消してるから問題なかったのかー。

Responder al #75035

Responder al #75036×

You can use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Entrar

Re: DTX忘年会 (2014-12-13 13:47 by kairera0467 #75037)

私の環境ではFullHD版、Ver.Kの両方でDirectSoundで再生できませんでした。(メモリ量の不足)
Ver.KだとWASAPIで無事に再生できました。・・・バッファ量の設定を自動化していなかったので。
以前のバージョンで搭載されていたデバッグ表示でミキサーの処理状況を確認したところ、ミキシング数が130超えていたような。

正午あたりに修正版が出ていますが、そちらは確認していません。
Responder al #75035

Responder al #75037×

You can use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Entrar

Re: DTX忘年会 (2014-12-15 03:19 by yyagi #75049)

実はウチの環境の場合、バックグラウンドで仮想PCを動かすとかして負荷を上げないと、
問題の現象は出ないんです。(だから、うちで問題再現できたのは、たまたまです)

fromさん
たしかにチップ音を再生しないようにしていると、この問題は出ないでしょうね・・。
ところでWASAPIのタイマー計算に問題があると伺いました。
適当に直していただけますと助かります。
私が以前タイマー周りのコードを見た時には、特に問題なさそうでした。
(もともとのfromさんのコードから私が加えた機能差分は、ASIO4ALL環境で
演奏初めにタイマー値が巻き戻ることがある現象への対策だけです。
スクロールががたつく問題に対しては、結局OSタイマーを使用する
オプションを追加して逃げただけなので、まだ実質未解決です)

kairera0467さん
今のバージョンですと、DirectSoundでストリーム再生はやってませんからね。
メモリが不足しやすいだろうなとは思います。
ただ、DirectSoundの自動再生位置補正に失敗したときにそのままエラー終了していた
ため、そこにtry/catchを入れてみたところ、特に違和感なく演奏継続できました。
今度コミットしておきます。

Responder al #75049×

You can use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Entrar