EQ.hpp (1227B)
1 #pragma once 2 3 #include "bogaudio.hpp" 4 #include "dsp/filters/equalizer.hpp" 5 6 extern Model* modelEQ; 7 8 namespace bogaudio { 9 10 struct EQ : BGModule { 11 enum ParamsIds { 12 LOW_PARAM, 13 MID_PARAM, 14 HIGH_PARAM, 15 NUM_PARAMS 16 }; 17 18 enum InputsIds { 19 IN_INPUT, 20 NUM_INPUTS 21 }; 22 23 enum OutputsIds { 24 OUT_OUTPUT, 25 NUM_OUTPUTS 26 }; 27 28 typedef bogaudio::dsp::Equalizer Engine; 29 30 float _lowDb = 0.0f; 31 float _midDb = 0.0f; 32 float _highDb = 0.0f; 33 Engine* _engines[maxChannels] {}; 34 35 EQ() { 36 config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS); 37 configParam<EQParamQuantity>(LOW_PARAM, -1.0f, 1.0f, 0.0f, "Low", " dB"); 38 configParam<EQParamQuantity>(MID_PARAM, -1.0f, 1.0f, 0.0f, "Mid", " dB"); 39 configParam<EQParamQuantity>(HIGH_PARAM, -1.0f, 1.0f, 0.0f, "High", " dB"); 40 configBypass(IN_INPUT, OUT_OUTPUT); 41 42 configInput(IN_INPUT, "Signal"); 43 44 configOutput(OUT_OUTPUT, "Signal"); 45 } 46 47 bool active() override; 48 int channels() override; 49 void addChannel(int c) override; 50 void removeChannel(int c) override; 51 float knobToDb(Param& p); 52 void modulate() override; 53 void modulateChannel(int c) override; 54 void processAll(const ProcessArgs& args) override; 55 void processChannel(const ProcessArgs& args, int c) override; 56 }; 57 58 } // namespace bogaudio