В процессе тестирования драйвера ScreamALSA на Raspberry Pi 2 с системой piCoreAP 11 выявилась чувствительность драйвера к загрузке системы на слабом железе, приводящая к нарушениям синхронизации.
В результате работы над этой проблемой архитектура драйвера была полностью переработана и новый его вариант версии 2.0 улучшен во всех отношениях:
повышена стабильность работы и точность синхронизации, снижена вычислительная нагрузка, сняты ограничения на размер периода драйвера (с Audirvana должен быть совместим).
Драйвер ScreamALSA обновлен на версию 2.0 на github, в архиве на сайте и в образах систем piCoreAP 32/64 и YoctoAP для PC 64, Odroid C2, Paspberry Pi 4/5, ASUS Tinker Board 2, Nanopi Neo 3.
Игорь, спасибо!
Получилось без проблем заменить файл драйвера, всё работает штатно.
И заодно исчезла вот эта проблема:
Проблема ушла, глитчи и щелчки на 24/192 из стриминга прекратились. Видимо дело было всё-таки в высокой загрузке процессора драйвером ALSA, а не в сетевых проблемах. Тем более это слабенькая 3B+
Сейчас всё в порядке.
И вот кстати попутный вопрос - как посмотреть загрузку процессора в piCoreAP? Возможно это помогло бы решить некторые проблемы и вопросы. Ну и для статистики
Сам спросил, сам нашёл htop, его надо установить сначала через SSH командой tce-load -wi htop. Но зато потом - очень показательные данные.
У меня вот так при воспроизведении 24/192 из стриминга. Как оказалось (я так и подозревал), что основная нагрузка на процессор - это плагин SqueezeDSP, который у меня загружен румкоррекцией. При его отключении значения загрузки процессора падают на 50-60%.
Ну и видно, что выделение 3 и 4 ядра под squeezelite и его вывод работает вполне корректно.
А так понятно, что 3B+ уже неплохо бы и проапгрейдить на что-то более мощное. Но в целом с новым драйвером ALSA Scream, плеер воспроизводит HiRes стрим без слышимых артефактов.
И что-то я подумал, что в связи с новым оптимизированным драйвером ALSA Scream возможно уже нет необходимости выделять на squeezelite целое ядро, а можно освободить только ядро под Output. Как, собственно, рекомендовано в разделе Tweaks pCP. Попробовал - работает нормально, и теперь румкоррекцией загружены уже 3 ядра с меньшей нагрузкой, а не 2, возможно это даст более стабильный режим работы устройства в целом.
Напомню, что непосредственным выводом звука в цифровой поток и далее на ЦАП у меня занят выделенный Yocto, который принимает Scream по UDP от squeezelite, так что теоретичеки на качестве звука это переключение ядер сказаться вроде не должно. Но посмотрим, конечно на практике. Пока всё нравится, ещё раз спасибо Игорь @igor63r за вашу работу!
Упс, результат отрицательный, через некоторое время squeezelite видимо вылетает, и стримит что-то типа белого шума вместо полезного сигнала. Вернул обратно выделенные 3 и 4 ядра, наблюдаю.
Скажите пжт есть простой вариант без ребута переключаться с провода на вайфай?Дело в том, что по вайфаю у меня настроен доступ к КВН роутеру, а по проводу обычный. Дёргать провод на малине и потом перезагружаться не очень удобно.
@igor63r Игорь, понимаю, что вопрос не совсем по профилю, но может вы как-то подскажете в каком направлении двигаться.
Вкратце - недавно для LMS вышел плагин Яндекс Музыки, который для воспроизведения FLAC требует некоторые библиотеки, в том числе дешифровщик. Соответственно, когда его нет в системе (речь о RPi 64, в Виндовс он есть по умолчанию) в настройках появляется такак вот надпись:
Crypt::Rijndael not found - using built-in AES
Crypt::Rijndael is not installed. The built-in pure-Perl AES implementation will be used for stream decryption. This may cause delays and higher CPU usage on slow processors. To install: sudo apt install libcrypt-rijndael-perl
Очевидно, это команда для установки в Debian системах. Если есть возможность - подскажите пожалуйста, что с этим можно сделать в PiCoreAP?
Этот output для Squeezelite плеера. Но и там ScreamALSA выбирается, когда устройство используется в роли сервера, а не приёмника.
apscream выводит на устройство по умолчанию, которое можно выбрать в аплеере на вкладке Card, запустив его через apmenu.
Затем надо сделать Backup и перезагрузиться.
У меня также как у вас - PiCoreAP 64 на 3B+ стримит по Scream на Yocto (32 вроде, не помню) - Малина 3B, шляпа 502DAC. Работает штатно, спасибо @igor63r
Да в апменю по умолчанию не увидел настроек апскрима и полез в сквизлайт который вообще для LMS.
Слушаю через 3b+ → реклокер allo kali → tda1543, работает, спасибо, есть несколько вопросов:
В йокте я выбирал rpi dac, в пикор есть rpi dac (green, pro, old) ни с одним из них не взлетело, но заработало с hifiberry dac+light, почему так?
Есть ли между ними всеми разница в качестве, стоит отслушивать остальные варианты hifiberry?
Редактирование ip скрима на вкладке card плеера, равнозначно входу через ssh и правке /home/tc/scream.conf ?
Т.к. в output screamALSA я не использую, февральская оптимизация мимо?
3b+, некоторые сборки 64bit почему то не играли, 32 без проблем, либо что-то неверно делал, крайние пикор и йокта 64 играют ок.
Нет, у меня совсем другая схема, просто отправляю поток по сети через bubble с телефона и фонотекой на нем же.
В том числе можно стримить и apple music и сберзвук к примеру