diff options
author | Damien Zammit <damien@zamaudio.com> | 2014-07-01 09:03:38 +1000 |
---|---|---|
committer | Damien Zammit <damien@zamaudio.com> | 2014-07-01 09:03:38 +1000 |
commit | 0d80fefbbb2eb72212cc890ceef2de601101b59b (patch) | |
tree | d6610f873798e32157fd802ea04cf8441dba8aca /plugins/ZaMultiComp | |
parent | 0a3d9fc62236cfdb16993009262e8a31c82ac5a1 (diff) |
Update DPF, some misc fixes #14
Diffstat (limited to 'plugins/ZaMultiComp')
-rw-r--r-- | plugins/ZaMultiComp/Makefile | 12 | ||||
-rw-r--r-- | plugins/ZaMultiComp/ZaMultiCompPlugin.cpp | 20 | ||||
-rw-r--r-- | plugins/ZaMultiComp/ZaMultiCompPlugin.hpp | 11 | ||||
-rw-r--r-- | plugins/ZaMultiComp/ZaMultiCompUI.cpp | 94 | ||||
-rw-r--r-- | plugins/ZaMultiComp/ZaMultiCompUI.hpp | 36 |
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; |