BogaudioModules

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

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