The No.1 Website for Pro Audio
 Search This Thread  Search This Forum  Search Reviews  Search Gear Database  Search Gear for sale  Search Gearslutz Go Advanced
E-MU 1616m maxing out Reverb & Delay Plugins
Old 18th May 2017
  #1
Gear Head
 

E-MU 1616m maxing out

Hi guys,

I have an E-MU 1616m that I really like (great preamps, great converters, all in and outs I could ask for, zero-latency monitoring), but lately I've had problems with large projects, where the ASIO driver maxes out in my opinion way too easily. It might have something to do with Windows 10, as I don't recall having this problem on Windows 7.
Anyway, the point is: with large projects, I barely use 35% of my CPU (which also dates back to 2011...) when the ASIO driver is already maxing out. I need in those case to bring the latency up, but even to the maximum (100 ms) there are occasional clips and sound would stop for a second or so; let alone that such latency makes it totally unusable for recording.
It looks to me like the driver holds up fairly well until the load doesn't get excessive, and then just handles it terribly. Clearly there are no chances the 1616m drivers get an update; also, I tried other drivers (e.g. ASIO4ALL) but they all perform even worse.
So the question is: is there something I can do to improve the performance?
Or am I doomed to get a new soundcard if I want to handle a higher workload? And if so, what recommendation would you have (with similar characteristics)?
Thanks a lot!
Old 19th May 2017
  #2
Lives for gear
 

It's hard to guess that remotely.. but if that happens even with larger buffers, then I don't think ASIO driver would be primary reason for that woes.
I had EMU 1212M for years and while it wasn't latency champion in absolute sense, it was pretty efficient with audio streaming and didn't tax CPU too much.
Then I've upgraded to RME AIO, which is approximately one buffer length better.. eg. workload which was working at 128 with 1212M runs at 64 with AIO.. etc. It behaves bit better under very heavy load, but as you reach higher buffer lengths, this isn't dominant factor.
Anyway, if it pops at 35% of overal CPU with such long buffers, then I think, you're maxing single core performance of your CPU somewhere in your project.. All effects and instruments at single track are typically handled by one worker, which is scheduled to single core/thread. Of course, when you have more tracks than CPU cores/thread, multiple workers are being handled by one core/thread.
So if you have some heavier serial workload (eg. chain of some heavier mastering plugins, demanding instruments and following insert effects..), then it can choke that core and you'll experience pops, even if overal (summed) load is far from 100%.
Some DAWs handle that bit better (Reaper, Cubase with ASIO guard etc.) than others (like S1) IMO, however if you're hitting the wall with your projects, then you'd have to optimize them (for example by freezing of demanding effects or VIs, using more instances of some VIs instead of one heavy multi-timbral instance) or simply look for some PC with CPU with better core speed.
Of course, there can be also some misbehaving plugin or CPU hog, which you'd need to isolate. That can also happen.

Michal
Old 19th May 2017
  #3
Gear Head
 

Thanks Michal,

that's a fantastic explanation!
I use Cubase 8.5 on Windows 10, and the CPU is an 8-cores I7. I did in fact know that Cubase used parallel processing to make use of multicore CPUs, but I didn't know - or realize - that each track still had to be treated single-threadedly. I quickly checked on the resource manager and indeed saw that the first core is getting way more workload than the others (possibly combined...) and that's suspicious. I see 2 possible explanations:
- something is misconfigured in Cubase and workload is not being properly distributed over the cores
- there is actually one track that is extremely more computationally demanding than the rest. I didn't have the time to check before leaving for work, but it does sound strange, I can't think of a single one beating the rest so evidently.
I will investigate the second possibility later today.
Do you have any idea regarding the first option? Is it possible that I am missing some Cubase setup step to properly balance the load over the cores?
Thanks a lot again!
Old 19th May 2017
  #4
Lives for gear
 

With regards to Cubase preferences, I don't think, there's to much related options to setup.

Generally I'd check, that you have enabled "Activate Multi Processing" in Devices > Device Setup > VST Audio System.
Also activate ASIO-Guard at the same menu.
ASIO-Guard enables preemptive processing of audio in larger chunks (which is more efficient) at tracks, which doesn't require low latency performance (like those, which aren't record armed).
Some previous tips noted, it's better to disable CPU Hyperthreading (in BIOS/EFI), but in my experience, it actually worsen performance, when ASIO-Guard is being enabled. It can be system/project dependent, so you might try that, although I'd leave HT on.
Other performance related thing is, some plugins has its own switchable multi-threading option.. Like Kontakt based instruments or Diva. There are cases, when this can help, however in many situations, this will actually lead worse to worse performance with real-world projects, because it will clash with thread scheduling of mentioned DAW workers. You have to try that. Generally, there isn't any standard scheme or approach for multi-threaded processing of plugins, so every vendor might implemented that in slightly different way.. Normal plugins has typically just two threads, one for processing and one for UI and automation.

To add something to previously mentioned track/worker thing and its scheduling, in most DAWs there is worker besides tracks, which handles master bus summing and processing and communicates with ASIO driver.. it it doesn't keeping with workload (because you've inserted many plugins there) or wait for contributing thread, you'll experience those pops. Sometimes, there can be similar situation with AUXes, which adds another synchronization constraint for otherwise independent track processing.. (eg. AUX effect calculation has to wait for all its contributing threads and then calculate its insert effects).
So sometimes, it's not so straightforward with prediction of project load and optimal distribution among all available cores/threads.. You have to experiment with that.

With regards to common effect plugins, Zynaptiq tools, some Izotope stuff like Ozone IRC3 limiter or RX denoisers, Waves AR Plates or H-Reverb are known to be pretty demanding at CPU.. so check your project for those, especially in some serial chains.

Finally as a bonus, because I don't think, it would be primary reason You can check, your CPU won't park its cores. Coder Bag: CPU core parking manager v3
And be sure to use included Steinberg's high performance Power scheme at Windows.

Michal
Old 19th May 2017
  #5
Gear Head
 

Hey Michal,

thanks again! All options you recommended (MultiProcessing, Asio Guard, PowerScheme) were on. However, I did turn off hyperthreading and that really made a huge difference!
With HT on, most of the workload was between the two threads of the first core, with the others being close to idle (10%-20% tops), at 50 ms latency you'd get a lot of pops and even at 100ms you'd still get some, and the pops would start already at 35% CPU.
Without HT, the workload appears much more balanced (still way too close to 100% in the first core, but the others were around 60%), at 50 ms latency it played flawlessly and at 20 ms it performed way better than before at 50 ms; furthermore, the total CPU usage was going from 60 to 80%.
So that helped a lot however, I was thinking already before to upgrade my hardware a little (the i7 is from 2011 - ah, and unlike my previous post, it has 4 cores, not 8, those would be the threads with HT), and so now the question is if I would benefit more from a CPU with 8 cores or from one with 4 but better performing cores (such as the i7 7700K - with cores running at 4.20GHz as opposed to 3.40, according to benchmarks around 40% better performing).
I am still surprised that the first core would be get much more work than the rest, I find it hard to believe no better distribution was possible. But then if Cubase can't better distribute work, additional cores are not gonna help as much as faster cores, right?
Old 19th May 2017
  #6
Lives for gear
 

Hi,

that's interesting with HT.. as I've mentioned, in my tests, it rather affected setups without ASIO guards and where lowest latency was the priority over total processing power. Anyway, it's good that it helped a little bit.
Also as I've mentioned, it's quite difficult to predict the scheduling behavior or exact performance with projects by others, as everything might contribute more or less from the particular hardware, through used plugins to project structure.
The first core is typically loaded more than the rest, because mentioned summing and ASIO thread is running there.

With regards to further scaling and scheduling test, you might also try DAWBench by Vin Curigliano.. DAW Bench : DAW Performance Benchmarking
Those are quite straightforward projects without any auxes, submixes or master effect chains, so it's pretty optimal thing to test thread scheduling.
There are two flavors - DSP and VI.. Read through included readme files. For DSP test, you'll need to install included ReaXComp free plugin, which is common reference. After you start looped playback of the project, you will sequentially enable additional instances of the plugin.. go in horizontal way.. so first insert slot at first track, first insert slot at second track.. until you'll hit 40th track. Then the second row.
You can find the exact spot, when your system starts to creep.. You can also look at Cubase performance meter or Windows Task Manager plots about core utilization.
With regards to Task Scheduler, be sure to right click to CPU graph and allow to show kernel times (basically times, which CPU spend with drivers).. It's also possible, the first core can be significantly loaded by that.
This Dawbench project is generally very good for testing some setup differences, buffer sizes, different drivers etc.

CPU selection doesn't have one straight answer and also budget is typically considered.. People often working with large projects with many tracks and instances of heavier plugins (say tape sim at every channel, Nebula things etc.) often choose some six or eight core CPUs for 2011-3 socket. Of course in sum, it outperforms cheaper 4 core mainstream platform. However for some workloads, per core power of higher clocked i7 like 6700/7700K, provides some additional headroom, especially when running at very short buffers.. eg. realtime synth performance with higher polyphony, some oversampled amp sims with additional effects.

Michal
Topic:
Post Reply

Welcome to the Gearslutz Pro Audio Community!

Registration benefits include:
  • The ability to reply to and create new discussions
  • Access to members-only giveaways & competitions
  • Interact with VIP industry experts in our guest Q&As
  • Access to members-only sub forum discussions
  • Access to members-only Chat Room
  • Get INSTANT ACCESS to the world's best private pro audio Classifieds for only USD $20/year
  • Promote your eBay auctions and Reverb.com listings for free
  • Remove this message!
You need an account to post a reply. Create a username and password below and an account will be created and your post entered.


 
 
Slide to join now Processing…
Thread Tools
Search this Thread
Search this Thread:

Advanced Search
Forum Jump
Forum Jump