HACKER Q&A
📣 dusted

Does this USB audio device exist?


I have two computers, one has speakers attached. I want a low-latency, lossless way of transferring audio from the computer without speakers, to the computer with the speakers.

Ideally, a device which plugs into usb in computer 1 and presents itself as a USB audio class 2 sink.

And plugs into usb in computer 2 and presents itself as a USB audio class 2 source.

Kind of the digital version of "putting a line cable from line-out of pc 1 through an isolation transformer into the line-in in pc 2". But without needless conversion from digital to analog and back.

I've been looking at chips that implement usb audio class and provide i2c or i2c communications, but it seems like such a trivial device that I assume it's simply my google-fu that fails me.


  👤 its-summertime Accepted Answer ✓
networking not an option?

👤 eimrine
Low-latency and USB are incompatible things. When I have a network device connected via USB it is typical to have 1000+ ms pings as a worst case.

> But without needless conversion from digital to analog and back.

AFAIK if you are working with some signal after sound player it is going to be analog. Possible solution lies in implementing a custom sound driver for a tx device and probably a custom microphone driver for a rx device.

Another possible solution is to get an HDMI input card for rx device, probably the HDMI interface will require having some video stream also instead of just sound.


👤 Rochus
You could use two cheep USB audio interfaces and plug the audio together.

Or if you want to remain in the digital domain use S/PDIF, such as e.g. https://www.amazon.com/Decoder-PCM2704-Module-Analog-Coaxial...

Or use a network audio protocol such as https://en.wikipedia.org/wiki/Livewire_(networking)


👤 atmanactive
I needed pro-audio grade connection like that, and after many experiments with many devices I settled for RME HDSPE AIO devices on PCIexpress of both PCs. My requirements were: low latency, flawless ASIO, bi-directional, many digital and analog inputs and outputs, and 192kHz sampling rate capability. What I unexpectedly gained as a bonus is a SMUX sample rate converter, meaning, one PC can be set at 48kHz, while the other is at 192kHz and they still work flawlessly.

If you need one way only, then, a cheap USB device based on XMOS chip can be your output, while a not-so-cheap RME Digiface USB can be on the input side.

I found out that USB digital optical or S/PDIF output device is easy to find, and can be cheap, while USB digital optical or S/PDIF input devices are rare and not so cheap at all.

If you would like me to explain some more, please feel free to ask.


👤 fragmede
[delayed]

👤 duped
Have you considered using something like this: https://github.com/bondagit/aes67-linux-daemon

👤 b20000
you can just stream the audio over your network, there is software for that that can do it low latency

👤 ActorNightly
The audio and usb is pretty irrelevant.

You need something like this:

Computer1 + Special software -> high speed data transfer -> Computer 2 + special software -> Audio out.

Im pretty sure you can do this with ethernet switch/router just network streaming. There is probably a way to setup VLC to just playback network stream music on computer 2, and then set up OBS on computer 1 do the stream.