-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve ConvolverNode
#537
base: main
Are you sure you want to change the base?
Conversation
Hello, it has been a while indeed. All is good here, I'm actually slowly working on a new release recently (just maintenance stuff). |
d8a39ad
to
115f04a
Compare
Ok cool
I checked the wpt, no difference, it even improved a bit for some reason |
// - RENDER_QUANTUM_SIZE * 8 -> 134x | ||
let partition_size = RENDER_QUANTUM_SIZE * 8; | ||
|
||
[0..buffer.number_of_channels()].iter().for_each(|_| { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As clippy suggests, iterating over [Range]
does not do what you would expect. Perhaps better just for _ in 0..buffer.number_of_channels()
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right (I did it but somehow lost it in my rebase...), I will fix that soon
(...this is not exactly the right strategy I think but this can fixed/improved later)
Hey, it's been quite some time, hope you are well !
I just had this very rapid test with the
ConvolverNode
to use the fft-convolver crate, and it seems quite interesting in terms of performance (numbers are speedup vs. realtime in the benchmarks example)main
feat/improve-convolver
with
let _ = convolver.init(RENDER_QUANTUM_SIZE, &samples);
with
let _ = convolver.init(RENDER_QUANTUM_SIZE * 2, &samples);
with
let _ = convolver.init(RENDER_QUANTUM_SIZE * 4, &samples);
with
let _ = convolver.init(RENDER_QUANTUM_SIZE * 8, &samples);
Don't really know all the implications of this partition size parameter (probably some trade off between speed and quality given the layout of the numbers...) but all unit tests are passing on my side and I didn't ear anything really chocking
I just hacked it very rapidly (i.e. tail time needs to be re-implemented, etc.) and I won't have much time to work on it until at least January.
But wanted to have you feeling about that, do you you think it worth it to continue?