|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: ASIO DRIVER current status ? [message #109279 is a reply to message #107792] |
Wed, 07 December 2016 10:23 |
mikeaudet
Messages: 477 Registered: February 2009 Location: Canada
|
Senior Member |
|
|
Hi all,
I'm sorry that this has taken longer than I expected.
Some beta testing uncovered a bug in the 24 bit mode at 64 samples that I hadn't seen on my system. I've moved where the IRQ is fired in the main loop that runs on the EDS cards, and made some other adjustments to accommodate that. The change gives more time for the buffer switch to complete. I've added a 32 bit transfer mode, too.
I also fixed a bug relating to the IF2.
If the testing comes back good, its done.
Before I release this, I'd like to revisit a post that I made a while back. A latency testing utility was reporting less than 64 samples latency with the driver. That utility wasn't accurate, unfortunately.
Harrison Mixbus reports about 600 samples of latency at 64 samples, 32 bit transfers. That's just over 13 ms. There appears to be a fair bit of additional buffering inside the EDS1000 card and the MEC.
Ultra low latency will still require the PARIS application, but I've found playing electric guitar through the ASIO driver at 64 samples to feel fine.
I hope this doesn't pose a problem for anyone.
All the best,
Mike
|
|
|
|
Re: ASIO DRIVER current status ? [message #109281 is a reply to message #109280] |
Sat, 10 December 2016 18:13 |
mikeaudet
Messages: 477 Registered: February 2009 Location: Canada
|
Senior Member |
|
|
I'm only testing with the Harrison Mixbus latency tool.
I find it kind of strange, though. I'm patching the audio streams in the exact same way that the PARIS application does, except I'm bypassing the mixer. I should be getting less latency, not more.
I found a bug on the inputs side that was adding an extra buffer of latency (don't ask). The latest figures from Harrison Mixbus at 64 samples, 32 bit are:
S/PDIF on MEC: 478 samples- 10.839ms
Main In/Out: 535 samples - 12.132ms
I just discovered this morning a bug that affected non-master cards. It turns out that the main voice engine loops weren't synchronized between cards. They were close, but not quite the same. I spent so much time getting the main ASIO loop synchronized with the main loop in the EDS card, but I was only in sync with the first one. I just changed the EDS voice engine to synch them. So far, it's testing good.
This has definitely been a challenge.
All the best,
Mike
[Updated on: Sat, 10 December 2016 18:14] Report message to a moderator
|
|
|
|
Re: ASIO DRIVER current status ? [message #109283 is a reply to message #109282] |
Sun, 11 December 2016 15:05 |
mikeaudet
Messages: 477 Registered: February 2009 Location: Canada
|
Senior Member |
|
|
Hi James,
Thanks for your kind words. I've been thinking about it all day.
This isn't Edmund's work. I think this was done by guys at Ensoniq.
Here is a comment from patchdef.e2, part of the ESP2 code that runs on the cards:
// The Sharemem in Scherzo is at 200000. The Patchbay is the first thing in memory.
// In consists of small buffers (patchpoints) that revolve in the ESP2 modulo fashion,
// around the whole patchbay. The voices need larger buffers, for buffering to and from
// the PCI bus. These buffers have to be big enough to "amortize" the variation in
// fill time due to 1. PCI latencies 2. frame and stream boundary processing.
/* A Playback patchpoint/buffer has 3 regions:
A 64 word patchpoint "delay" area
the 128 wordfetch-ahead buffer.
A 64 word overflow area.
A Record patchpoint/buffer has no delay region.
A DSP writes to the patchpoint at the base of the buffer.
The next 128 words are the buffer.
So, it looks like there is some significant buffering in the EDS cards for disk based voices that isn't there for live inputs that go through the mixer. It may need to be there because of the PCI bus.
The patch bay is the big area of memory that is used by everything. If I change it, all the code that runs on all 6 ESP chips is affected, and potentially broken.
Down the road, if there is interest in this, we can look at incorporating the PARIS mixer for direct monitoring and effects. As it is, the latency is still very low, and we can always track in the PARIS app and mix using ASIO. It's just not the 3 - 6 ms I know I was hoping for.
All the best,
Mike
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|