BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

EQS.hpp (1461B)


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