Загрузка *.sunsynth файла приводит к "пердежу" вместо звуков

Found a bug? Post it here.
Post Reply
xintrea
Posts: 5
Joined: Tue Jan 03, 2023 2:44 am

Загрузка *.sunsynth файла приводит к "пердежу" вместо звуков

Post by xintrea »

SunVox 2.0e с официального сайта
Среда: Debian Linux 11 Stable
Драйвер: ALSA, 32bit floating-point, 96000Гц

При загрузке нового инструмента (Область модулей - Новый - Загрузить), если попытаться проиграть пару нот на каком-нибудь *.sunsynth - файле, чтобы понять как инструмент звучит, SunVox перестает корректно воспроизводить звук. Файлы *.sunsynth берутся из стандартного набора, который идет в комплекте с программой.

Пробные ноты начинают пердеть, шуметь, звучат как шум. Если даже ничего не выбрать и вернуться в редактор, то проигрывание песни тоже превращается в какое-то бульканье и пердеж. Кроме того, меняется (ускоряется) темп всей композиции, которая теперь на музыку не похожа. Ускорение происходит в несколько раз, как минимум в два-четыре раза.

Двойное нажатие на кнопку Стоп не помогает.

Приходится выходить из SunVox и заново его запускать. Это происходит постоянно, очень трудно редактировать даже короткое призведение.

UPD: Возвращение к нормальному воспроизведению звуков может происходить спустя какое-то время, не выходя из SunVox. То есть, не трогаешь SunVox пару минут, после чего он нормально начинает играть. А так же возврат к нормальному воспроизведению возможен даже в процессе проигрывания. То есть, слушаешь ускоренный ритмичный пердеж, композиция или трек по-кругу проигрывается несколько раз, и в какой-то момент бамс - и начинается нормальное воспроизведение. С одной стороны хорошо что само восстанавливается, но пользоваться трекером с такими глюками практически невозможно.

UPD2: Еще заметил, что при клике на файл Keres OrangeKit.sunsynth происходит самопроизвольное проигрывание короткого звука. И у файла Keres Slaybells.sunsynth тоже при клике слышен тихий повторяющийся звук похожий на шум ветра. У других файлов в том же каталоге такого поведения не наблюдается.
User avatar
NightRadio
Site Admin
Posts: 3941
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Загрузка *.sunsynth файла приводит к "пердежу" вместо звуков

Post by NightRadio »

проигрывание песни тоже превращается в какое-то бульканье и пердеж.
Это глюк PulseAudio, который в рандомные моменты перестает корректно эмулировать ALSA. Сталкиваюсь с аналогичной проблемой - где-то чаще, где-то реже. Зависит от системы и компа. Даже Audacity иногда сваливается в такой же шум.
Ниже перечислю решения, которые я нашел.

1. /etc/pulse/daemon.conf : уменьшить default-fragment-size-msec - вроде бы, иногда помогает.

2. Если есть возможность, можно уменьшить частоту (96000 -> 44100) и/или увеличить размер буфера.

3. Можно запустить SunVox командой: pasuspender -- ./sunvox . Это даст эксклюзивный доступ SunVox к звуковой карте через ALSA, все остальные звуковые приложения скорее всего замолчат до тех пор, пока SunVox не закроется. Предварительно в настройках звука SunVox нужно явно указать выходное устройство (вместо АВТО по умолчанию). Недостаток такого способа - если записывать видео с экрана, то звука не будет.

4. Можно перейти на драйвер JACK, предварительно запустив JACK-сервер через qjackctl

Теоретически, ситуацию должен изменить PipeWire, но с ним мне еще не довелось поработать...

UPD2: Еще заметил, что при клике на файл Keres OrangeKit.sunsynth происходит самопроизвольное проигрывание короткого звука. И у файла Keres Slaybells.sunsynth тоже при клике слышен тихий повторяющийся звук похожий на шум ветра.
Есть такое дело, но это надо спросить автора, почему его синты так работают :)
xintrea
Posts: 5
Joined: Tue Jan 03, 2023 2:44 am

Re: Загрузка *.sunsynth файла приводит к "пердежу" вместо звуков

Post by xintrea »

Получается, что SunVox не использует системный таймер для синхронизации скорости проигрывания композиции? А для таймингов полностью полагается на звуковую подсистему? Ведь если бы использовался таймер компьютера, скорость музыки бы не менялась. Ноты звучали бы криво, а скорость проигрывания была бы правильной. Если этого не происходит, если музыка звучит в несколько раз быстрее, то даже для временных задержек используется информация звуковой подсистемы. Я правильно понимаю?
User avatar
NightRadio
Site Admin
Posts: 3941
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Загрузка *.sunsynth файла приводит к "пердежу" вместо звуков

Post by NightRadio »

Получается, что SunVox не использует системный таймер для синхронизации скорости проигрывания композиции?
Да, все верно. Такая синхронизация и не нужна, т.к. звуковая подсистема - это идеальный таймер.
То, что происходит с ALSA и PulseAudio - это просто серьезный баг звуковой системы, идет потеря пакетов данных. Тут никакой таймер не поможет.
Post Reply