summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2015-10-15 14:27:40 +1100
committerDamien Zammit <damien@zamaudio.com>2015-10-15 14:27:40 +1100
commit39f9f635cb221e869e3a0d4efe03dcc2fe3d5070 (patch)
tree6efef91efe2b4ba8666ba55a5ee5f6ba5c07d109
parentbdc92eb1e654d646a3084602b3234c4e832a65f8 (diff)
Lower CPU usage on graphic eq
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r--plugins/ZamGEQ31/ZamGEQ31Plugin.cpp6
-rw-r--r--plugins/ZamGEQ31/ZamGEQ31Plugin.hpp2
2 files changed, 6 insertions, 2 deletions
diff --git a/plugins/ZamGEQ31/ZamGEQ31Plugin.cpp b/plugins/ZamGEQ31/ZamGEQ31Plugin.cpp
index 22bf77c..cac1584 100644
--- a/plugins/ZamGEQ31/ZamGEQ31Plugin.cpp
+++ b/plugins/ZamGEQ31/ZamGEQ31Plugin.cpp
@@ -662,6 +662,7 @@ void ZamGEQ31Plugin::loadProgram(uint32_t index)
float srate = getSampleRate();
for (i = 0; i < 29; ++i) {
geq(i, srate, 0.);
+ gainold[i] = 0.;
}
/* reset filter values */
@@ -691,7 +692,10 @@ void ZamGEQ31Plugin::run(const float** inputs, float** outputs, uint32_t frames)
uint32_t i, j;
for (i = 0; i < 29; i++) {
- geq(i, srate, gain[i]);
+ if (gain[i] != gainold[i]) {
+ geq(i, srate, gain[i]);
+ gainold[i] = gain[i];
+ }
}
for (i = 0; i < frames; i++) {
diff --git a/plugins/ZamGEQ31/ZamGEQ31Plugin.hpp b/plugins/ZamGEQ31/ZamGEQ31Plugin.hpp
index 239873d..67bc4e2 100644
--- a/plugins/ZamGEQ31/ZamGEQ31Plugin.hpp
+++ b/plugins/ZamGEQ31/ZamGEQ31Plugin.hpp
@@ -144,7 +144,7 @@ protected:
// -------------------------------------------------------------------
private:
- float gain[29], master; //parameters
+ float gain[29], gainold[29], master; //parameters
};
// -----------------------------------------------------------------------