Avatar

Please consider registering
Guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed sp_TopicIcon
Big convolution
No permission to create posts
July 24, 2018
7:28 pm
Avatar
michxw95
Member
Members
Forum Posts: 5
Member Since:
July 24, 2018
sp_UserOfflineSmall Offline

Hi will. I am using RackAFX to create my new plug in for my university degree work. I use your book to implement a FIR filter with a convolution but the problem is I need more length for the arrays. And the limit in this method is like 1500. I need minimum 44100/3 and max 2*44100. The only thing that I want to do is implement this big convolution with to array that I define like dynamic memory. I don't know if you know a different form to implement this. I also read the appnote that you have about fast convolution. I have to questions about it. First if the method that you use in this case is similar of the FIR implementation of your book. And second I try to run the DemoFFTconvelver. But when I try to load it, RackAFX shows a message that saids: convolver.dll no found. Where I have to download this dll File. Finally is important to tell you that the two array that I want to make convolution are dynamics and with other methods I generate the samples of each. Thanks for your time willSmileSmileSmileSmileSmileSmileSmileSmileSmileSmile

July 26, 2018
1:29 pm
Avatar
W Pirkle
Admin
Forum Posts: 261
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

The RackAFX convolver is limited to 1024 points. And the convolution is straight linear convolution (inefficient). 

However, you can do insanely long convolutions with the HiFiLoFiConolver object. One of my grad students used it for long reverb convolution as well as convolving with guitar amp cabinet IRs. He wrote a short App Note that is somewhat mis-title - it doesn't require FFTW, but if you have it installed and you have modified your Visual Studio project to link with it, you can enable it for faster processing. My grad student was getting good results both with and without it. It looks like you found this already. I will do some checking with that DLL that is says is missing and get back to you some time late next week (I am in the middle of traveling). That DLL is not the FFTW DLL, which has a different name. 

http://www.willpirkle.com/app-.....with-fftw/

The HiFiLoFiConvolver object performs a variation of Gardener's Fast Convolution, and it is not linear convolution.

In the Fall I'll be launching a new version of RackAFX and a new plugin framework called ASPiK. With that are more than 55 built-in C++ objects for you to use in your plugins and that includes a new FastConvolver object I coded from scratch using the FFTW package. I can't release anything in the near future, but these changes will start happening around October or so. 

- Will 

July 29, 2018
11:21 pm
Avatar
michxw95
Member
Members
Forum Posts: 5
Member Since:
July 24, 2018
sp_UserOfflineSmall Offline

Hi will. I found the problem of the convolver.dll. It was that I was building the code with x64. And the dll was not on the plugin folder. I test the program of your students and it works very good. I only have one problem. The two stage FFT have a function name "fftconv.init", this function receives the convolution head block size, tail block size , the IR array and the convolution length. This method is in prepare for play function and initialize when we put play for the song. In the process audio frame is the function name "fftconv.process" and this receives the input buffer, output buffer, and length. My problem is that in my program I change the values of my IR vector all the time it changes by a function that calculate values every moment. But when I try to initialize fftconv in process audio frame it freeze my computer and RackAFX automatically close, I also try with the reset function and the initialize, and gives me the same problem. I don't know if you have an idea of how to refresh the values of IR array and then calculate the convolution. Thanks for your time Will. Laugh

July 31, 2018
5:22 pm
Avatar
W Pirkle
Admin
Forum Posts: 261
Member Since:
January 28, 2017
sp_UserOfflineSmall Offline

Try compiling in Release mode to avoid CPU overhead from the Debug stub code. 

In many of my IR plugins that use linear convolution, I can only really update the IR on every buffer, rather than every frame. 

It sounds like you are running up against the CPU wall.

- Will

Forum Timezone: America/New_York

Most Users Ever Online: 55

Currently Online:
4 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Skyler: 48

Derek: 46

Frodson: 43

Peter: 41

clau_ste: 39

Gwen: 32

JimmyM: 30

TheSmile: 28

EZB: 24

lppier: 23

Member Stats:

Guest Posters: 1

Members: 527

Moderators: 1

Admins: 4

Forum Stats:

Groups: 11

Forums: 31

Topics: 552

Posts: 2168

Newest Members:

Steve Duell, Cal, LamebrainEddy, SteveThackery, rawbirdtoe, Bill, hill william, NAUN_SONAR, sufy, Diane

Moderators: W Pirkle: 261

Administrators: Tom: 67, JD Young: 80, Will Pirkle: 0, W Pirkle: 261