[SCM] calf/master: Speed up compressor-based plugins.
js at users.alioth.debian.org
js at users.alioth.debian.org
Tue May 7 15:40:03 UTC 2013
The following commit has been merged in the master branch:
commit 8ad44088e31dd32d8e9ca9a8aa974017a9f67eff
Author: Krzysztof Foltman <wdev at foltman.com>
Date: Wed Apr 7 00:20:48 2010 +0100
Speed up compressor-based plugins.
It looks like recently the compression-related plugins started updating
the curve parameters every sample. This is expensive and unnecessary, so
it will be done every block of samples instead.
diff --git a/src/modules_dsp.cpp b/src/modules_dsp.cpp
index 354807c..bf2e2e9 100644
--- a/src/modules_dsp.cpp
+++ b/src/modules_dsp.cpp
@@ -1279,6 +1279,8 @@ uint32_t compressor_audio_module::process(uint32_t offset, uint32_t numsamples,
clip_in -= std::min(clip_in, numsamples);
clip_out -= std::min(clip_out, numsamples);
+ compressor.update_curve();
+
while(offset < numsamples) {
// cycle through samples
float outL = 0.f;
@@ -1561,6 +1563,7 @@ uint32_t sidechaincompressor_audio_module::process(uint32_t offset, uint32_t num
clip_in -= std::min(clip_in, numsamples);
clip_out -= std::min(clip_out, numsamples);
+ compressor.update_curve();
while(offset < numsamples) {
// cycle through samples
@@ -1828,6 +1831,7 @@ uint32_t deesser_audio_module::process(uint32_t offset, uint32_t numsamples, uin
detected_led -= std::min(detected_led, numsamples);
clip_led -= std::min(clip_led, numsamples);
+ compressor.update_curve();
while(offset < numsamples) {
// cycle through samples
@@ -2038,7 +2042,6 @@ void gain_reduction_audio_module::process(float &left, float &right, const float
bool average = stereo_link == 0;
float attack_coeff = std::min(1.f, 1.f / (attack * srate / 4000.f));
float release_coeff = std::min(1.f, 1.f / (release * srate / 4000.f));
- update_curve();
float absample = average ? (fabs(*det_left) + fabs(*det_right)) * 0.5f : std::max(fabs(*det_left), fabs(*det_right));
if(rms) absample *= absample;
--
calf audio plugins packaging
More information about the pkg-multimedia-commits
mailing list