Hi Alexandre,

* Alexandre Ratchov wrote:
> The current sndiod latency (minimum time between when the program
> plays something and when sound reaches Joe's ears) is too large and
> makes OpenBSD unpleasant to use for telephony, games, and makes
> controls of video players slugish.
> 
> The defaut latency (of 160ms) was set ~10 years ago to workaround
> various problems: KERNEL_LOCK used to block audio processing for very
> long, azalia(4) and uaudio(4) were unable to recover after an error,
> which aggravated the problem.
> 
> The kernel improved a lot the last decade and such large buffers are
> not necessary anymore. I think something between 20ms and 40ms is a
> better default for the average OpenBSD system:
> 
>  * audio-conferencing software and games requires no sndiod_flags
>    tweaks anymore
> 
>  * on modern machines (like my 7 years old i5-2500K) building a kernel
>    doesn't make audio stutterer
> 
>  * sndiod_flags tweaks will still be needed for:
>       - very slow or overloaded machines used for audio
>       - machines running heavy/bogus SMM code
>       - real-time synths & effects (20ms is still too small)
> 
> Please try to switch you system to 40ms buffers (i.e. 1920 samples at
> the default 48kHz rate), for instance either apply diff below or
> simply do:
> 
>       rcctl set sndiod flags -z 480 -b 1920
>       rcctl restart sndiod

I have sndiod on -current with this flag running and it quite makes a
difference.  Audio stutters when having a movie running and reloading
some JS heavy websites in parallel are gone.  So quite a good
improvement!

Cheers

        Matthias

Reply via email to