Вы запустили систему звукоусиления, ожидая отличного качества звука по Dante, но слышите заикания звука, щелчки и посторонние шумы? Что пошло не так? Давайте разбираться.
Вы построили вашу систему на Dante, поскольку знали или слышали, насколько хорош протокол: аудио без потерь, с минимальной задержкой и идеально синхронизацией между всеми устройствами. Но вот вы собрали систему, включили её, а вместо хорошего звука получили постоянные заикания и щелчки. В чём же может быть дело?
Ответ заключается в том, что скорее всего синхронизация работает неправильно и требует вмешательства. Давайте рассмотрим, как она реализована и как с лёгкостью решать возможные проблемы с ней.
Как работает синхронизация в Dante
Dante использует Precision Time Protocol или PTP. Это стандартный сетевой протокол, предназначенный для точной синхронизации времени между устройствами в сети.
Точное время, затрачиваемое на передачу пакета от одного устройства к другому, может варьироваться в зависимости от топологии сети. PTP решает эту проблему, опираясь на сигнал синхронизации ведущего устройства (Clock Leader) и затем вычисляя реальное время доставки пакета между устройствами, что позволяет всем устройствам работать синхронно. Dante-устройства генерируют собственный clock-сигнал на основании этих вычислений. И если происходит кратковременный сбой синхронизации устройства с PTP Clock Leader (напоминаем, это ведущее устройство), мы слышим щелчки и хлопки вместо потерянных отсчётов дискретизации в аудиопотоке.
А как же все устройства одновременно «видят» своего лидера? Ответ – с помощью многоадресной рассылки (multicast), которая позволяет PTP-лидеру отправлять сообщения синхронизации всем Dante-устройствам одновременно. Здесь и кроется наибольшая часть нашей проблемы.
Сбои в работе multicast
Любая помеха, препятствующая доставке multicast-сообщений в Dante-сети повлечёт за собой полный или частичный сбой синхронизации. Полный отказ приведёт к отключению звука, а частичный может вызвать слышимые щелчки и хлопки при потере части отсчётов дискретизации звука во время воспроизведения.
Неверная конфигурация коммутатора №1:
Не настроена работа multicast
Неправильная настройка обработки multicast-трафика в сетевом коммутаторе может стать причиной сбоев синхронизации Dante. Имейте в виду, что неуправляемые коммутаторы всегда пропускают весь multicast-трафик, а в управляемых есть настройки, которые могут блокировать или ограничивать передачу multicast. Обратитесь к документации от вашего коммутатора, чтобы выявить проблему.
Неверная конфигурация коммутатора №2:
Функция Energy Efficient Ethernet
Многие современные коммутаторы оснащены функцией энергосбережения, называемой Energy Efficient Ethernet. К сожалению, используемые в ней методы закрытия портов приводят к проблемам с устройствами, которые должны быть доступны постоянно, такие как ведущее устройство синхронизации PTP clock leader. Избегайте коммутаторов с этой функцией или отключите её, если это возможно.
Неверная конфигурация коммутатора №3:
Некорректная настройка IGMP Snooping
Многие управляемые коммутаторы содержат важную функцию под названием IGMP, или Internet Group Management Protocol. Она позволяет администратору управлять многоадресным трафиком так, чтобы он отправлялся только на те устройства, которые его запрашивают. К сожалению, на некоторых коммутаторах настройка IGMP может оказаться довольно сложной и привести к потере трафика PTP. Обратитесь к производителю коммутатора за советом по правильной настройке IGMP.
Неверная конфигурация коммутатора №4:
Коммутаторы разных брендов с включенным IGMP Snooping в одной системе
Хоть IGMP – это стандартный протокол, его имплементация может варьироваться у разных производителей сетевого оборудования. Использование коммутаторов разных производителей в одной системе с IGMP может привести к неожиданным результатам, поскольку они могут «не договориться» между собой о том, как управлять IGMP трафиком. И вновь результат – потеря синхронизации PTP и, как следствие, щелчки в звуке. Большинство экспертов по сетям порекомендуют вам использовать коммутаторы от одного поставщика, чтобы избежать такой проблемы.
Несовпадение версий IGMP (компьютеры Apple)
Сетевые стандарты, увы, не всегда стандартны. Инженеры Apple интерпретируют их так, чтобы различать вариации версий IGMP между собой, в то время как другие производители этого не делают. В результате при использовании программного обеспечения Dante на Mac может пропасть многоадресный трафик, что приведет к сбою PTP и исчезновению звука.
К счастью, эта проблема касается только встроенных портов Ethernet на компьютерах Apple Mac. Использование любого внешнего Ethernet-адаптера (USB или Thunderbolt) устраняет эту проблему и позволяет PTP работать как положено при использовании таких программных продуктов, как Dante Virtual Soundcard.
Конфликт с синхронизацией консоли
Существует одна причина сбоя синхронизации, не связанная с multicast. Это неправильная настройка внутренней синхронизации в таких продуктах, как микшерные консоли или DSP.
Если вы используете Dante на консоли одновременно с другими технологиями передачи цифрового аудио, например MADI, вам потребуется один общий тактовый генератор, по которому смогут синхронизироваться все. У вас есть выбор: либо использовать внутренний генератор консоли для синхронизации всей системы, либо наоборот, синхронизировать всё по Dante.
Консоли с Dante можно настроить так, чтобы они использовали синхронизацию с Dante-платы вместо собственного внутреннего генератора. И наоборот, в Dante Controller вы можете выбрать тактовый генератор консоли в качестве эталонного для всей Dante-сети. Если настройки в консоли и Dante Controller совпадают, система будет работать нормально, а если различаются, система может вести себя крайне нестабильно.
Пример: микшер настроен на синхронизацию по внутреннему генератору, а Dante-плата – на синхронизацию по PTP. Сигналы обоих генераторов могут быть очень похожими, но они не одинаковы. В результате звук будет прерываться, т.к. сигналы синхронизации «дрейфуют» друг относительно друга.
Решение, к счастью, простое. В настройках микшера выберите источник синхронизации clock source (Dante или internal), в Dante Controller установите для консоли параметр Sync To External в соответствии с её настройками: включите, чтобы использовать внутренний генератор консоли для синхронизации Dante, или отключите, чтобы синхронизировать консоль по Dante.
На этом всё. Наслаждайтесь звуком без надоедливых посторонних шумов!