hifi-lofi / fftconvolver Goto Github PK
View Code? Open in Web Editor NEWAudio convolution algorithm in C++ for real time audio processing
License: MIT License
Audio convolution algorithm in C++ for real time audio processing
License: MIT License
Is it correct that the TwoStageFFTConvolver assumes a long IR and a short Input? I have a case where the opposite is true, as in my IR is 1 s long and my input is 120 s long, however in this case I seem to lose the benefit of Overlap-Add since the library attempts to split the IR up in blocks, which is very short to begin with.
I have tried switching the inputs, but then it will of course limit the output to the length of my original IR, which I've let it believe is my input.
What can I do here?
Something in "TwoStageFFTConvolver.h" really confusing me.
When I saw "TwoStage" I think it is easy to understand that "TwoStage" means a head conv runs in audio thread, and a long tail conv runs in background thread. Those two conv makes a convolver realtime, but when I look inside the code of TwoStageFFTConvolver class, it's more like a "ThreeStageFFTConvolver".
My point is, why there are three convolvers? A head, a "tailConvolver0" and a "tailConvolver"? I know "tailConvolver" runs in background thread, but what "tailConvolver0" is doing here? It runs in audio thread and has same block size with head conv. I really don't understand why we need two conv in audio thread? can't one head conv can do the job?
Appreciate for your kindly help.
Hello, I was hoping to use this library for a school project but I can't figure out a few things. I am providing it with the raw wave audio data in float format (not manipulated in any way so there are multiple samples per float) as well as the IR from a SOFA file but, unfortunately, it seems to be outputting jiberish. Would you be able to help me understand what inputs your methods are expecting? I have a feeling that I am either providing the wrong block size (not sure what this does other than affect the processing speed) or you are expecting only 1 audio sample per float.
hi!
i am trying to find a suitable partioned convolution library for usage in vst plugins.
gpl forbids to distribute vst binaries as they are compiled using the non-free steinberg vst sdk.
i wanted to ask if you are ok if somebody uses your code in a gpl project and offer vst binaries of this project.
thanks,
matthias
Hi,
Shouldn't the line:
if (relError > relTolerance && absError > absTolerance)
Over here,
Line 233 in f2cdeb0
Read:
if (relError > relTolerance || absError > absTolerance)
Right now it fails if and only if both fail. Isn't it expected the test fails if either absolute or relative error exceeds the threshold? (so logical or should be used).
There is another similar test in the same file by the way.
Regards,
Marcel
Hi - I'm trying to get my head round this - can you tell me what head convolver vs tail convolver means ?
I was expecting only one convolve (i.e one impulse). Can you explain what you mean here
thanks!
J
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.