6 ms·
I once purchased a FireWire multi-channel audio interface with the express intent of reverse engineering the protocol in order to add Linux support. I purchased
by pdmccormick 3y ago
I once purchased a FireWire multi-channel audio interface with the express intent of reverse engineering the protocol in order to add Linux support. I purchased a specialized PCI card that was intentionally non-standard (not OHCI 1394) but could snoop and capture traffic between a device and a host. I chipped away at deciphering a register map for awhile, but eventually better USB audio devices came along that had more driver support.
Still trying to do the same sort of thing though with some audio related USB and Ethernet/IP devices so I guess I never really gave up the idea in my heart!
- dylan604 3y agoyou are a glutton for punishment. a hacker after my own heart! i have so many unfinished things where i just knew something could be figured out, only to not succeed. but it sure is fun trying on top of learning new things as well.
- NewJazz 3y agoDo the USB devices have comparable round trip latency? That is where USB really hurts and where the Thunderbolt audio interfaces seem to fond their niche today. I'm looking forward to audio interfaces that can do USB4 wrapped PCIe, but for now I live with the latency on Linux.
- Blackthorn 3y agoRTL latency doesn't seem that bad on chips that are built for the purpose, like RME's. Just the off the shelf stuff might be less than ideal. If anything I think a problem is there's just overall too much slop in the whole chain, including the operating system, motherboard, whatever else. It's a little ridiculous that a $50 guitar pedal can easily get better RTL numbers than a $1500 computer system.
- CameronNemo 3y agoLinux has preempt_rt pretty conveniently accessible, and Pipewire has some useful tuning knobs, but my Steinberg UR44 can't seem to keep up.
- nyanpasu64 3y agoAre you already aware of the PipeWire batch flags which add additional latency to USB audio devices (dependent on ALSA period rather than quantum)? https://pipewire.pages.freedesktop.org/wireplumber/configuration/alsa.html#alsa-buffer-properties https://pipewire.pages.freedesktop.org/wireplumber/configura...
- CameronNemo 3y agoYes, I tried setting those lower but ended up with xruns and other issues. :(
- nyanpasu64 3y agoDid you decrease the USB ALSA period to the lowest practical value (eg. 128 or so)? In theory this provides finer-grained position updates and better stability at any given latency, but I'm not sure how it interacts with USB's polling rate.
- CameronNemo 3y agoYes, the latency increases, the audio quality worsens, and I see the following messages in Pipewire's logs: [W][30498.719355] spa.alsa | [ alsa-pcm.c: 2478 spa_alsa_read()] steinberg_ur44_mono_in:UR44,0,2: follower delay:4042 target:4832 thr:256, resync (374 missed)
- nyanpasu64 3y agoOuch that's unfortunate :(