View Single Post
Old 14 October 2016, 15:04   #33
Registered User
Join Date: Jul 2008
Location: Netherlands
Posts: 384
Originally Posted by Toni Wilen View Post
352 = Paula buffer size which is half the size of wasapi buffer (perhaps it should be even smaller), shared mode does not require that complete buffer is filled. There is also hidden "reservour" buffer that keeps the overflow if Paula buffer didn't fit 100%. It is normally mostly empty. (This can't happen in exclusive mode, it always uses wasapi buffer sized requests).

Value in parenthesis is wasapi buffer size.

I am not sure if I want to mess with this too much, can't really improve it much more.
Done some more testing with wasapi-ex mode and low latency vsync. In this case I need to change the buffer setting (while using HD audio driver onboard realtek) to 3 or even 4, otherwise there will be slight crackles / pull overflows very occasionally. For wasapi shared I currently have it at setting 2 (whichs runs wunderful).

With regards to timing I had another thought. Are you in low latency vsync mode still burst emulating chuncks of 2ms (every time waiting for real-time to match emulate machine time)?

What if, only when buffer size setting is really small, you would instead align them with the wasapi buffer size "time" and synchronize with the pull events?

So for example wasapi size is 352:

- Wait for pull event
- Burst emulate time equivalent of 352 samples, fill buffer
- wait for pull event
- burst emulate, etc..

Possibly this would allow for even tighter synchronization when buffer setting is ultra small?

(Even though I can imagine this may not be easy when combining it with final wait for vsync..)
Dr.Venom is offline  
Page generated in 0.03897 seconds with 10 queries