如何使用USB音频设备的同步端点?


4

我想在多个USB音频设备上同步播放相同的声音。上一次我尝试类似的事情是在2001年左右,并取得了成功-那时我使用的那对Griffin iMics仍然可以使用这种方式,但是现在我想要更多的渠道。

我很难让它与最新的USB音频设备一起使用。我有一些带有C-Media芯片的设备,这些设备会产生很多爆裂声和爆裂声,并且相对于iMics而言不同步;另一个装有TI芯片的设备不会发出裂纹,但仍然会失调。

根据我对USB音频工作原理的理解,同步问题将与使用同步时钟的iMics和使用异步时钟的其他问题一致。

现在,当我lsusb -v看到时,我看到每个设备都暴露了多个端点,其中一些是同步的,一些是异步的,还有一些是自适应的。因此,我需要一些方法来指示音频驱动程序使用同步端点。那就是我被困住的地方。

  • 我如何知道正在使用哪些端点?lsof报告a /dev/snd/pcmXXXXX正在使用中,但是我不确定这是否与任何特定端点相对应。我可以在中看到有关端点的信息,/sys/bus/usb但是我不知道如何知道任何端点处于活动状态。
  • 如何通过配置ALSA或其他库来更改使用哪个端点?我尝试查看ALSA的来源,但没有找到任何有关它如何选择要使用的端点的部分。

Answers:


4

USB规范为同步端点定义了三种同步模式:同步,异步和自适应。

没有人使用同步。对于回放端点,“适应性”表示设备以PC决定发送数据的速度准确运行。异步意味着设备告诉PC应该以多快的速度发送数据(这是通过另一个方向的第二个端点完成的)。

异步设备通常具有三个同步端点:一个用于回放样本的异步输出端点,一个用于回放频率反馈数据的输入端点和一个用于捕获样本的异步输入端点。它还可能具有用于混音器控制,MIDI和特定于供应商的东西的中断和批量端点。

如果可能,USB音频驱动程序更喜欢自适应端点,而不是异步端点。(但是我不知道当前有哪个设备实际上具有相同输出的不同端点类型; C-Media CM66xx芯片当然没有。)

因此,如果要以相同的速度运行多个设备,则软件配置不会影响任何事情。您必须使用已知支持自适应模式的设备。


谢谢,这更有意义。经过仔细检查,iMic定义了自适应输出和异步输入,我不知道哪个进出。但是,令我惊讶的是,自适应的iMic和TI芯片会彼此不同步。
2014年

他们连接到同一辆公共汽车吗?
CL。

是的,两者都通过同一个集线器。
2014年

您说“没有人使用同步”,但是我在Shure,Apogee,Logitech,Blue,Fender,MXL和Turtle Beach的设备中看到了同步USB音频。实际上,Apple的iPod制造指南建议使用它,特别是对于仅输入或仅输出设备。
Endlith '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.