Album Player и другие продукты от Игоря Антонова. Делимся опытом

На приемнике это задержка крохотная. Даже для 44100 она составляет 20 миллисекунд. Какой вариант вывода звука используется на стороне источника, есть ли там настройки буферизации?
Можно выключить AP_MODE, тогда будет работать каноническая версия приемника scream, задержка будет фиксированной и задаваться через SCREAM_LATENCY.

2 лайка

Возможно не до конца понял вопрос, но используется лиса по i2s с версией прошивки PureFox v1.6.1. Звук выводится с windows 11, там нашел настройки только по битности и частоте дискретизации. Про настройки буферизации подскажите пожалуйста где искать? думал это все задается в настройках APscream

На стороне источника - в программе-проигрывателе, в её настройках вывода звука.

3 лайка

Здравствуйте, Игорь!
На Ваш взгляд, при использовании scream, может ли быть полезной синхронизация размеров буферизации на стороне программы-проигрывателя и контрольной точки? Как вариант ALSA Period frames - 144 & ALSA Buffer frames - 2016. Спасибо.

1 лайк

Юрий, этот вариант может быть разумен, но не в смысле сихронизации, поскольку вывод в источнике и приемнике развязан большим буфером, а в смысле повтора того принципа протоколов diretta и scream, что равномерная передача мелких порций данных меньше шумит чем крупноблочная.
Но где-то есть оптимальный баланс, поскольку в уменьшении размера блока свой источник шума из-за увеличения вычислительной нагрузки. Тут можно исследовать, как меняется загрузка процессора в приемнике при разных значениях периода ALSA.

2 лайка

Я вывожу звук просто из системы windows (например браузер, ютюб, игры и тд).
Т.е. какой-то специализированной программы со своими настройками нет

Выше ведь речь шла про зависимость задержки от частоты дискретизации исходника. А 192 кГц - это явно не про браузеры и ютюб.

2 лайка

а разве при выборе в свойствах звука формат в 192 кГц, это не применяется в том числе и к браузерам и тд?

Если выводить через Shared WASAPI или WaveOut, да, применяется. Но это вариант к bit-perfect отношения не имеющий.

Я выше уже пояснил, что для такого “бытового” использования лучше выключить AP_MODE и тогда apscream превратится в классический scream приемник, где вся настройка сводится к SCREAM_LATENCY, где 50 миллисекунд, вроде бы, для слуха нормально, но какой-нибудь начинающий хакер может взломать PureFox, найти там файл настроек apscream и сделать эту задержку ещё меньше.

6 лайков

Подскажите как поставить графический интерфейс ap2gui на линукс (arch), папку куда копировать, в usr/aplayer? команда нужна какая? В мануале что-то не нашел

Папка подходит любая. Извлечь из архива и запустить.

1 лайк

Текущие новости плеера:

• Обновлен каталог радиостанций. Многие станции находятся на блокируемых в России серверах.
Для удобства российских пользователей такие станции исключены из каталога.
Ими можно дополнить радиокаталог, распаковав в папке плеера архив
https://albumplayer.ru/radio/blockradio.zip (для Windows)
https://albumplayer.ru/radio/blockradio.tar.gz (для Linux)

• Обновлено firmware в Yoctoap для RPi 4/5 для совместимости с новыми ревизиями моделей.

• На сайте и в образах систем обновлен ресивер apscream до версии 2.9.
В настройки добавлен выбор номера порта, параметров приоритета и включение
режима монопольного использования последнего ядра процессора (LOCK_CORE).
Для дополнительного освобождения последнего ядра от потоков ядра системы полезно добавить
в командную строку (cmdline.txt) параметр isolcpus=3 (это пример для 4-х ядерного процессора).

• В образах систем обновлен Spotify Connect на актуальную версию (lossless не поддерживается).

• Сборка piCoreAP обновлена на основе pCP 11.
https://albumplayer.ru/linux/picoreap11.zip
https://albumplayer.ru/linux/picoreap11-64.zip
Добавлены драйвер ScreamALSA и ресивер apscream,
добавлен сервер LMS (Lyrion), как обычно есть mc и поддержка файловых систем.
Все компоненты, включая squeezelite и Spotify Connect,
могут выводить звук по протоколу scream через драйвер ScreamALSA.
Для исключения блокировки выхода желательно оставлять активным одно используемое приложение.
Логин/Пароль для SSH: tc/piCore
Загрузка драйвера ScreamALSA включается через удаление знака # в начале первой User Command
внизу вкладки Tweaks, настройка его параметров в /home/tc/scream.conf, затем надо сделать
Backup и перезагрузку.
Чтобы squeezelite выводил через ScreamALSA, в поле Output setting надо указать hw:CARD=ScreamALSA.
Для запуска ресивера можно добавить во вторую User Command /home/tc/scream/apscream
Spotify включается в автозагрузку через удаление знака # в третьей User Command.
При обновлении системы pCP следует сделать резервные копии и затем восстановить файлы
/mnt/mmcblk0p2/tce/optional/alsa.tcz и alsa.tcz.md5.txt.

18 лайков

Если в piCoreAP 11 выводить звук по схеме
”сервер LMS→ плеер squeezelite → драйвер ScreamALSA”,
то с настройками “из коробки” звук может прерываться, поскольку сервер мешает работать плееру. Решение заключается в том, чтобы выделить отдельные ядра для плеера и его звукового движка.
Далее рекомендуемые для 4-х ядерной платформы настройки squeezelite и ядер на вкладке Tweaks.

Чтобы работал автоматический запуск squeezelite при выводе через драйвер ScreamALSA, строку загрузки драйвера из первой User Command в Tweaks надо добавить в файл /opt/bootlocal.sh четвертой строкой. Иначе плеер пытается стартовать до загрузки драйвера, что завершается ошибкой.

8 лайков

@igor63r растолкуйте пожалуста.

Модуль snd-screamalsa и плагин libasound_module_pcm_screamap

Это одно и тоже? Только либо модулем либо плагином?

Не совсем одно и тоже. По функциям, да, аналогично, но драйвер более оптимизирован по коду и более универсален в плане совместимости. Через плагин выводят только плееры, которые не требуют наличия драйвера аппаратного устройства. Audirvana, например, отказывается.

Но драйвер требует сборки под конкретное ядро, а плагин ставится на любое ядро.

2 лайка

Спасибо. Именно так и предполагал.

В PureFox модуль собрал. Вот только пока не понимаю, нужно это там или нет. :grinning_face_with_smiling_eyes:

2 лайка

Для перфекционистов может пригодиться.

Пригодился бы для серверной части. Для конечной точки не нужен.

4 лайка

Интересно попробовать два лакфокса, один как передатчик UDP и некий буфер для приема TCP, второй как приемник UDP. В теории это должно дать капельку перфекции, но нужно выслушивать.

Ну какой сервер из одноядерного Фокса!

Хотя всевозможные Коннекты (SpotifyConnect, TidalConnect, QobuzConnect) можно пустить через этот скрим….

Можно, но зачем?

1 лайк

Вот бридж alsa to dlna имеет смысл для всяких upnp древних балалаек…

2 лайка