Pull to refresh
16K+
3

User

26
Rating
1
Subscribers
Send message

Один пакет — один мини-плеер: почему мы перенесли голос БОЛТУНа в AudioWorklet

Level of difficultyMedium
Reading time4 min
Reach and readers6.2K

Почему исправные 20-мс аудиопакеты всё равно превращались в щелчки? В БОЛТУНе каждый пакет запускался как отдельный AudioBufferSourceNode — до 50 мини-плееров в секунду на одного говорящего. Мы заменили это расписание одним непрерывным AudioWorklet с кольцевым буфером и проверили новую схему тестами.

Разобраться в звуке

После сборки на Tauri затрещал голос и почернел стрим: разбираем три ошибки одного теста

Level of difficultyMedium
Reading time10 min
Reach and readers6.4K

После сборки на Tauri голос начал трещать, автокалибровка почти минуту вмешивалась в разговор, а демонстрация экрана через минуту становилась чёрной. Разбираем запись и логи, находим усиление до ×4 без лимитера, резкие разрывы 20-мс аудиопакетов и зависший видеотрек при живом соединении LiveKit — и показываем, как исправили каждый сбой в версии 0.0.26.

Разобраться в причинах

2,2 МБ против 128 МБ: честный бенчмарк Win32 и Tauri на живом голосовом клиенте

Level of difficultyMedium
Reading time7 min
Reach and readers7.8K

После статьи о выборе Tauri нас спросили, сколько памяти будет занимать программа, которая живёт в трее рядом с игрой. Мы запустили старый БОЛТУН на Win32 и новый на Tauri в одинаковом пустом лобби. Получилось 2,2 МБ против 128 МБ. Разбираемся, откуда взялись девять процессов WebView2, что показал замер и почему это не стало автоматическим отказом от нового интерфейса.

Читать бенчмарк

После комментариев на Хабре мы развернули тестовую ветку БОЛТУНа: Electron, WinUI 3 или Tauri 2?

Level of difficultyMedium
Reading time11 min
Reach and readers6.7K

После первой статьи о БОЛТУНЕ мы развернули отдельную тестовую ветку и начали выбирать новый стек интерфейса. С помощью ИИ сравнили Electron, WinUI 3 и Tauri 2, проверили выводы по документации и собрали прототип на Tauri. Рассказываем, почему не переносим звук из C++ в WebView, как устроили границу WebView → Rust → C++, что уже работает, а что ещё предстоит измерить.

Читать эксперимент

Голос пропадал каждые три секунды: как пять друзей из Tarkov Arena сделали БОЛТУН

Level of difficultyMedium
Reading time11 min
Reach and readers7.4K

Нас пятеро: друзья и команда по Tarkov Arena. После блокировки Discord и прекращения работы обходного способа мы не нашли подходящую российскую замену и начали делать BOLTUN. В живых тестах голос рвался ровно раз в три секунды, хотя локальная запись была идеальной. Мы меняли буферы, WASAPI, Opus, ADPCM, PCM, UDP и серверный relay. В итоге период вывел нас на неожиданную причину: диагностический лог каждые 50 кадров. Разбираю расследование, собственный формат TVO2 на 80 мс и устройство голосового тракта.

Читать расследование

Information

Rating
329-th
Registered
Activity

Specialization

Фулстек разработчик, Разработчик мобильных приложений
Стажёр
Управление проектами