I would go ahead and just implement this myself through the git repository but I am not familiar enough with github to figure out how to properly do a pull request…
Anyways, why isn’t the AudioSampleBuffer class taking advantage of Apple’s Accelerate functions in these functions? VDSP has a bunch of different vDSP_vramp
functions that speed things up while outputting the same results. It would save me from having to write stuff like this:
#if defined(JUCE_USE_VDSP_FRAMEWORK) && defined(JUCE_MAC) // vDSP option
float vdsp_ramp_step = 1.0f / static_cast<float>(N) * sh_sample_old[ch];
vDSP_vrampmuladd(temp_read, 1,
&gain_old[ch],
&vdsp_ramp_step,
input_write[channel], 1,
(size_t)N
);
#else // standard option
buffer.addFromWithRamp(ch, 0, temp_read, N, sh_sample_old[ch], 0.0f);
#endif
From my understanding there is no equivalent for doing this with SSE / AVX so maybe extending upon the FloatVectorOperations
class with new ramping functions would not make much sense in this case but it would still be nice to have the vDSP optimization built into the buffer’s functions.