summaryrefslogtreecommitdiff
path: root/plugins/ZaMultiComp
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2014-07-01 09:03:38 +1000
committerDamien Zammit <damien@zamaudio.com>2014-07-01 09:03:38 +1000
commit0d80fefbbb2eb72212cc890ceef2de601101b59b (patch)
treed6610f873798e32157fd802ea04cf8441dba8aca /plugins/ZaMultiComp
parent0a3d9fc62236cfdb16993009262e8a31c82ac5a1 (diff)
Update DPF, some misc fixes #14
Diffstat (limited to 'plugins/ZaMultiComp')
-rw-r--r--plugins/ZaMultiComp/Makefile12
-rw-r--r--plugins/ZaMultiComp/ZaMultiCompPlugin.cpp20
-rw-r--r--plugins/ZaMultiComp/ZaMultiCompPlugin.hpp11
-rw-r--r--plugins/ZaMultiComp/ZaMultiCompUI.cpp94
-rw-r--r--plugins/ZaMultiComp/ZaMultiCompUI.hpp36
5 files changed, 66 insertions, 107 deletions
diff --git a/plugins/ZaMultiComp/Makefile b/plugins/ZaMultiComp/Makefile
index 2250367..76410ac 100644
--- a/plugins/ZaMultiComp/Makefile
+++ b/plugins/ZaMultiComp/Makefile
@@ -20,13 +20,17 @@ OBJS_UI = \
ZaMultiCompUI.cpp.o
# --------------------------------------------------------------
-# No custom UI for now
+# Do some magic
-#TARGET_NOUI = true
+include ../Makefile.mk
# --------------------------------------------------------------
-# Do some magic
+# Enable all possible plugin types
-include ../Makefile.mk
+ifeq ($(LINUX),true)
+all: jack ladspa dssi lv2_sep vst
+else
+all: ladspa dssi lv2_sep vst
+endif
# --------------------------------------------------------------
diff --git a/plugins/ZaMultiComp/ZaMultiCompPlugin.cpp b/plugins/ZaMultiComp/ZaMultiCompPlugin.cpp
index 84f9b7f..003c007 100644
--- a/plugins/ZaMultiComp/ZaMultiCompPlugin.cpp
+++ b/plugins/ZaMultiComp/ZaMultiCompPlugin.cpp
@@ -26,13 +26,6 @@ ZaMultiCompPlugin::ZaMultiCompPlugin()
{
// set default values
d_setProgram(0);
-
- // reset
- d_deactivate();
-}
-
-ZaMultiCompPlugin::~ZaMultiCompPlugin()
-{
}
// -----------------------------------------------------------------------
@@ -451,11 +444,6 @@ void ZaMultiCompPlugin::d_activate()
}
}
-void ZaMultiCompPlugin::d_deactivate()
-{
- // all values to zero
-}
-
float ZaMultiCompPlugin::run_filter(int i, float in)
{
in = sanitize_denormal(in);
@@ -488,14 +476,14 @@ void ZaMultiCompPlugin::set_lp_coeffs(float fc, float q, float sr, int i, float
b2[i] = (float)((1.f - alpha)*inv);
}
-void ZaMultiCompPlugin::set_hp_coeffs(float fc, float q, float sr, int i, float gain=1.0)
-{
+void ZaMultiCompPlugin::set_hp_coeffs(float fc, float q, float sr, int i, float gain=1.0)
+{
float omega=(float)(2.f*M_PI*fc/sr);
float sn=sin(omega);
float cs=cos(omega);
float alpha=(float)(sn/(2.f*q));
float inv=(float)(1.f/(1.f+alpha));
-
+
a0[i] = (float)(gain*inv*(1.f + cs)/2.f);
a1[i] = -2.f * a0[i];
a2[i] = a0[i];
@@ -551,7 +539,7 @@ float ZaMultiCompPlugin::run_comp(int k, float in)
return sanitize_denormal(out);
}
-void ZaMultiCompPlugin::d_run(float** inputs, float** outputs, uint32_t frames)
+void ZaMultiCompPlugin::d_run(const float** inputs, float** outputs, uint32_t frames)
{
float srate = d_getSampleRate();
float max = 0.f;
diff --git a/plugins/ZaMultiComp/ZaMultiCompPlugin.hpp b/plugins/ZaMultiComp/ZaMultiCompPlugin.hpp
index d3d12ca..da25b94 100644
--- a/plugins/ZaMultiComp/ZaMultiCompPlugin.hpp
+++ b/plugins/ZaMultiComp/ZaMultiCompPlugin.hpp
@@ -66,7 +66,6 @@ public:
};
ZaMultiCompPlugin();
- ~ZaMultiCompPlugin() override;
protected:
// -------------------------------------------------------------------
@@ -100,15 +99,15 @@ protected:
// -------------------------------------------------------------------
// Init
- void d_initParameter(uint32_t index, Parameter& parameter) ;
- void d_initProgramName(uint32_t index, d_string& programName) ;
+ void d_initParameter(uint32_t index, Parameter& parameter) override;
+ void d_initProgramName(uint32_t index, d_string& programName) override;
// -------------------------------------------------------------------
// Internal data
float d_getParameterValue(uint32_t index) const override;
void d_setParameterValue(uint32_t index, float value) override;
- void d_setProgram(uint32_t index) ;
+ void d_setProgram(uint32_t index) override;
// -------------------------------------------------------------------
// Process
@@ -136,8 +135,7 @@ protected:
void set_hp_coeffs(float fc, float q, float sr, int i, float gain);
void d_activate() override;
- void d_deactivate() override;
- void d_run(float** inputs, float** outputs, uint32_t frames) override;
+ void d_run(const float** inputs, float** outputs, uint32_t frames) override;
// -------------------------------------------------------------------
@@ -159,7 +157,6 @@ private:
float z2[MAX_FILT];
};
-
// -----------------------------------------------------------------------
END_NAMESPACE_DISTRHO
diff --git a/plugins/ZaMultiComp/ZaMultiCompUI.cpp b/plugins/ZaMultiComp/ZaMultiCompUI.cpp
index f8bc5b1..70236af 100644
--- a/plugins/ZaMultiComp/ZaMultiCompUI.cpp
+++ b/plugins/ZaMultiComp/ZaMultiCompUI.cpp
@@ -1,5 +1,5 @@
/*
- * ZaMultiComp mono multiband compressor
+ * ZaMultiComp mono multiband compressor
* Copyright (C) 2014 Damien Zammit <damien@zamaudio.com>
*
* This program is free software; you can redistribute it and/or
@@ -15,8 +15,8 @@
* For a full copy of the GNU General Public License see the doc/GPL.txt file.
*/
+#include "ZaMultiCompPlugin.hpp"
#include "ZaMultiCompUI.hpp"
-#include <stdio.h>
using DGL::Point;
@@ -38,23 +38,23 @@ ZaMultiCompUI::ZaMultiCompUI()
fLedRedValue1 = 0.0f;
fLedRedValue2 = 0.0f;
fLedRedValue3 = 0.0f;
- fLedYellowValue = 0.0f;
+ fLedYellowValue = 0.0f;
// knob
Image knobImage(ZaMultiCompArtwork::knobData, ZaMultiCompArtwork::knobWidth, ZaMultiCompArtwork::knobHeight);
- // knob
+ // knob
fKnobAttack = new ImageKnob(this, knobImage);
- fKnobAttack->setPos(24, 43);
+ fKnobAttack->setAbsolutePos(24, 43);
fKnobAttack->setRange(0.1f, 200.0f);
fKnobAttack->setStep(0.1f);
- fKnobAttack->setLogScale(true);
+ fKnobAttack->setUsingLogScale(true);
fKnobAttack->setDefault(10.0f);
fKnobAttack->setRotationAngle(240);
fKnobAttack->setCallback(this);
fKnobRelease = new ImageKnob(this, knobImage);
- fKnobRelease->setPos(108, 43);
+ fKnobRelease->setAbsolutePos(108, 43);
fKnobRelease->setRange(50.0f, 500.0f);
fKnobRelease->setStep(1.0f);
fKnobRelease->setDefault(80.0f);
@@ -62,7 +62,7 @@ ZaMultiCompUI::ZaMultiCompUI()
fKnobRelease->setCallback(this);
fKnobThresh = new ImageKnob(this, knobImage);
- fKnobThresh->setPos(191.5, 43);
+ fKnobThresh->setAbsolutePos(191.5, 43);
fKnobThresh->setRange(-60.0f, 0.0f);
fKnobThresh->setStep(1.0f);
fKnobThresh->setDefault(0.0f);
@@ -70,7 +70,7 @@ ZaMultiCompUI::ZaMultiCompUI()
fKnobThresh->setCallback(this);
fKnobRatio = new ImageKnob(this, knobImage);
- fKnobRatio->setPos(270, 43);
+ fKnobRatio->setAbsolutePos(270, 43);
fKnobRatio->setRange(1.0f, 20.0f);
fKnobRatio->setStep(0.1f);
fKnobRatio->setDefault(4.0f);
@@ -78,7 +78,7 @@ ZaMultiCompUI::ZaMultiCompUI()
fKnobRatio->setCallback(this);
fKnobKnee = new ImageKnob(this, knobImage);
- fKnobKnee->setPos(348.5, 43);
+ fKnobKnee->setAbsolutePos(348.5, 43);
fKnobKnee->setRange(0.0f, 8.0f);
fKnobKnee->setStep(0.1f);
fKnobKnee->setDefault(0.0f);
@@ -86,7 +86,7 @@ ZaMultiCompUI::ZaMultiCompUI()
fKnobKnee->setCallback(this);
fKnobGlobalGain = new ImageKnob(this, knobImage);
- fKnobGlobalGain->setPos(427.3, 43);
+ fKnobGlobalGain->setAbsolutePos(427.3, 43);
fKnobGlobalGain->setRange(-30.0f, 30.0f);
fKnobGlobalGain->setStep(1.0f);
fKnobGlobalGain->setDefault(0.0f);
@@ -94,25 +94,25 @@ ZaMultiCompUI::ZaMultiCompUI()
fKnobGlobalGain->setCallback(this);
fKnobXover2 = new ImageKnob(this, knobImage);
- fKnobXover2->setPos(84, 121);
+ fKnobXover2->setAbsolutePos(84, 121);
fKnobXover2->setRange(1400.f, 14000.f);
fKnobXover2->setStep(1.0f);
- fKnobXover2->setLogScale(true);
+ fKnobXover2->setUsingLogScale(true);
fKnobXover2->setDefault(1400.f);
fKnobXover2->setRotationAngle(240);
fKnobXover2->setCallback(this);
fKnobXover1 = new ImageKnob(this, knobImage);
- fKnobXover1->setPos(84, 176);
+ fKnobXover1->setAbsolutePos(84, 176);
fKnobXover1->setRange(20.0f, 1400.0f);
fKnobXover1->setStep(1.0f);
- fKnobXover1->setLogScale(true);
+ fKnobXover1->setUsingLogScale(true);
fKnobXover1->setDefault(250.0f);
fKnobXover1->setRotationAngle(240);
fKnobXover1->setCallback(this);
fKnobMakeup3 = new ImageKnob(this, knobImage);
- fKnobMakeup3->setPos(167.75, 99.5);
+ fKnobMakeup3->setAbsolutePos(167.75, 99.5);
fKnobMakeup3->setRange(0.0f, 30.0f);
fKnobMakeup3->setStep(0.1f);
fKnobMakeup3->setDefault(0.0f);
@@ -120,7 +120,7 @@ ZaMultiCompUI::ZaMultiCompUI()
fKnobMakeup3->setCallback(this);
fKnobMakeup2 = new ImageKnob(this, knobImage);
- fKnobMakeup2->setPos(167.75, 150.25);
+ fKnobMakeup2->setAbsolutePos(167.75, 150.25);
fKnobMakeup2->setRange(0.0f, 30.0f);
fKnobMakeup2->setStep(0.1f);
fKnobMakeup2->setDefault(0.0f);
@@ -128,7 +128,7 @@ ZaMultiCompUI::ZaMultiCompUI()
fKnobMakeup2->setCallback(this);
fKnobMakeup1 = new ImageKnob(this, knobImage);
- fKnobMakeup1->setPos(167.75, 201.4);
+ fKnobMakeup1->setAbsolutePos(167.75, 201.4);
fKnobMakeup1->setRange(0.0f, 30.0f);
fKnobMakeup1->setStep(0.1f);
fKnobMakeup1->setDefault(0.0f);
@@ -142,61 +142,43 @@ ZaMultiCompUI::ZaMultiCompUI()
Point<int> togglePosStart(247,109);
- fToggleBypass3 = new ImageToggle(this, toggleoffImage, toggleoffImage, toggleonImage);
- fToggleBypass3->setPos(togglePosStart);
+ fToggleBypass3 = new ImageToggle(this, toggleoffImage, toggleonImage);
+ fToggleBypass3->setAbsolutePos(togglePosStart);
fToggleBypass3->setCallback(this);
togglePosStart.setY(158);
- fToggleBypass2 = new ImageToggle(this, toggleoffImage, toggleoffImage, toggleonImage);
- fToggleBypass2->setPos(togglePosStart);
+ fToggleBypass2 = new ImageToggle(this, toggleoffImage, toggleonImage);
+ fToggleBypass2->setAbsolutePos(togglePosStart);
fToggleBypass2->setCallback(this);
togglePosStart.setY(209);
- fToggleBypass1 = new ImageToggle(this, toggleoffImage, toggleoffImage, toggleonImage);
- fToggleBypass1->setPos(togglePosStart);
+ fToggleBypass1 = new ImageToggle(this, toggleoffImage, toggleonImage);
+ fToggleBypass1->setAbsolutePos(togglePosStart);
fToggleBypass1->setCallback(this);
togglePosStart.setX(278);
togglePosStart.setY(113);
- fToggleListen3 = new ImageToggle(this, toggleoffhImage, toggleoffhImage, toggleonhImage);
- fToggleListen3->setPos(togglePosStart);
+ fToggleListen3 = new ImageToggle(this, toggleoffhImage, toggleonhImage);
+ fToggleListen3->setAbsolutePos(togglePosStart);
fToggleListen3->setCallback(this);
togglePosStart.setY(164);
- fToggleListen2 = new ImageToggle(this, toggleoffhImage, toggleoffhImage, toggleonhImage);
- fToggleListen2->setPos(togglePosStart);
+ fToggleListen2 = new ImageToggle(this, toggleoffhImage, toggleonhImage);
+ fToggleListen2->setAbsolutePos(togglePosStart);
fToggleListen2->setCallback(this);
togglePosStart.setY(214);
- fToggleListen1 = new ImageToggle(this, toggleoffhImage, toggleoffhImage, toggleonhImage);
- fToggleListen1->setPos(togglePosStart);
+ fToggleListen1 = new ImageToggle(this, toggleoffhImage, toggleonhImage);
+ fToggleListen1->setAbsolutePos(togglePosStart);
fToggleListen1->setCallback(this);
-}
-ZaMultiCompUI::~ZaMultiCompUI()
-{
- delete fKnobAttack;
- delete fKnobRelease;
- delete fKnobThresh;
- delete fKnobRatio;
- delete fKnobKnee;
- delete fKnobGlobalGain;
- delete fKnobMakeup1;
- delete fKnobMakeup2;
- delete fKnobMakeup3;
- delete fKnobXover1;
- delete fKnobXover2;
- delete fToggleBypass1;
- delete fToggleBypass2;
- delete fToggleBypass3;
- delete fToggleListen1;
- delete fToggleListen2;
- delete fToggleListen3;
+ // set default values
+ d_programChanged(0);
}
// -----------------------------------------------------------------------
@@ -502,13 +484,13 @@ void ZaMultiCompUI::onDisplay()
else numRedLeds3 = 0;
for (int i=numRedLeds1; i>0; --i)
- fLedRedImg.draw(sLedInitialX + (12 - i)*sLedSpacing, sRedLed1StaticY);
+ fLedRedImg.drawAt(sLedInitialX + (12 - i)*sLedSpacing, sRedLed1StaticY);
for (int i=numRedLeds2; i>0; --i)
- fLedRedImg.draw(sLedInitialX + (12 - i)*sLedSpacing, sRedLed2StaticY);
+ fLedRedImg.drawAt(sLedInitialX + (12 - i)*sLedSpacing, sRedLed2StaticY);
for (int i=numRedLeds3; i>0; --i)
- fLedRedImg.draw(sLedInitialX + (12 - i)*sLedSpacing, sRedLed3StaticY);
+ fLedRedImg.drawAt(sLedInitialX + (12 - i)*sLedSpacing, sRedLed3StaticY);
if (fLedYellowValue >= 20.f)
numYellowLeds = 19;
@@ -552,12 +534,12 @@ void ZaMultiCompUI::onDisplay()
if (numYellowLeds > 12) {
for (int i=12; i<numYellowLeds; ++i)
- fLedRedImg.draw(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
+ fLedRedImg.drawAt(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
for (int i=0; i<12; ++i)
- fLedYellowImg.draw(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
+ fLedYellowImg.drawAt(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
} else {
for (int i=0; i<numYellowLeds; ++i)
- fLedYellowImg.draw(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
+ fLedYellowImg.drawAt(sLedInitialX + i*sLedSpacing, sYellowLedStaticY);
}
}
diff --git a/plugins/ZaMultiComp/ZaMultiCompUI.hpp b/plugins/ZaMultiComp/ZaMultiCompUI.hpp
index 7eac204..3d85b80 100644
--- a/plugins/ZaMultiComp/ZaMultiCompUI.hpp
+++ b/plugins/ZaMultiComp/ZaMultiCompUI.hpp
@@ -1,6 +1,6 @@
/*
* ZaMultiComp mono multiband compressor
- * Copyright (C) 2014 Damien Zammit <damien@zamaudio.com>
+ * Copyright (C) 2014 Damien Zammit <damien@zamaudio.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -24,7 +24,6 @@
#include "ImageToggle.hpp"
#include "ZaMultiCompArtwork.hpp"
-#include "ZaMultiCompPlugin.hpp"
using DGL::Image;
using DGL::ImageKnob;
@@ -35,23 +34,22 @@ START_NAMESPACE_DISTRHO
// -----------------------------------------------------------------------
class ZaMultiCompUI : public UI,
- public ImageKnob::Callback,
- public ImageToggle::Callback
+ public ImageKnob::Callback,
+ public ImageToggle::Callback
{
public:
ZaMultiCompUI();
- ~ZaMultiCompUI() override;
protected:
// -------------------------------------------------------------------
// Information
- unsigned int d_getWidth() const noexcept override
+ uint d_getWidth() const noexcept override
{
return ZaMultiCompArtwork::zamulticompWidth;
}
- unsigned int d_getHeight() const noexcept override
+ uint d_getHeight() const noexcept override
{
return ZaMultiCompArtwork::zamulticompHeight;
}
@@ -75,23 +73,13 @@ protected:
private:
Image fImgBackground;
- ImageKnob* fKnobAttack;
- ImageKnob* fKnobRelease;
- ImageKnob* fKnobThresh;
- ImageKnob* fKnobRatio;
- ImageKnob* fKnobKnee;
- ImageKnob* fKnobGlobalGain;
- ImageKnob* fKnobMakeup1;
- ImageKnob* fKnobMakeup2;
- ImageKnob* fKnobMakeup3;
- ImageKnob* fKnobXover1;
- ImageKnob* fKnobXover2;
- ImageToggle* fToggleBypass1;
- ImageToggle* fToggleBypass2;
- ImageToggle* fToggleBypass3;
- ImageToggle* fToggleListen1;
- ImageToggle* fToggleListen2;
- ImageToggle* fToggleListen3;
+
+ ScopedPointer<ImageKnob> fKnobAttack, fKnobRelease, fKnobThresh;
+ ScopedPointer<ImageKnob> fKnobRatio, fKnobKnee, fKnobGlobalGain;
+ ScopedPointer<ImageKnob> fKnobMakeup1, fKnobMakeup2, fKnobMakeup3;
+ ScopedPointer<ImageKnob> fKnobXover1, fKnobXover2;
+ ScopedPointer<ImageToggle> fToggleBypass1, fToggleBypass2, fToggleBypass3;
+ ScopedPointer<ImageToggle> fToggleListen1, fToggleListen2, fToggleListen3;
Image fLedRedImg;
float fLedRedValue1;