Open
Description
Follow up on #353, plus few ideas:
- Implement
Drop
to dropAudioBuffer
andVec
cleanly in renderers (cf. Otto's comment)-
AudioBufferSourceRenderer::buffer
-
ConvolverRenderer::buffer
-
WaveshaperRenderer::curve
-
BiquadFilter::{x1, x2, y1, y2}
-> consider usingArrayVec
instead? -
DelayRenderer::ring_buffer
-
DynamicsCompressorRenderer::ring_buffer
-
IirFilterRenderer::{norm_coefs, states}
-> consider usingArrayVec
instead, we can probably clamp eveything usingMAX_CHANNELS
and the max number of coefs (i.e.20
) ?
-
- Use
ArrayVec
instead ofVec
inAudioParam
(this is already a dependency so that's cool, and except forresize
this is mostly a drop in) Perf - useArrayVec
instead ofVec
for internalAudioParam
buffer #363 - Implement optimizations proposed there, especially the second one as most of the time params are not modulating (or are not modulated by) an incoming signal (ok, this one is a bit out of context... :)
- Install https://github.com/Windfisch/rust-assert-no-alloc to make sure our render thread is clean