zamaudio / zam-plugins

Collection of LADSPA/LV2/VST/JACK audio plugins for high-quality processing
http://www.zamaudio.com/?p=976
GNU General Public License v2.0
265 stars 37 forks source link

ZamTube is a CPU eater #61

Closed MaxPayne86 closed 5 years ago

MaxPayne86 commented 6 years ago

Hi,

I've cross-compiled this plugin for a Raspberry Pi 2 and the xruns are quite high. I cannot use this plugin at the moment. What is the reference CPU consumption on a Intel i7 for this plugin?

As a NOTE: here you can find my attempts in the past to implement a plugin using official rt-wdf library. Unfortunately I fall in the same issue: CPU consumption using this modeling approach is so high that the plugin is not usable on my platform...

zamaudio commented 5 years ago

Sorry, I did not design this plugin for a Raspberry Pi platform...

zamaudio commented 5 years ago

Try master branch, I introduced a taylor expansion and reduced load by 300%

falkTX commented 5 years ago

Try master branch, I introduced a taylor expansion and reduced load by 300%

sorry, this made me laugh. you reduced cpu load by more than 100%, so it is less than 0 right now :joy: I guess you mean 30%?

zamaudio commented 5 years ago

I mean, it was 25% load now its like 8%, 25/8 * 100 ~ 300 percent improvement.

zamaudio commented 5 years ago

I've lowered it from 8% down to 6% load now, but i havent pushed that change yet.

zamaudio commented 5 years ago

When I have ZamTube polished, it would be good to have someone test it on ARM.

zamaudio commented 5 years ago

Sorry folks, I have had to revert the approximations, as they deviate way too far from the full solution, and sounds awful at some settings.

zamaudio commented 5 years ago

Closing as wont-fix

MaxPayne86 commented 4 years ago

Hi, some time has passed, since then I've seen many commits on this plugin suite, zita-convolver is now compiled internally. I have tested the last commit again this time on my board which is now Aida DSP OS (arm 64 bit). With Gain knob at 0 CPU consumption is ok, more or less 20%. But if I rise gain a little jumps to 100% with lot of xruns. With the version of jack2 I'm using it actually crashes jackd. Just as a reference, thanks.

zamaudio commented 4 years ago

@MaxPayne86 See above comment: Sorry folks, I have had to revert the approximations, as they deviate way too far from the full solution, and sounds awful at some settings.

I did not design any of these plugins for single board ARM chips. I am interested in high-quality sound over performance, as such I cannot make them work on low powered devices without spending tons more effort, which I just have no time to do. Happy to take a PR if you can optimise the DSP for ARM.

MaxPayne86 commented 4 years ago

@zamaudio yeah I've seen this comment but after this there were numerous commits so worth a try. At the moment I'm really busy since I'm providing both support on existing plugins and adding new features for my board. I'm interested in the topic and I've started studying existing papers on analog modeling, but without any hint this will take a long time to translate into code. For example: getIa(...). It is acceptable to approximate it with a less cpu-intensive formula? Or to reduce the number of iterations or EPSILON? This is not simple to answer this question for me at the moment.