oops, I hads uploaded the wrong file, here's the hopefully correct and last word on it

https://www.dropbox.com/s/05xl7ml171noyjq/convolution~.zip?dl=0

and my CPU load is actually at about 57%, not 50%

The last file I uploaded was using a compiled object to perform the complex multiplication and that helped a little with the efficiency. I'm gonna use it for my non vanilla abstraction that I'm bringing into my ELSE library.

cheers



Em ter, 8 de jan de 2019 às 14:13, Alexandre Torres Porres <porres@gmail.com> escreveu:
Ok, here's the new deal... 


there are two subpatches for testing, one is light with a relative big window partition (1024) and a short Impulse Response (2 secs).

The other is quite heavy, it's an 8 sec long IR with a window size of 512! This one takes just a bit over 50% of my CPU power, and I'm on a last generation macbook pro (2.6Ghz processor)... but I need to increase the Delay (msec) from 5 to 10 in the audio settings, otherwise I get terrible clicks!

William Brent's convolve is ridiculously much more efficient, the same parameters take about 14% of my CPU power and I can use a delay of 5 ms in the audio settings.

But anyway, this is useful for teaching and apps that implement a light convolution reverb (short IR/not too short window) need pure vanilla (libpd/camomille and stuff)

Cheers!

Em dom, 6 de jan de 2019 às 14:25, Alexandre Torres Porres <porres@gmail.com> escreveu:
Meanwhile, I deleted the original file so people can't get it anymore :)

Em dom, 6 de jan de 2019 às 14:16, Alexandre Torres Porres <porres@gmail.com> escreveu:
Hi, quick updates and developments over my weekend
 
On Thursday, 3 January 2019, 04:19:50 GMT, Alexandre Torres Porres <porres@gmail.com> wrote: 

what you think, is it working?

So, the patch/algorithm was wrong and I've fixed 
 
Both objects on the help file take about 40% of my CPU power, but I'm on a wild machine

I was able to do a few more things and make it much more efficient
 
I tried the idea of having each partition work with FFT saved on tables, so we wouldn't need to perform FFTs in different instances of clone, but that doesn't seem to be possible.

This is because things were wrong, like I said, now that I've fixed it, that was possible.

But my current version is not vanilla anymore, as I'm developing this object to include it in my "ELSE" library. Once I'm done I'll try to make another vanilla compatible abstraction and re share it!

Cheers