Achieving low latency audio

Hi,

I’m trying to create an audio core TOE, wich is basically a custom audio mixing console core with no inteface, controlled trough OSC or TouchIN.

The hardware interface I use is the Yamaha Dante Accelerator card, with the ASIO driver.

The big deal is lowering the IN/OUT latency to use the console in a live situation. When lowering the audio input/output buffer size below something like 0.1s, I get dropouts and clics.

After lots of tryout and errors, this is the best I could achieve: 0.002s audio in CHOP buffer, 0.004s audio out CHOP buffer. This only works in perform mode with no window drawing, if I go back into designer, no sound. Also, I have to set FPS to 48000, to match the audio samplerate.

With this setting, the project in designer is quite unstable…

Is there something else I can do or another way around ?

Also, the ASIO driver can provide 128ch in/out but seems limited to 64 in TD. Is it normal ?

Thanks !

Hello.
The next posted builds (2017.13860+ and experimental) will now support 128 channels in/out.

Setting the FPS to 48000 won’t have any benefit, as the update rate is tied to the vertical sync of your monitor. (ie 60hz or so). However, this can be avoided by turning off VSync in your graphics card driver options.

Even so, you won’t get 48000 fps, so you should try with 480 or even 240 to start.
You’ll also want to verify its not dropping frames at these higher rates, which you can monitor with a Perform CHOP.

To confirm, you’ve disabled drawing of the Perform Monitor window? (not just given it a blank space to draw). This can be done in the Window Placement dialog.

Finally, have you tried a bare minimum network (Audio In and Audio Out CHOPs) to see what type of frame rate you can achieve?

Hello,

Thanks for investigating, glad to hear next build will support 128ch !

I can confirm all the testings were done in perform mode with window draw and vsync off. If I let this ON or if I’m in network editor, I must go to something like 0.05 and 0.1 (in/out) to make it work…

I ve made a small network to automate this : if I’m in network editor , it set buffers to 0.05/0.1. if perform, 0.003/0.006.

As for FPS, past 4800, it doesnt make any difference.

As a reference, in Reaper(DAW), it is very stable with 1.3/1.3ms.

Am I missing something ?

Thanks !

I’d ask you to verify how many dropped frames you’ve had, but that might be a bit tricky to setup without Perform drawing.
You may be hitting the upper limits of what can be done without some changes to the current threaded audio queuing system unfortunately.