[SLOT_0] ;только нулевой слот
mode = audioLAN

Программный модуль приёма и воспроизведения несжатого аудиопотока по локальной сети через RTP.

Совместимость

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

Принцип работы

Источник потока на стороне ПК — приложение AntiDante: оно берёт звук с любого аудиоустройства Windows и отправляет его RTP-потоком с нужными параметрами.

Аудиопайплайн состоит из двух элементов: RTP-приёмник → I2S-выход. Декодирование не выполняется — поток воспроизводится как есть.

Режим приёма определяется опцией multicastAddress: если адрес задан, модуль подключается к multicast-группе, иначе принимает unicast-поток на порт port. Адрес можно сменить на лету командой setMulticastAddress.

При запуске модуль ждёт инициализации сетевого интерфейса, затем стартует пайплайн и рапортует своё состояние, громкость и адрес источника.

В отличие от opusLAN поток идёт без сжатия: задержка минимальна, но требуется заметно большая полоса пропускания.

ПараметрЗначение
ПротоколRTP (unicast / multicast)
Кодекбез сжатия (PCM)
Самплрейт48000 Гц (настраиваемый, 8000–96000)
Разрядность16 бит (настраиваемая, 8–32)
Каналы2 (стерео)
Задержка~70 мс

Топики

База топика события:

  • <deviceName>/audioStream_<slot> — например moduleBox/audioStream_0

База топика действия:

  • <deviceName>/audioStream_<slot> — например moduleBox/audioStream_0

Полный топик — база плюс направление и имя: moduleBox/audioStream_0/action/setVolume.

Опции

Доступные опции:

  • disableOnStart — флаг, стартовать в выключенном состоянии и ждать action/enable со значением 1. По умолчанию модуль активен сразу.
  • volume — число(int), громкость. Диапазон 0–100. По умолчанию 100.
  • multicastAddress — строка, multicast адрес IPv4 - если задан режим multicast иначе unicast. По умолчанию 239.0.7.0.
  • port — число(int), порт приёма потока. По умолчанию 7777.
  • sampleRate — число(int), частота дискретизации Гц. Диапазон 8000–96000. По умолчанию 48000.
  • bitsPerSample — число(int), бит на отсчёт. Диапазон 8–32. По умолчанию 16.
  • bufSize — число(int), размер jitter-буфера мс. Диапазон 20–200. По умолчанию 40.

События

ТопикPayloadОписание
audioStream_<slot>/event/enable0 / 1Активен 1 или спит 0
audioStream_<slot>/event/volumeцелое, %Текущая громкость
audioStream_<slot>/event/addressстрокаТекущий адрес потока

Пример: топик moduleBox/audioStream_0/event/volume, payload 80.

Команды

ТопикPayloadОписание
audioStream_<slot>/action/setVolume0–100Установить громкость
audioStream_<slot>/action/setMulticastAddressстрокаСменить multicast адрес на лету - IPv4 или 0 для unicast
audioStream_<slot>/action/enable0 / 1Включить (1) или выключить (0) модуль

Индикация

  • Светодиод выключен — модуль в состоянии DISABLE.
  • Светодиод горит постоянно — модуль активен, поток принимается.
  • Светодиод мигает — модуль активен, но поток не обнаружен.

Примеры

[SLOT_0]
mode = audioLAN
options = multicastAddress:239.0.7.5, volume:80, port:7777
 
[SLOT_1]
mode = button_led
;нажатие ставит приём на паузу, отпускание возобновляет
crosslink = button_1/event/press:1->audioStream_0/action/enable:0, button_1/event/press:0->audioStream_0/action/enable:1

Подробнее — внутренние связи (crossLink).