AntiDante — приложение для Windows, которое берёт звук с любого аудиоустройства компьютера и отправляет его по локальной сети RTP-потоком. Это рекомендуемый источник звука для модулей audioLANopusLAN]]: один компьютер — любое число контроллеров moduleBox, играющих синхронно.

  • Репозиторий и инструкция: github.com/turumputum/antiDante
  • Загрузка: Releases — ZIP-архив, распаковать в любую папку и запустить antidante.exe. Установка, права администратора и отдельный GStreamer не нужны — всё внутри архива.

Требования: Windows 10 (1903+) или Windows 11, x64.

Как это работает

Приложение управляет потоками. Каждый поток — это один источник звука и один адрес назначения со своими настройками; потоков может быть несколько, в том числе с одного устройства.

Вход

  • WASAPI — любое устройство Windows, включая loopback-захват выходов: «Default Audio Render Device (loopback)» отправляет в сеть всё, что слышно из колонок компьютера.
  • UDP вход — ретрансляция уже готового потока.
  • Файл — воспроизведение аудиофайла в сеть.

Выход

  • Интерфейс — сетевая карта, с которой уходит поток.
  • РежимMulticast (группа 239.0.7.x, один поток на всех приёмников) или Unicast (на конкретный IP).
  • Порт — UDP-порт, по умолчанию 7777.
  • Пара каналов — какие два канала устройства уходят в поток.
  • КодекRTP PCM (без сжатия, 16 или 24 бит) или RTP Opus (сжатие, битрейт 64–320 кбит/с).
  • Sample Rate — 44100 или 48000 Гц.

Управление — автозапуск потока при старте приложения, дистанционное управление по MQTT (команды start, stop, restart) и OSC. Поток, упавший по ошибке, перезапускается автоматически; приложение сворачивается в трей.

Кнопка Тест отправляет в поток синус 200 Гц в левый или правый канал — удобно проверить, что приёмник настроен верно.

Настройка приёмника moduleBox

Параметры потока и модуля-приёмника должны совпадать:

AntiDantemoduleBoxЗначение по умолчанию
Кодек RTP PCMmode = audioLAN
Кодек RTP Opusmode = opusLAN
Multicast IPmulticastAddress239.0.7.0
Портport7777
Sample RatesampleRate48000
Бит/семпл (PCM)bitsPerSample (audioLAN)16

С настройками по умолчанию с обеих сторон достаточно выбрать в приложении кодек и нажать «Все» — контроллер начнёт играть. Для нескольких независимых потоков задайте каждому свой multicast-адрес (239.0.7.1, 239.0.7.2, …) и укажите его в multicastAddress нужного контроллера; переключать источник на лету можно командой audioStream_0/action/setMulticastAddress.

[SLOT_0]
mode = audioLAN
options = multicastAddress:239.0.7.1, volume:90

Замечания

  • Multicast должен пропускаться сетевым оборудованием: на управляемых коммутаторах проверьте IGMP snooping, Wi-Fi для multicast-звука не подходит.
  • PCM-поток без сжатия требует стабильной проводной сети (~1,5 Мбит/с на поток при 48 кГц/16 бит); при сомнениях используйте Opus.
  • Для синхронного звука на нескольких контроллерах с opusLAN задайте одинаковый latencyMs на всех приёмниках.