apohl79 / audiogridder

DSP servers using general purpose computers and networks
https://audiogridder.com
MIT License
762 stars 79 forks source link

Beta 4 still only usable version here. CPU spikes in Logic #257

Closed simon1176f closed 3 years ago

simon1176f commented 3 years ago

I guess this issue is getting old, but with bet 10 the CPU spiking issue is still here which has only been present since Beta 4

To quote issue #235:

So after much testing of Beta 9 in Logic 10.5.0, Mojave (host) and both Win 10 and Mojave servers, there are still major CPU spikes on the 'live' stream. As soon as I use an 'I/O' plugin, which is for using external analog equipment, the last core or 'live' stream maxes out rendering the whole thing unusable if any AGridder plugin is used.

Under Beta 4, I can use multiple 'I/O' plugins, AGridder instances in any order with negligible CPU hit on the live CPU stream (It's the last core, which Logic uses for live processing - virtual instruments, I/O plugin, record monitoring, 1-2 bus processing etc) For example I can have many tracks whose plugins go I/O, AGridder, I/O, AGridder with basically 0% CPU hit on host in Beta 4 Same thing in Beta 5,6,7,8,9 causes massive CPU spike.

Whatever implementation was added after Beta4 is it possible to have an option to turn off? The CPU usage indicator for example?

Something after Beta 4 (which is very stable as far CPU usage on host is concerned) is causing this.

Beta 4 is rock solid, Beta 9 is better in a lot of ways but this fundamental issue means it is for this application, unusable.

Many thanks for your work :)

jaacMusic commented 3 years ago

I have seen random CPU spikes on AG plugin (DAW side). I'm still doing additional tests to validate if these are random.

apohl79 commented 3 years ago

I believe the spikes are not CPU related but response time related. The logic I/O thread has real-time needs and runs into trouble if a plugin takes too long processing the audio. For usual plugins this would likely be CPU related, but not in the case of AG.

That said, i have spent some time trying to reproduce this and all I have seen in my tests, I addressed. So I believe it must be something in the server.

Do you see the problem also, when not loading a remote insert into a chain (just an empty AG instance or a series of instances)?

On 9. Dec 2020, at 01:48, jaacMusic notifications@github.com wrote:

 I have seen random CPU spikes on AG plugin (DAW side). I'm still doing additional tests to validate if these are random.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

simon1176f commented 3 years ago

No, only when using the I/O plugin, and when AG is anywhere in the signal chain after the I/O instance either on the same track or if the track is sent to a bus with AG on it. The strange thing is Beta 4 works flawlessly, barely a dent on the 'live' thread. Beta 5 and up all have the CPU spike.

With Beta 4 I can have crazy amounts of I/O plugins going into busses etc, with many many AG instances, it almost feels unlimited and there is never a single spike and live thread hovering around 10% with a 128 buffer on Logic. With AG 5 and up the same sessions loaded and the live thread is 100% maxed out even before playback, even with Logic set to 1024 buffer.

I have noticed the CPU spike is accumulative, so a basic setup with 1 I/O plugin going into AG will cause small periodic mini-spikes (not going to 100%) on the 'live thread' but as soon as the session becomes more complex as I have been able to do with Beta 4 the live thread quickly starts spiking heavily.

Also it also seems the spikes are worse on the host when the CPU load on the server side is bigger, for example with CPU intensive Acustica plugins. With Beta 4 the CPU load the server is doing seems irrelevant on the host.

I hope this information helps, for every other application, when not using the I/O plugin (which is essential for me so I can use my outboard gear), Beta 10 is very good and stable.

Thankyou Andreas,

Simon

simon1176f commented 3 years ago

I will try to create a Logic session that shows this behaviour using the stock plugins and for the server, something you also have AU/VST wise. I have all the Acustica plugins on my servers as well as off the top of my head (thinking of CPU intensive plugins) Unisum. If you have the same plugins you could see the same behaviour.. I could also get a demo licence of a plugin you might be able to suggest for the server to try this experiment.

apohl79 commented 3 years ago

OK, thx for the info! I would guess, you do not have I/O plugins on all channels of a session. My question is, do you see the spikes also, if the AG plugins on the channels with I/O plugin(s) have no remote plugins loaded?

My guess right now is, that some locking code on the server (or heavy weigh plugin, less likely, as that would be the same on beta4) prevents it from responding fast enough.

A session to reproduce this would be awesome! :-) I have only viridian2 of acoustica. I’m running a trial on amethyst for testing right now (should have something like 3 weeks left). Except for Erin (which my trial has ended) I can use other demo versions. If possible, please use the Mac server. Thx!

simon1176f commented 3 years ago

AGridder test.zip

Here is the session. In logic the buffer size was 128 and I had multithreading on 'playback & live tracks'

I have set the I/O ins and outs to either 3 or 3/4 for stereo, which makes them all live, with pink noise on the Osc plugin so if your soundcard is connected to anything (speakers) from 3/4 maybe mute before loading. It still works for this excersise with all the I/O plugins set to the same in and out. There isn't any output of pink noise for this you can see on the meters or hear (normal) but all the plugins are active.

Screenshots are the same session with Beta 4 then with Beta 10. I also included the session the same but no Viridian plugins loaded into the AGridder instances. Interestingly, there are no spikes when this is the case.

I hope this helps!!

Simon

U17R commented 3 years ago

side note: im sure acustica audio would cooperate getting test or NFR licenses to ensure proper operation with AG. it actually solves one of their biggest issues (performance). Zaphod (Giancarlo) the CEO is very active on Gearslutz.

apohl79 commented 3 years ago

AGridder test.zip

Here is the session. In logic the buffer size was 128 and I had multithreading on 'playback & live tracks'

I have set the I/O ins and outs to either 3 or 3/4 for stereo, which makes them all live, with pink noise on the Osc plugin so if your soundcard is connected to anything (speakers) from 3/4 maybe mute before loading. It still works for this excersise with all the I/O plugins set to the same in and out. There isn't any output of pink noise for this you can see on the meters or hear (normal) but all the plugins are active.

Screenshots are the same session with Beta 4 then with Beta 10. I also included the session the same but no Viridian plugins loaded into the AGridder instances. Interestingly, there are no spikes when this is the case.

I hope this helps!!

Simon

Thanks

apohl79 commented 3 years ago

side note: im sure acustica audio would cooperate getting test or NFR licenses to ensure proper operation with AG. it actually solves one of their biggest issues (performance). Zaphod (Giancarlo) the CEO is very active on Gearslutz.

thanks for the suggestion. i texted him.

simon1176f commented 3 years ago

Awesome, is this implemented in 1.1 Beta10? Thanks!

On Sun, Jan 17, 2021 at 7:18 AM Andreas Pohl notifications@github.com wrote:

Closed #257 https://github.com/apohl79/audiogridder/issues/257 via 1cbfa02 https://github.com/apohl79/audiogridder/commit/1cbfa02f26f56d96e4ca0fd1d0482851e484e050 .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/apohl79/audiogridder/issues/257#event-4214393644, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARDQV3OAAXHYBZSAA7ABUU3S2HYBFANCNFSM4USRW7QQ .

apohl79 commented 3 years ago

Will be in beta11. Cheers

On 17. Jan 2021, at 08:38, simon1176f notifications@github.com wrote:

 Awesome, is this implemented in 1.1 Beta10? Thanks!

On Sun, Jan 17, 2021 at 7:18 AM Andreas Pohl notifications@github.com wrote:

Closed #257 https://github.com/apohl79/audiogridder/issues/257 via 1cbfa02 https://github.com/apohl79/audiogridder/commit/1cbfa02f26f56d96e4ca0fd1d0482851e484e050 .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/apohl79/audiogridder/issues/257#event-4214393644, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARDQV3OAAXHYBZSAA7ABUU3S2HYBFANCNFSM4USRW7QQ .

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub, or unsubscribe.

CaBuffalo commented 3 years ago

Hi, all,

Beta 11 is released today. Hopefully it solves your problems. 👍 Cheers,

simon1176f commented 3 years ago

Yes problem seems solved. Thankyou!!

On Tue, Jan 19, 2021 at 3:25 AM CaBuffalo notifications@github.com wrote:

Hi, all,

Beta 11 is released today. Hopefully it solves your problems. 👍 Cheers,

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/apohl79/audiogridder/issues/257#issuecomment-762351809, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARDQV3JUCHZIOTBZVCFIAI3S2ROGPANCNFSM4USRW7QQ .