INTERACT FORUM
More => Old Versions => JRiver Media Center 21 for Windows => Topic started by: keylimesoda on January 20, 2016, 04:24:28 am
-
I'm running 2 convolution paths at 8192 taps each. DSP engine shows anywhere between 5x to 15x real-time performance using SSE, JRiver CPU usage is ~5% (system ~30% total).
When piping in music through the WDM, I'm getting ~10 pops/clicks per minute. The issue also pops up when playing directly in JRiver, but less frequently.
From a little bit of system observation, it appears to be happening when my CPU quickly scales down its frequency to save power when system utilization is low. The CPU is constantly changing speed between 900MHz and 2.3GHz depending on system utilization. Even at 900MHz, the total CPU usage isn't peaking above 50%
System is a Surface 3 (not pro), running the x7-Z8700 CPU.
-
Sounds like the obvious solution is to disable cpu frequency scaling if that causes it. WDM requires realtime performance at all times, any tiny blip in performance will be audible.
-
I'm running 2 convolution paths at 8192 taps each. DSP engine shows anywhere between 5x to 15x real-time performance using SSE, JRiver CPU usage is ~5% (system ~30% total).
I'm not surprised you're getting dropouts with 5x real-time convolution filtering. My advice is to set your power management settings and/or filter length to ensure that the convolution processing never dips below 10x real-time, that seems to be the "safe threshold" in my own experience. You can also use slightly shorter filters to improve performance.
Your machine may be on the cusp in terms of adequate power for convolution, so you'd do well to follow Hendrik's advice and set a minimum processor state that's adequate for your use case. If the Surface 3 is like my Surface Pro 4, Microsoft has cleverly hidden the processor power scaling options in the power profiles, so you may need to edit the registry to expose them.
With regard to the WDM, you might want to play with the buffers as well.
-
Does the jriver convolver use partitions to take advantage of multicore processors and reduce latency?
(Example here: http://www.ericbattenberg.com/school/partconvDAFx2011.pdf)
-
Does the jriver convolver use partitions to take advantage of multicore processors and reduce latency?
no, as far as we can tell anyway. You might find http://yabb.jriver.com/interact/index.php?topic=95806.0 useful
-
Yep. Sounds like a good ask to implement partitioning in the convolving engine. Especially since there's a lot of great, low-cost ($90), efficient (<2W), quad-core Atom systems coming on to the market that would be perfect for a small active crossover device.
-
Possibly, it could still be multithreaded today though given that you invariably have multiple channels in play. The latency reduction case is arguably less important as jriver sorts out the sync anyway and external video feeds only ever get harder due to DRM.