INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: ASIO Live Latency. Interfaces/Buffers/Convolvers  (Read 2880 times)

joove

  • Recent member
  • *
  • Posts: 9
ASIO Live Latency. Interfaces/Buffers/Convolvers
« on: June 11, 2018, 02:40:13 am »

Dear JRiver users

  I need some help understanding and optimizing the latency in my JRiver ASIO live setup. It has been working ok so far with 1024 tap acourate filters. I do not rip blurays (yet) but watch BD/roku/netflix via my regular AV Receiver with pre-outs getting into the ASIO Live in: ASIO live performance is something I am very keen on. With my HTPC upgrade to Windows 10, JRiver to 24 I am also looking to see if I can add two subs. To correct subs I need to increase the Acourate filter size to 2048 or 4096 so I can expect reasonable number of bins below 100Hz (with 1024 taps I have roughly 20kHz/1024 = ~20Hz bin size but if I get it to 4096, I get 5Hz bin sizes). To have any hope of increasing the number of taps, I need to reduce the latency in the system (other than that introduced by the FIR filter itself).

The current chain (ASIO: Steinberg Multi Client ASIO driver > Yamaha Steinberg UR824 USB)

  BD/Roku/Chromcast into Onkyo     > Steinberg MC > JRiver ASIO Live
  JRiver ASIO Live > Convolution/XO > Steinberg MC > Outlaw > Speakers

From forum searches,  this is what I gathered.

The hardware buffer size (often a small value like 2048 blocks) is independent of the Media Center buffer size you select for ASIO.  Technically ASIO looks like:

Secondary buffer (configured with the Prebuffering setting) > Primary buffer (configured in the ASIO output setting) > Hardware buffer (configured in soundcard's control panel, or automatically by Media Center if selected)

If you select 'Use large hardware buffers' in Media Center's ASIO configuration, we will automatically set the hardware buffer sizes to a large value.  I would recommend leaving this checked.

As for the primary buffer size, just use something large enough to not skip.  0.2 or 0.1 seconds is sufficient on a modern computer.  There isn't a sound quality difference between buffer sizes (unless you get skipping due to data shortfalls).
https://yabb.jriver.com/interact/index.php/topic,65900.msg441973.html#msg441973

Since I use the Steinberg Multi Client Driver, It is likely that the Use Large Hardware Buffers is ignored and the driver's asio buffer size is in use. One buffer setup which allows me glitch free playback is as follows.
  • JRiver ASIO Output Settings Buffer: 25ms
  • UR824 Buffers: 512 [per driver: 16ms input + 18ms output = 34ms RTL]
  • 1024 Tap filter: 12ms [512/44100]
which results in a total of 71ms (if I can accumulate these delays). I find it hard to believe that my Samsung Plasma has this much video delay so I might be  reading this wrong.

I am hoping to find information that will allow me to reduce the driver/jriver latency and deal mostly with the FIR filter induced delays. Per https://www.gearslutz.com/board/music-computers/618474-audio-interface-low-latency-performance-data-base.html, the Steinberg (they list the predecessor) is not bad. So my guess is that my JRiver instance is not able to feed the driver as needed with small buffers, but no idea if the UR824 is at fault here or there is some other factor at play.

MC24 (unlike MC19 which I was running before) needs me to turn legacy Direct 3D rendering on (Core i5 4590S, Intel HD4600). Without this, theater view audio playback is super glitchy. So I am fairly certain that stuffing the audio buffers correctly is a challenge when the app is also doing thumbnailing, rendering and what ever else. However, even without theater mode, the overall latency cannot be reduced. I am contemplating upgrading the soundcard or adding a second convolver (Acourate Convolver with no GUI, media, db etc to manage) but both are expensive choices so I want to see if they make sense.

  • What is the lowest latency you are able to achieve with JRiver Line In (on any audio interface)
  • Is there a recommended way of setting JRIver process priority to help with scheduling ?
  • Would moving to a RME HDSPe type card with reportedly stable buffer sizes of 32 help or will JRIver just not be able to deal with it ?
  • Finally, would it make sense to move ASIO Line In functionality to a separate convolver like Acourate Convolver. Is there any experience with AC being able to run RME cards or similar with 32 sample buffers (I will also ask on the Acourate mailing list) ?
  • I can, as a last resort, use Acourate's minphase filters (or JRIver's IIR filters) and lose time alignment. Yet to test this and see how it sounds

Any help will be much appreciated.
Logged

joove

  • Recent member
  • *
  • Posts: 9
Re: ASIO Live Latency. Interfaces/Buffers/Convolvers
« Reply #1 on: June 11, 2018, 02:43:23 am »

The HTPC JRMark. I am also running standard configuration (high performance plans, no cpu power savings etc)
  - Core i5 4590S (needed low power to dissipate via a Stream FC10 chasis)

=== Running Benchmarks (please do not interrupt) ===

Running 'Math' benchmark...
    Single-threaded integer math... 4.921 seconds
    Single-threaded floating point math... 3.021 seconds
    Multi-threaded integer math... 2.484 seconds
    Multi-threaded mixed math... 1.697 seconds
Score: 1567

Running 'Image' benchmark...
    Image creation / destruction... 1.018 seconds
    Flood filling... 0.574 seconds
    Direct copying... 0.819 seconds
    Small renders... 1.377 seconds
    Bilinear rendering... 1.002 seconds
    Bicubic rendering... 0.558 seconds
Score: 4114

Running 'Database' benchmark...
    Create database... 0.210 seconds
    Populate database... 1.289 seconds
    Save database... 0.379 seconds
    Reload database... 0.085 seconds
    Search database... 1.203 seconds
    Sort database... 1.134 seconds
    Group database... 0.669 seconds
Score: 4327

JRMark (version 24.0.27): 3336
Logged

Manfred

  • Citizen of the Universe
  • *****
  • Posts: 1023
Re: ASIO Live Latency. Interfaces/Buffers/Convolvers
« Reply #2 on: June 11, 2018, 03:32:05 am »

Quote
Is there a recommended way of setting JRiver process priority to help with scheduling ?

I use Fidelizer Pro to do that - I would say it gives you <10 ms enhancements over the default. I would say I have perfect Lipsync but my environment is much simpler than yours (only stereo Server->Renderer->TV(Video) |Devialet (Audio)).
Logged
WS (AMD Ryzen 7 5700G, 32 GB DDR4-3200, 2x2 TB SDD, LG 34UC98-W)-USB|ADI-2 DAC FS|Canton AM5 - File Server (i3-3.9 GHz, 16GB ECC DDR4-2400, 46 TB disk space) - Media Renderer (i3-3.8 GHz, 8GB DDR4-2133, GTX 960)-USB|Devialet D220 Pro|Audeze LCD 2|B&W 804S|LG 4K OLED )

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3961
Re: ASIO Live Latency. Interfaces/Buffers/Convolvers
« Reply #3 on: June 11, 2018, 03:46:41 am »

IMO even 5Hz frequency resolution is much too coarse for effective subwoofer correction, better to use IIR for the subs and leave FIR for the higher frequencies.

https://yabb.jriver.com/interact/index.php/topic,116259.msg803710.html#msg803710 suggests a tool that one can use to try to drill into sources of latency spikes in your system, I don't think there is much generic advice here other than systematically tweaking your system and measuring the results.
Logged

joove

  • Recent member
  • *
  • Posts: 9
Re: ASIO Live Latency. Interfaces/Buffers/Convolvers
« Reply #4 on: June 11, 2018, 11:45:14 am »

Thanks for chiming in Matt and Manfred. Useful data.

If my theoretical max of 4096 taps is not useful for bass correction, then yes, I might as well avoid spending cash on RME cards or Acourate convolver and put it towards the subs instead.
Logged

joove

  • Recent member
  • *
  • Posts: 9
Re: ASIO Live Latency. Interfaces/Buffers/Convolvers
« Reply #5 on: June 11, 2018, 11:48:18 am »

IMO even 5Hz frequency resolution is much too coarse for effective subwoofer correction, better to use IIR for the subs and leave FIR for the higher frequencies.

Matt: How are you combining IIR and FIRs ? Use JRiver's DSP for the IIR and high-pass the signal to the convolver for the FIR to use ?

https://yabb.jriver.com/interact/index.php/topic,116259.msg803710.html#msg803710 suggests a tool that one can use to try to drill into sources of latency spikes in your system, I don't think there is much generic advice here other than systematically tweaking your system and measuring the results.

Thanks for taking to effort to locate the link for me. I'll use the mentioned windows toolkit and see whats going on. I have the Flirc USB (to be replaced with the Flirc Strecom device) and yet another Remote USB: definite suspects.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3961
Re: ASIO Live Latency. Interfaces/Buffers/Convolvers
« Reply #6 on: June 11, 2018, 12:07:25 pm »

Matt: How are you combining IIR and FIRs ? Use JRiver's DSP for the IIR and high-pass the signal to the convolver for the FIR to use ?
yes that's the easiest way to combine them. 
Logged

joove

  • Recent member
  • *
  • Posts: 9
Re: ASIO Live Latency. Interfaces/Buffers/Convolvers
« Reply #7 on: June 15, 2018, 12:56:58 pm »

Self reply to follow up.

I had contacted Uli (Acourate creater) about using Acourate Convolver for this purpose and I summarize the options he provided.

In any case, I think the key is that the limited filter length improvement headroom doesn't help much in bass correction so might as well check if I am deaf to the phase misalignments (I think I am since the initial IIR prototypes in JRiver sounded quite fine to me). I also have a used RME HDS9652 PCI on order and see if using the RME hardware and multi-client driver helps keeps things stable.

I have also realized that ripping blu-rays is quite simple and fast and can continue to enjoy blu rays within JRiver and the 64k tap FIR filters.

thanks for all the help.
Logged
Pages: [1]   Go Up