CPU utilization of 64ch DSP JRiver/Motu load test - AVS Forum | Home Theater Discussions And Reviews
Forum Jump: 
 1Likes
  • 1 Post By 3ll3d00d
 
Thread Tools
post #1 of 20 Old 10-23-2016, 07:19 PM - Thread Starter
AVS Forum Special Member
 
BassThatHz's Avatar
 
Join Date: Apr 2008
Location: Northern Okan range (NW Cascades region)
Posts: 7,224
Mentioned: 74 Post(s)
Tagged: 0 Thread(s)
Quoted: 2035 Post(s)
Liked: 1567
CPU utilization of 64ch DSP JRiver/Motu load test

Continuance of this: Behringer X32C 1RU and X32R 3RU: 96chx48in/out processor!

So I got two VM's going running 2 JRiver instances in 32ch mode and a zillion DSP effects, with dual 32channel virtual audio drivers running, and with 192khz upsampling it was <25% cpu on a 4C/8T 3.7ghz i7 and 1.2GB of ram.

I did not notice any lag.

If I drop to 48khz mode it drops to <10%, and if I drop to 32channels it drops to <5% and 0.6 GB of ram without vm.


I would imagine that with motu drivers the CPU would be a fair bit less because it ain't virtual and the 64 copy-buffers aren't needed, and no resampling is needed.

Now I'm gonna try JRiver's real-time I/O mode and see if that slows it down to unacceptable levels. That will be the mode I'll actually be running if I go down this path...
Attached Thumbnails
Click image for larger version

Name:	54678.jpg
Views:	525
Size:	274.0 KB
ID:	1731217   Click image for larger version

Name:	6758.jpg
Views:	506
Size:	226.7 KB
ID:	1731233  

Last edited by BassThatHz; 10-29-2016 at 02:53 PM.
BassThatHz is online now  
Sponsored Links
Advertisement
 
post #2 of 20 Old 10-24-2016, 02:35 AM
AVS Forum Special Member
 
3ll3d00d's Avatar
 
Join Date: Sep 2007
Location: London, UK
Posts: 2,753
Mentioned: 97 Post(s)
Tagged: 0 Thread(s)
Quoted: 1566 Post(s)
Liked: 544
Are you actually verifying the output is perfect or just measuring cup utilisation?

You can have low CPU utilisation and still get glitches in the output which requires increased buffer sizes, and hence additional latency, to eliminate.
3ll3d00d is offline  
post #3 of 20 Old 10-24-2016, 10:18 AM
Senior Member
 
Join Date: Dec 2011
Location: Spokane, Wa
Posts: 264
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
Quoted: 93 Post(s)
Liked: 30
Anymore the cpu is normally not the bottleneck for just about anything audio. Even multichannel recording thrown in.
The glitches seem to be with interfaces talking to each other and poor quality drivers adding delay.

Syncing each device should not be hard these days, but can still be a pain.
cellarnoise is offline  
 
post #4 of 20 Old 10-26-2016, 07:30 PM - Thread Starter
AVS Forum Special Member
 
BassThatHz's Avatar
 
Join Date: Apr 2008
Location: Northern Okan range (NW Cascades region)
Posts: 7,224
Mentioned: 74 Post(s)
Tagged: 0 Thread(s)
Quoted: 2035 Post(s)
Liked: 1567
I was not able to get JRiver to accept more than 2 channels of input via ASIO. Which scares the hell out of me...
I was using JackRouter as the virtual audio driver.

I spent like 8 hours trying to make Jack work with JRiver or Foobar, or both, but no real success.
Not sure if I'm doing something wrong or if the software just sucks.

It pushes the 32 channels out per instance, but only 2 in. (Even with the output set to null.)

I haven't tried virtual audio cable yet.

In reality I only need about 16 inputs and dual 20 outputs. I won't be pushing dual 32x32.
Motu maxes out at 24x48 in 192khz mode, so dual 24x24 would be as high as I'd ever go with that hardware.

More testing is needed, especially before I fork over money.
BassThatHz is online now  
post #5 of 20 Old 10-27-2016, 12:03 AM
AVS Forum Special Member
 
3ll3d00d's Avatar
 
Join Date: Sep 2007
Location: London, UK
Posts: 2,753
Mentioned: 97 Post(s)
Tagged: 0 Thread(s)
Quoted: 1566 Post(s)
Liked: 544
Which version are you using? There was a change in an early 21 build to let it accept more than 2 channels of asio input but that was a long while ago now.

Why are you using jackrouter? The motu driver is a multi client one and it has a full featured router/mixer.

I suppose ultimately the question is why use jriver in this situation? I would think a Linux solution would be more reliable once you get it working.

Last edited by 3ll3d00d; 10-27-2016 at 02:44 AM.
3ll3d00d is offline  
post #6 of 20 Old 10-27-2016, 02:17 AM
AVS Forum Special Member
 
3ll3d00d's Avatar
 
Join Date: Sep 2007
Location: London, UK
Posts: 2,753
Mentioned: 97 Post(s)
Tagged: 0 Thread(s)
Quoted: 1566 Post(s)
Liked: 544
Quote:
Originally Posted by BassThatHz View Post
I was not able to get JRiver to accept more than 2 channels of input via ASIO. Which scares the hell out of me...
I was using JackRouter as the virtual audio driver.

I spent like 8 hours trying to make Jack work with JRiver or Foobar, or both, but no real success.
Not sure if I'm doing something wrong or if the software just sucks.

It pushes the 32 channels out per instance, but only 2 in. (Even with the output set to null.)

I haven't tried virtual audio cable yet.

In reality I only need about 16 inputs and dual 20 outputs. I won't be pushing dual 32x32.
Motu maxes out at 24x48 in 192khz mode, so dual 24x24 would be as high as I'd ever go with that hardware.

More testing is needed, especially before I fork over money.
I ran a quick test with my motu 1248, it is configured with 24 output channels and 24 input channels atm and I can open a 24 channel line in and send that to a 24 channel line out. If anything in that config is wrong (e.g. you have a set a channel offset on the output device, the output device is not configured to accept that many channels) then jriver will drop back to suggesting 2 channel output instead and will give no information/hints as to why. It simply attempts to open the asio device, gets a -1 return code and falls back to a safe option.
EarlK likes this.
3ll3d00d is offline  
post #7 of 20 Old 10-27-2016, 07:28 PM - Thread Starter
AVS Forum Special Member
 
BassThatHz's Avatar
 
Join Date: Apr 2008
Location: Northern Okan range (NW Cascades region)
Posts: 7,224
Mentioned: 74 Post(s)
Tagged: 0 Thread(s)
Quoted: 2035 Post(s)
Liked: 1567
version 22

I tried virtual audio cable, and virtual audio capture, and neither of those software worked with JRiver.

No offset is being used.

I'd imagine my problem is that the third-party virtual audio drivers suck and that the motu's drivers are properly coded. LOL

Quote:
Originally Posted by 3ll3d00d View Post
I ran a quick test with my motu 1248, it is configured with 24 output channels and 24 input channels atm and I can open a 24 channel line in and send that to a 24 channel line out. If anything in that config is wrong (e.g. you have a set a channel offset on the output device, the output device is not configured to accept that many channels) then jriver will drop back to suggesting 2 channel output instead and will give no information/hints as to why. It simply attempts to open the asio device, gets a -1 return code and falls back to a safe option.
That is great news. That is what I wanted someone to tell me, as I don't have the hardware yet...

Problem solved!
Now I just need to save enough money to start buying the devices.

As for linux, I thought Motu didn't have support for it?
BassThatHz is online now  
post #8 of 20 Old 10-27-2016, 10:57 PM
AVS Forum Special Member
 
Join Date: Jun 2015
Posts: 1,244
Mentioned: 19 Post(s)
Tagged: 0 Thread(s)
Quoted: 791 Post(s)
Liked: 231
Quote:
Originally Posted by BassThatHz View Post

As for linux, I thought Motu didn't have support for it?
If you are using the motu 24ai and ao I do believe they adcs and dacs can be used as adat expanders? ie you can hook them up to an adat card and use em that way.

Then you just need an adat card that works with linux. i use an rme digi 9652 that does 24 in / 24 out(3 adat banks) but its only 48khz -

64 base level speakers $10k
28 height speakers $10k,
14 subwoofers $10k
90% of the movie sound coming from the center channel - priceless.
1201 is online now  
post #9 of 20 Old 10-28-2016, 12:41 AM
AVS Forum Special Member
 
3ll3d00d's Avatar
 
Join Date: Sep 2007
Location: London, UK
Posts: 2,753
Mentioned: 97 Post(s)
Tagged: 0 Thread(s)
Quoted: 1566 Post(s)
Liked: 544
Quote:
Originally Posted by BassThatHz View Post
As for linux, I thought Motu didn't have support for it?
As far as I know it just works as a class 2 USB audio device so no explicit support is necessary
3ll3d00d is offline  
post #10 of 20 Old 10-28-2016, 01:01 AM
Member
 
awediophile's Avatar
 
Join Date: Oct 2013
Posts: 175
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
Quoted: 124 Post(s)
Liked: 48
I am doing realtime audio DSP with a Motu 16A running in Linux. It is connected via USB 2.0. I wouldn't say that the Linux support via USB 2.0 is flawless, but it works very well for my needs. Currently I matrix process 5.1 channels to 12 (soon to be 16) channels out. I have been running in realtime mostly 24/7 for about 6 months and haven't experienced an XRUN yet. However, see my notes below. The CPU is pretty lightly loaded at ~20% on one core, as I'm mostly using biquads and a handful of 6k FIR filters. I'll probably eventually get around to trying some larger FIR filters, which may bump up the demand a bit.

The biggest issue I'm aware of is that sample rate changes must be initiated on the Motu unit itself. I may be wrong, but I don't think you can configure the host to act as the master clock. I'm not sure this is a flaw of the Motu so much as a limitation of controlling is as though it were a soundcard via USB 2.0. The AVB-enabled devices are specifically designed to allow interconnection with low-latency realtime streaming, and connection via AVB (and possible Thunderbolt) may allow the PC host to change the sample rate if the PC host is also the clock master. With that said, if you are using the units for analog-to-analog processing, this is of no concern because you will probably just pick one sampling rate and use it for everything.

If you are comfortable with writing code and are familiar with JSON APIs, the A16 and related units appear to support full access/control via a JSON API. I have used it via scripts to automate changes to the routing matrix and am happy to say it works great so far.

As a warning, achieving reliable low-latency realtime processing can be very challenging on a PC. If you can tolerate a lot of processing latency, you might be OK. A clear advantage to JRiver, currently, is that it handles video as well as audio and so can delay the video if the audio pipeline has a lot of lag. For gaming, however, high audio processing latencies may be unacceptable. I made quite a few changes to my Linux OS configuration on the PC I use for processing. Among other things, I had to reorder my hardware interrupt priorities (can one even do this in Windows?), and alter the CPU governor in order to pass my fitness tests.

I was surprised to learn that you were trying to test this without the actual hardware. You really need to test with the actual hardware. I also strongly recommend against trying to do realtime processing in a VM in general. There are obscure VM hosts that are specifically designed to simulate realtime systems (albeit at much slower than realtime speeds), but this is a totally different thing from running a live realtime process within a guest on a typical desktop/server hypervisor. Also, depending on your latency needs and the amount and type of processing you use, there's a decent chance that a large chunk of or even the majority of your CPU time is spent on overhead rather than actual processing. Overhead rises rapidly as you decrease latency because you are processing everything in smaller chunks.

Good luck with this. If you get it working well, you'll have an enormously flexible (and inexpensive!) many-channels DSP solution. I've barely tapped the capabilities that I have, but I will get there soon.
awediophile is online now  
post #11 of 20 Old 10-28-2016, 07:55 PM - Thread Starter
AVS Forum Special Member
 
BassThatHz's Avatar
 
Join Date: Apr 2008
Location: Northern Okan range (NW Cascades region)
Posts: 7,224
Mentioned: 74 Post(s)
Tagged: 0 Thread(s)
Quoted: 2035 Post(s)
Liked: 1567
JSON is not a problem, that said, I don't think I'll be changing the config often doing A to A.

Interrupt priorities can be set like this in windows:
http://helpdeskgeek.com/windows-vist...ndows-vista-7/

You can also set process priorities with task manager. I'd recommend setting all audio-related stuff to real-time, and setting everything else to low.
BassThatHz is online now  
post #12 of 20 Old 10-29-2016, 02:41 PM - Thread Starter
AVS Forum Special Member
 
BassThatHz's Avatar
 
Join Date: Apr 2008
Location: Northern Okan range (NW Cascades region)
Posts: 7,224
Mentioned: 74 Post(s)
Tagged: 0 Thread(s)
Quoted: 2035 Post(s)
Liked: 1567
With my new job, I should be able to afford a Motu24AO by December.
It's gonna take me about a month to save for it.



Attached Thumbnails
Click image for larger version

Name:	1d7bv8.jpg
Views:	220
Size:	40.2 KB
ID:	1741841  
BassThatHz is online now  
post #13 of 20 Old 10-31-2016, 11:06 AM
AVS Forum Special Member
 
desertdome's Avatar
 
Join Date: Aug 2004
Location: Elkhorn, NE
Posts: 3,299
Mentioned: 178 Post(s)
Tagged: 0 Thread(s)
Quoted: 1122 Post(s)
Liked: 1226
Quote:
Originally Posted by awediophile View Post
The biggest issue I'm aware of is that sample rate changes must be initiated on the Motu unit itself. I may be wrong, but I don't think you can configure the host to act as the master clock.
On Windows at least, the sample rate of the MOTU is automatically changed by the software. There is about a 5 second delay. JRiver can be configured to play silence at startup for hardware synchronization so that one doesn't miss the start of a track.

High Impact AV
- ISF Level II Video Calibrator, THX-HAA Level III Audio Designer/Calibrator
- Colorimetry Research CR-250 Spectroradiometer & CR-100 Colorimeter, Klein K10-A
- Murideo Fresco SIX-G/SIX-A Generator/Analyzer (HDMI 2.x, HDR, UHD)
- ACO Pacific and Earthworks Class 1 microphones
desertdome is online now  
post #14 of 20 Old 11-01-2016, 01:30 AM
Member
 
awediophile's Avatar
 
Join Date: Oct 2013
Posts: 175
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
Quoted: 124 Post(s)
Liked: 48
Quote:
Originally Posted by desertdome View Post
On Windows at least, the sample rate of the MOTU is automatically changed by the software. There is about a 5 second delay. JRiver can be configured to play silence at startup for hardware synchronization so that one doesn't miss the start of a track.
I don't think that's any different from what happens when the sample rate is changed via the HTTP/web interface and presumably the JSON/HTTP interface. I believe the unit has to go through a fairly complex process to reset the clock and synchronize with any connected units.

That's weird though that the change happens while content is already playing. I would expect that when an application like JRiver tries to open the device with a particular sampling rate, that the Motu driver would block the application until the sample change was complete. With the USB Linux drivers, I believe a clock reset forces the device to close, requiring software to reopen the device after the sample rate change is complete.

It's not a big deal for my application, as I said. I use mine for analog-to-analog processing just as the OP plans to. Some day I may play audio directly to the device, and I'll probably do software sample rate conversion, where appropriate. I actually only run at 48 kHz. I don't buy into the high res hype within a playback chain. (For recording and production purposes, I believe there are probably benefits.)
awediophile is online now  
post #15 of 20 Old 11-01-2016, 01:42 AM
AVS Forum Special Member
 
3ll3d00d's Avatar
 
Join Date: Sep 2007
Location: London, UK
Posts: 2,753
Mentioned: 97 Post(s)
Tagged: 0 Thread(s)
Quoted: 1566 Post(s)
Liked: 544
Quote:
Originally Posted by awediophile View Post
That's weird though that the change happens while content is already playing. I would expect that when an application like JRiver tries to open the device with a particular sampling rate, that the Motu driver would block the application until the sample change was complete.
it closes the current asio device and opens a new one (to change sample rate)
3ll3d00d is offline  
post #16 of 20 Old 11-01-2016, 03:26 AM
Member
 
awediophile's Avatar
 
Join Date: Oct 2013
Posts: 175
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
Quoted: 124 Post(s)
Liked: 48
Quote:
Originally Posted by 3ll3d00d View Post
it closes the current asio device and opens a new one (to change sample rate)
Of course, that makes sense. But when it re-opens the device, does the device return success and allow the application to initiate playback, even though no audio is passing through to it? That's the part that seems weird to me. I would think that instead, the device would wait until the sample rate change before returning success. Or else it might just error out on the first attempt to re-open the device, forcing the application to attempt to open it again.

Actually I have noticed that Jack with the Motu A16 on USB on Linux always fails to start on the first attempt after a reboot. Even though the device errors out, the A16 goes through a clock reset including sample rate adjustment, if necessary. Jack always starts up and works just fine on the second attempt. It may be the case that the device can't stall long enough on the request to open the device before the Linux USB audio driver or something else gives up on it and returns failure. I'm just speculating here, but it's an interesting point of interest.
awediophile is online now  
post #17 of 20 Old 11-01-2016, 03:43 AM
AVS Forum Special Member
 
3ll3d00d's Avatar
 
Join Date: Sep 2007
Location: London, UK
Posts: 2,753
Mentioned: 97 Post(s)
Tagged: 0 Thread(s)
Quoted: 1566 Post(s)
Liked: 544
Quote:
Originally Posted by awediophile View Post
Of course, that makes sense. But when it re-opens the device, does the device return success and allow the application to initiate playback, even though no audio is passing through to it? That's the part that seems weird to me. I would think that instead, the device would wait until the sample rate change before returning success. Or else it might just error out on the first attempt to re-open the device, forcing the application to attempt to open it again.
it appears to make a blocking call to set the sample rate, once that returns successfully then it actually opens the device for playback.
3ll3d00d is offline  
post #18 of 20 Old 11-01-2016, 11:28 PM
Member
 
awediophile's Avatar
 
Join Date: Oct 2013
Posts: 175
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
Quoted: 124 Post(s)
Liked: 48
Quote:
Originally Posted by 3ll3d00d View Post
it appears to make a blocking call to set the sample rate, once that returns successfully then it actually opens the device for playback.
Cool. Then there should be no need for extra silence at the beginning of tracks.
awediophile is online now  
post #19 of 20 Old 02-14-2017, 07:20 PM
Newbie
 
loddie's Avatar
 
Join Date: Jul 2006
Location: Denver, CO
Posts: 12
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Quoted: 6 Post(s)
Liked: 10
Hello BassThatHz,

I'm curious if you are still pursuing this? I'm trying to do a similar setup with four MOTU Travelers for 7.4.2 analog input from the pre-outs of a Pioneer SC-95 Atmos/DTS:X receiver and outputting 32 channels through the MOTUs. Will be using JRiver on Windows 10 to setup full active system with FIR filters, convolution, etc. I started a thread if you have interest or suggestions:
https://yabb.jriver.com/interact/ind...,109373.0.html
loddie is offline  
post #20 of 20 Old Today, 07:35 PM - Thread Starter
AVS Forum Special Member
 
BassThatHz's Avatar
 
Join Date: Apr 2008
Location: Northern Okan range (NW Cascades region)
Posts: 7,224
Mentioned: 74 Post(s)
Tagged: 0 Thread(s)
Quoted: 2035 Post(s)
Liked: 1567
I just noticed this is the wrong thread that was awoken. DOH... This is the OLD JRiver thread.

The current active thread, as far as what I'm doing with Motu devices & DSP'ing, is found here:
DIYing a DSP Processor engine. (Solution)
A lot has changed since this thread and for the better IMO...
The current solution supports 256+ channels from a single app, not this crazy JRiver solution of 32-Channels per USB cable / OS garbage.

I thought this thread was that thread... DOH!
BassThatHz is online now  
Sponsored Links
Advertisement
 
Reply DIY Speakers and Subs

Thread Tools
Show Printable Version Show Printable Version
Email this Page Email this Page


Forum Jump: 

Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off