4

Я хочу синхронизировать один и тот же звук через несколько аудиоустройств USB. В прошлый раз я попробовал что-то подобное примерно в 2001 году, и это было успешно - и пара Griffin iMics, которую я использовал тогда, все еще работает в этом использовании, но сейчас я хочу больше каналов.

У меня возникли проблемы при настройке этого устройства на более поздние устройства USB Audio. У меня есть несколько устройств с чипами C-Media, которые создают много потрескиваний и трещин в синхронизации по сравнению с iMics; другое устройство с чипом TI не трескается, но все еще не синхронизировано.

В соответствии с моим пониманием того, как работает звук USB, проблемы с синхронизацией будут соответствовать iMics, использующим синхронное тактирование, и другим, использующим асинхронные часы.

Теперь, когда я делаю lsusb -v я вижу, что каждое из моих устройств предоставляет несколько конечных точек, некоторые Синхронные, некоторые Асинхронные и некоторые Адаптивные. Поэтому мне нужен какой-то способ проинструктировать звуковой драйвер для использования синхронной конечной точки. Вот где я застрял.

  • Как я могу узнать, какие конечные точки используются? lsof сообщает, что /dev/snd/pcmXXXXX используется, но я не уверен, соответствует ли это какой-либо конкретной конечной точке. Я могу видеть информацию о конечных точках в /sys/bus/usb но я не знаю, как узнать, какие из конечных точек активны.
  • Как я могу изменить используемую конечную точку, настроив ALSA или другую библиотеку? Я попытался просмотреть источники ALSA, но не нашел ни одной части, которая рассказывала бы, как она выбирает конечную точку для использования.

1 ответ1

4

Спецификация USB определяет три режима синхронизации для изохронных конечных точек: синхронный, асинхронный и адаптивный.

Никто не использует синхронный. Для конечных точек воспроизведения адаптивный означает, что устройство работает с той скоростью, с которой ПК решает отправить данные; асинхронный означает, что устройство сообщает ПК, как быстро оно должно отправлять данные (это делается через вторую конечную точку в другом направлении).

Асинхронное устройство обычно имеет три изохронные конечные точки: одну конечную точку асинхронного вывода для выборок воспроизведения, одну конечную точку ввода для данных обратной связи по частоте воспроизведения и одну конечную точку асинхронного ввода для выборок захвата. Он также может иметь конечные точки прерывания и объемной обработки для управления микшером, MIDI и для конкретных поставщиков.

Аудио драйвер USB предпочитает адаптивную конечную точку асинхронной конечной точке, если это возможно. (Но я не знаю ни одного текущего устройства, которое бы на самом деле имело разные типы конечных точек для одного и того же выхода; чипы C-Media CM66xx, конечно, этого не делают.)

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .