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

Вадим, рендерер реализует стандартный протокол DLNA/UPnP. Да, он получает ссылку на http-источник потока, загружает его, декодирует и воспроизводит. Поэтому для полного комплекта рендереру нужны управлялка (контрольная точка) DLNA/UPnP и http-сервер. Иногда эти функции совмещены в одном приложении, иногда это отдельные приложения.

2 лайка

Обновлен до версии 3.2 драйвер asioscream для Windows в архиве asioscream3.zip. Устранена недоработка из-за которой сетевые пакеты с аудиоданными передавались недостаточно равномерно. Равномерность передачи пакетов может влиять на качество результата. Там, где драйвер уже установлен, достаточно заменить файл asioscream.dll на новый вариант.

14 лайков

Драйвер asioscream обновлен до версии 3.3. Оптимизирован код драйвера, снижена нагрузка на процессор. Повышена точность синхронизации при передаче пакетов в сеть. Исправлен выбор выходной разрядности аудиоданных. Там, где драйвер уже установлен, достаточно заменить файл asioscream.dll на новый вариант.

12 лайков

Здравствуйте, Игорь!
Огромное Вам Спасибо за очередное обновление.
Заметил интересную особенность. Если возможно, поясните пожалуйста.

При трансляции потока с запущенным asioscream с Win DLNA/UPnP сервера (minimserver & Linn Kinsky) на (YoctoAP & aprenderer & screamap) и дальше на endpoint (YoctoAP & apscream) с сервера поток отправляется явно выраженной “пилой” формируемой minimserver.


Т.е. в такой конфигурации включение asioscream фактически теряет смысл.

Но в тоже время, при использовании aprenderer на стороне Win DLNA/UPnP сервера с использованием тех же minimserver & Linn Kinsky и дальше сразу на endpoint (YoctoAP & apscream), выходящий поток идеально ровный. То есть в этом случае asioscream перехватывает управление потоком.


Интересует вопрос. Насколько это критично в первом случае, когда основная работа по декодированию и воспроизведению осуществляется на следующем плече (YoctoAP & aprenderer & screamap) → endpoint (YoctoAP & apscream). Возможно в этом случае вообще нет смысла запускать asioscream?

Можно ли реализовать чтобы asioscream выполнял свои функции без запущенного на стороне Windows рендерера\плеера.
Спасибо.

Здравствуйте, Игорь!
Хотел спросить почему в “коробочных” настройках для всех платформ период и буфер альсы Вы задаете в фреймах, а не в микросекундах? Это как-то связано с тем, что буфер предзагрузки стандартного режима воспроизведения использует именно фреймы? Например, я уже давно заметил, что если выставить период и буфер альсы в микросекундах (100000 и 500000, соответственно), то при проигрывании файла 44.1 КГц на вкладке" Status" период альсы будет 4410 фреймов:

если 48 КГц, то 4800 фреймов:

то есть, между ними существует некая корреляция, чего нет если задавать период и буфер альсы в фреймах.
Ещё заметил, что обычно (для ARM) период и буфер альсы в плеере и рендерере 512 и 8192, то есть значение для буфера в 16 раз больше, а в приемнике ScreamAP эти значения 1024 и 32768, то есть, тут буфер больше периода в 32 раза. Это сделано же явно не с проста? И какое, все-таки, оптимальное соотношение периода к буферу альсы? Например, для MPD в микросекундах 5 раз (100000 и 500000), у Вас они разнятся.
Просто, мне показалось, что у меня эти значения влияют на звук при использовании ScreamAP, в отличии от Аплеера и рендерера, пытаюсь понять, хоть в каких значения играться с этими параметрами.

Юрий, последнее звено должно буферизовать неравномерность загрузки в рендерер и передавать в конечную точку равномерный поток. Загрузку в рендерер можно сделать более равномерной в режиме Direct Input с небольшим буфером. При трансляции с Windows компьютера на рендерер используется протокол DLNA/UPnP, а не scream, поэтому asioscream в таком сценарии не используется.

Сервер отдаёт только по UPnP, поэтому либо рендерер, либо плеер нужен, чтобы использовался asioscream. Можно при желании организовать конвейер на трёх устройствах asioscream->apscream+ScreamAP->apscream, но насколько это будет хорошо и стабильно, заранее не знаю.

Сегодня asioscream обновился на 3.4, там убрано лишнее копирование выводимых данных.

4 лайка

Так сделано для предсказуемой точной пропорциональности буферов.

Оптимальным считается соотношение от 4 до 10. Однако период подразумевает передачу этих порций данных аппаратным контроллером через DMA буфер, который на приемной стороне может быть ограничен какими-то килобайтами.
Большой размер буфера в apscream связан с его дополнительной ролью - компенсировать неизбежное расхождение часов приемника и передатчика протокола scream, которое на длинной дистанции неизбежно приведёт к исчерпанию или переполнению буфера.

4 лайка

У меня именно так и реализовано. Работает очень хорошо и стабильно даже на Wi-Fi подключении endpoint.

Игорь, спасибо Вам за развёрнутый ответ.

Обновление от 22 марта 2025 года.

• Плеер и рендерер обновлены до версии 2.17. Добавлена поддержка стриминга в сеть по протоколу Scream. Соответствующая опция и настройки добавлены на вкладку “Card” панели настроек. Для использования этого режима не требуется наличие локального звукового устройства.
• В плеере исправлен пропуск треков при автоматическом переходе между альбомами, декодируемыми разными кодеками (например, FLAC и DSD).
• Обновлены и дополнены ссылки на станции в радиокаталоге плеера.
• В приемнике apscream устранено аварийное завершение при потере сетевого соединения.
• Загрузочные образы системы Yoctoap для PC, Raspberry Pi и других устройств обновлены в соответствии с последними изменениями.
• Обновлено руководство пользователя плеера.

19 лайков

Спасибо огромное, Игорь!
Отличная долгожданная новость.

Игорь, здравствуйте!
Большое спасибо за Ваши труды. Плеер отличный!
На Ugoos X3 установлен Armbian и Album Player.
Скриптами автомонтируются два HDD (2 и 4 Tb). Работает хорошо.
Теперь вопрос… Установил curlftpfs, смонтировал ftp в папку media.
Aplayer видит папки на ftp, но при попытке проиграть папку с ftp воспроизведение не работает и Aplayer уходит в “завис”.
Возобновить работу получается только перезапуском armbian…
На Coreelec (установленный ранее на этом же боксе), штатный проигрыватель этот же ftp без проблем воспроизводил.
Подскажите, пожалуйста, в чём может быть проблема?

Плеер для возможности его использования с разными поколениями операционных систем Linux собран со старой версией библиотеки libc. Этот вариант монтирования файловой системы может не поддерживаться из-за старой библиотеки. Но она использована, чтобы плеер везде запускался.

2 лайка

А, обновить эту библиотеку как-то возможно? Может быть в частном порядке?
Обидно не пользоваться таким замечательным плеером из-за “банальных” ограничений :blush:

Тут слишком много неизвестных. Я посмотрел, curlftpfs самой уже 17 лет. Надо проверить, открывается ли для просмотра содержание смонтированных через неё файлов в mc по клавише F3.

2 лайка

В итоге работает Аплеер с ftp! Отлично воспроизводит музыку.
Что было - не знаю, не смог локализовать причину прежней неработоспособности. Осталось автомаунт ftp сделать.
Спасибо за прекрасный плеер, Игорь!

Скачал сборку для Тинкер 2, записываю Balena создает кучу дисков, на О: останавливается, там апконфиг лежит. Rufus пишет так же.
Настроил для WiFi, но к сети не подключается. Для Тинкер 2 если была залита Pure в eMMC, приоритет запуска с карты будет, или затирать еММС надо?
Карта проверенная, быстрая, 16Гб.
UPD Джампер J3 был вообще не установлен. Поставил в положение MASKROM и загрузка с карты прошла успешно.

Если я вывожу dsd с ноута на pureos через Ascream 3 , то почему-то приходит частота 88,2. Ресивер в apmode 1 режиме.В настройках вывода aplayer стоит nativedsd. Pcm же все ок. Частота меняется в зависимости от трека 44-до 192. Цифры беру из файла hw params. Но сам плеер показывает, что играет сам dsd , с его характеристиками. Скажите пжт почему так? Pure os отдает по usb на цап,который может вплоть до dsd 512. И сразу еще вопрос…можно ли как-то,чтобы плеер показывал именно обложку именно текущего трека,а не обложки всех треков из папки. В каждый трек вшита своя обложка с тегами. И еще просьба сделать возможность нажав пару раз на обложку ,чтобы она открывалась во весь экран без лишнего только с показанием характеристик текущего трек и с наложением двух клавиш вперед/назад. Было бы удобно, когда ноут транформируется в планшет и он сенсорный. Запустил папку из интерфейса плеера. Нажал на обложку. Она открылась во весь экран, с характеристиками текущего трека. Отставил планшет и только треки меняшь двумя клавишами в наложение к обложке. Спасибо

Если для воспроизведения используется Album Player для Windows, то там режим вывода DSD выбирается в настройках SACD плагина, в которые попадают через “Форматы файлов” в контекстном меню.

Нет, картинки для отдельных треков поддерживаются только для радио, а для локальных треков это в силу ряда причин не реализовано и не планируется.

С плеером для Windows можно использовать веб-интерфейс Dimas. Как это сделать, рассказано в инструкции к плееру. Этот веб-интерфейс оптимизирован для сенсорных экранов и может показывать картинки на весь экран.

Я в Форматах файлов и выбрал NativeDSD ,как и писал выше

Если так настроено и в настройках вывода выбран вывод через Asioscream 3, то будет выводиться нативный DSD.

Частота 88.2 в hw_params - это частота передачи 4-байтовых семплов с Native DSD. Умножьте это на 32 бита и получите частоту DSD. Смотреть надо не на это в hw_params, а на то, что вместо PCM воспроизводится формат DSD.

2 лайка