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

А можно подробнее о соединении одним кабелем?
Ну, или где посмотреть -почитать.

2 лайка

Если в устройстве два сетевых интерфейса, например, Wi-Fi и проводной, то можно один из них (Wi-Fi) использовать для управления и загрузки файлов, а второй (проводной) - для трансляции звука по прямому проводу на scream-приёмник. Сеть делится на две - внешнюю и внутреннюю.

В случае использования Yoctoap для реализации этой схемы требуется небольшое редактирование файла /home/root/.profile.

Там есть фрагмент, в котором запускается один из двух интерфейсов в соответствии с настройками из файла apconfig.txt:

if [ "$USE_WIFI" = "1" ]; then
      wpa_passphrase $WIFI_SSID $WIFI_PSK > /var/run/wpa_supplicant/wpa_supplicant.conf
      wpa_supplicant -Dnl80211,wext -iwlan0 -c/var/run/wpa_supplicant/wpa_supplicant.conf -B
      ifconfig wlan0 $IP netmask 255.255.255.0 broadcast $OC1.$OC2.$OC3.255 up
    else
      ifconfig eth0 $IP netmask 255.255.255.0 broadcast $OC1.$OC2.$OC3.255 up
    fi

В нём комментируются три строки знаком # и изменяется одна:

#if [ "$USE_WIFI" = "1" ]; then
      wpa_passphrase $WIFI_SSID $WIFI_PSK > /var/run/wpa_supplicant/wpa_supplicant.conf
      wpa_supplicant -Dnl80211,wext -iwlan0 -c/var/run/wpa_supplicant/wpa_supplicant.conf -B
      ifconfig wlan0 $IP netmask 255.255.255.0 broadcast $OC1.$OC2.$OC3.255 up
#    else
      ifconfig eth0 192.168.0.77 netmask 255.255.255.0 broadcast 192.168.0.255 up
#    fi

Смысл в том, что включаются оба интерфейса и Wi-Fi интерфейсу назначается адрес из настроек, у меня: 192.168.1.77, а проводному - адрес из другой сети, у меня: 192.168.0.77.
На приёмном конце, где apscream, в Yoctoap ничего не меняется, просто в apconfig.txt остается загрузка только apscream и адрес задается из внутренней подсети, у меня: 192.168.0.55.
Приемник должен быть заранее настроен на устройство вывода, поскольку прямой доступ к нему в этой схеме теряется.
В управляющем устройстве настраиваем scream-трансляцию на адрес приемника, у меня: 192.168.0.55.
Естественно, адреса сетей и устройств могут быть и иными.

6 лайков
2 лайка

Выбирал asioscream4, даже asioscream3 удалял и чистил реестр с последующим запуском батников с повышением прав. На этой неделе еще раз попробую.

Батник настраивает WDM драйвер.
Для настройки ASIO драйвера вызывается ASIO Control Panel из asio_x64_config.exe.

Благодарю!
Это даёт улучшение в звуке? Или просто исключаем из цепи какие-то звенья?
По идее уменьшение цепочки должно благотворно влиять на звук.(“Я так думаю” к/ф Мимино.)

1 лайк

Теоретически, да. Субъективно - результат отличный. Но гарантировать, что всегда будет заметная разница с воспроизведением в общей сети через роутер, я не могу.

2 лайка

Друзья, кто-то смог завести Audirvana с новым apscream драйвером для альсы? У меня, дрянь такая, ругается на integer mode и не играет. Думал, может какие-то проблемы с самим драйвером - нет, через aplay вавка пропихивается и играет. Отключить интеджер мод пока не понял как - в мобильной управлялке такого параметра они не сделали, а в конфиге непонятно как он называется.

Сам по себе режим “integer mode” для ALSA естественный и единственный. То есть, проблема в чём-то другом. Возможно, Audirvana не устраивает тот факт, что для оптимизации трансфера данных период драйвера жёстко залочен на 144 семпла. От этого потенциально можно отказаться, несколько усложнив реализацию. Если, конечно, проблема в этом.
Это на какой платформе проявляется, с драйвером какой сборки?

1 лайк

Я собрал драйвер для тинкер 2 с dietpi стабильной версии. Собирал прям на тинкере, поставив все нужные утилиты и библиотеки. Драйвер - последний снимок репозитория (только вот буквально полчаса назад загрузил). Драйвер собрался, загрузился, ну и как я уже говорил, через aplay я смог без особых проблем проиграть wav файл (были сообщения про overrun, играло с затыками, но я поменял размер буфера на приемнике, и сейчас ничего не отображается).

2 лайка

А как выглядит сообщение об ошибке?

Его сложно заметить довольно, оно проскакивает и исчезает:

Unable to switch to integer mode

и более ничего, в логах тоже ничего не вижу.

Тогда давайте проверим, период ли не нравится Audirvana.
В файле драйвера snd-screamalsa.c строки 169-170:
.period_bytes_min = SCREAM_PAYLOAD_SIZE,
.period_bytes_max = SCREAM_PAYLOAD_SIZE,
Надо их поменять на:
.period_bytes_min = 64,
.period_bytes_max = 1024,

Драйвер пересобрать и переустановить.
Это ещё не решение проблемы, но если ошибка станет другой, то это важно.

3 лайка

Пересобрал, теперь аудирвана ведёт себя так, как будто всё играет - идёт прогресс, включился эксклюзивный режим. В общем, ощущение такое, что ей теперь всё нравится.

2 лайка

Очень интересно услышать Audirvana

1 лайк

ОК, спасибо.
Посмотрим, во что выльется адаптация драйвера к плавающему периоду.

3 лайка

Роман, нужна ещё одна итерация, результат которой может упростить реализацию.
Попробовать аналогично такой вариант:
.period_bytes_min = SCREAM_PAYLOAD_SIZE,
.period_bytes_max = SCREAM_PAYLOAD_SIZE * 16,

Вернётся исходная ошибка или не вернётся?

Если в этом варианте вернётся ошибка “Unable to switch to integer mode”, тогда просьба проверить аналогично на эту ошибку вариант с заменой не 2-х, а четырёх строк на следующие:

.period_bytes_min = 128,
.period_bytes_max = 1024,
.periods_min = 32,
.periods_max = 1024,

Попробовал первый вариант - ошибку не наблюдаю. Второй пробовать не стал.

Владимир, вопрос.
Если в настройках static address мы зададим адрес из внутренней подсети, (у Игоря: 192.168.0.55) мы потеряем доступ к устройству из общей сети? Как в этом случае осуществляется доступ и в случае необходимости откат произведённых настроек. Или я что-то не правильно понял?

1 лайк

Если вы про прямое соединение компьютера с Лакфоксом, то можно попробовать зайти браузером непосредственно с этого компьютера.

Но не уверен - многое зависит от настроек.

Вообще, эту рекомендацию Павла я в будущей (скоро скоро будет) “Инструкции” буду позиционировать, как “на свой страх и риск”, т.е. только для тех, кто понимает, что делает и несет ответственность за последствия))

1 лайк