Автор Тема: Искажения звука в играх под wine с pulseaudio  (Прочитано 9110 раз)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 9 838
Навеяно темой.

Среда:
$ cat /etc/altlinux-release
ALT Linux 6.0.2 KDesktop  (Centaurea Sadleriana)

$ wine --version
wine-1.4

$ pulseaudio --version
pulseaudio 0.9.22

Признак:
После 15-30 минут нормальный звук в играх под wine через pulseaudio переходит в сильный скрежет.
На слух воспринимается как звук пропущенный через фильтр сильного скрежета.
Для нормализации звука, при проявлении искажений, требовался регулярный рестарт демона pulseaudio.

Причина:
Цитировать
It is possible to change these buffer metrics for machines with high scheduling latencies.

Вариант решения проблемы:
$ man pulse-daemon.conf
DEFAULT FRAGMENT SETTINGS
       Some  hardware  drivers  require the hardware playback buffer to be subdi‐
       vided into several fragments. It is possible to change these  buffer  met‐
       rics  for machines with high scheduling latencies. Not all possible values
       that may be configured here are available in all hardware. The driver will
       to  find the nearest setting supported. Modern drivers that support timer-
       based scheduling ignore these options.

       default-fragments= The default number of fragments. Defaults to 4.

       default-fragment-size-msec=The duration of a single fragment. Defaults  to
       25ms (i.e. the total buffer is thus 100ms long).

Способ решения найден тут:
http://bugs.winehq.org/show_bug.cgi?id=28282#c38

unimatrix 2012-02-24 17:54:31 CST
Цитировать
Maybe this helps someone. I've been getting crackling sound in Oblivion and
Skyrim on the latest Wine.
I solved the problem by editing PulseAudio's config (/etc/pulse/daemon.conf).
I have changed the line
default-fragment-size-msec = 10
to
default-fragment-size-msec = 5
And now it works perfectly.

Вариант:
PulseAudio
The Perfect Setup
(Перенаправление с www.pulseaudio.org/wiki/PerfectSetup)
http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/PerfectSetup
Цитировать
Teeworlds

Teeworlds works for 0.5 onwards.

The following information is for Teeworlds before version 0.5: Uses portaudio for sound. see audacity.

The ubuntu intrepid version of Teeworlds uses portaudio OSS sound. running teeworlds with padsp make the sound go correctly through pulseaudio. However the sound is slightly distorted.. To solve this, add the following lines to your /etc/pulse/daemon.conf
default-fragments = 8
default-fragment-size-msec = 5

Многочисленные баги можно найти в search.google.com по маскам:
Цитировать
crackling pulseaudio
default-fragment-size-msec

Результат теста:
Дефолтный размер фрагмента уменьшен с дефолтных 25ms до 5-ти микросекунд.
Поскольку все параметры конфига демона закомментированы, достаточно команды:
# echo "default-fragment-size-msec = 5" >>  /etc/pulse/daemon.conf
и рестарт демона:
$ pulseaudio -k && pulseaudio --start
Увеличения количества фрагментов не делалось.

Объект тестирования:
StarCraft v1.09 и 1.16.1(оригинал)

Версия 1.09 "каталась" около 4-х часов.
Версия 1.16.1 около6-ти часов.

После изменения размера сегмента искажения звука на протяжении всего времени тестирования отсутствовали в обоих версиях.

(Дополнительно см. по ссылке c вики пульсы, секцию Skype)

PS
Вылезающая ошибка в шелл при старте StarCraft
ALSA lib pcm_pulse.c:995:(_snd_pcm_pulse_open) Unknown field handle_underrun
на качество звука не влияет и не приводит к его отсутствию.

Но наискосок можно посмотреть например тут (в тему winepulse):
http://forum.winehq.org/viewtopic.php?t=13182
http://www.winehq.org/pipermail/wine-users/2011-August/095338.html
http://bugs.winehq.org/show_bug.cgi?id=10495

Владельцы звуковых карт Sound Blaster Creative X-Fi могут наискосок посмотреть например сюда:
https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/301755/comments/110

« Последнее редактирование: 05.11.2012 03:35:13 от Speccyfighter »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 18 760
    • Домашняя страница
    • Email
Спасибо за полезную информацию. Прикрепил тему.
Андрей Черепанов (cas@)