The Elf wrote:I've been moved to raise this on the Steinberg forums. This one device limit has been set in stone for so long that I think we don't even question it any more.
It's not like it's set in stone. It's just a different concept.
It'd be perfectly possible to take make an ASIO driver that takes data from two sources - including two others ASIO drivers... that's what "aggregation" does in the mac world, I gather.
The issue is latency. An ASIO buffer (and the same is for mac with another name) is simply a memory area which is filled by the interface and read from the DAW for recording or vice versa for playback.
With two buffers, at any given time they will present a specific sequence of samples to record or playback. How you do combine then?
You have to mix them.
There's two drawbacks to this: one, mixing takes time: you've gotta take the first sample stream and the second and calculate the sum and then copy the result to a third buffer. The result is latency.
Then, there's a few ways to actually mix the samples in terms of calculations and assumptions. It's rare that two interface will be time synchronized, so you have no time reference to say that two samples in the same relative position in the two buffers actually were sampled at the same time. You can do it in a few ways and the result will be sonically different. The result is errors.
Sometimes all that is irrelevant. Sometimes it isn't. But ASIO is meant to be a cable - not a mixer. It keeps complexity (and latency) down, and predictability high. Windows introduced the mixer exactly to solve some of these issues. But it slows down things. It's my understanding that aggregated devices are great for playback (and I suspect that devices can share a timing bus on mac) but for recording you incur latency - there's no other way to do it.
If you wrote a multi-buffer ASIO you end up pretty much replicating what the Windows mixer does, and you'd still need clocking across the two or three interfaces, so you can just as well use that. Much easier and cheaper to have a single multichannel interface.