BogaudioModules

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

AnalyzerXL.hpp (1268B)


      1 #pragma once
      2 
      3 #include "bogaudio.hpp"
      4 #include "analyzer_base.hpp"
      5 
      6 extern Model* modelAnalyzerXL;
      7 
      8 namespace bogaudio {
      9 
     10 struct AnalyzerXL : AnalyzerBase {
     11 	enum ParamsIds {
     12 		NUM_PARAMS
     13 	};
     14 
     15 	enum InputsIds {
     16 		SIGNALA_INPUT,
     17 		SIGNALB_INPUT,
     18 		SIGNALC_INPUT,
     19 		SIGNALD_INPUT,
     20 		SIGNALE_INPUT,
     21 		SIGNALF_INPUT,
     22 		SIGNALG_INPUT,
     23 		SIGNALH_INPUT,
     24 		NUM_INPUTS
     25 	};
     26 
     27 	enum OutputsIds {
     28 		NUM_OUTPUTS
     29 	};
     30 
     31 	float _sampleRate = 1000.0f;
     32 	float _smooth = 0.25f;
     33 	AnalyzerCore::Quality _quality = AnalyzerCore::QUALITY_GOOD;
     34 	AnalyzerCore::Window _window = AnalyzerCore::WINDOW_KAISER;
     35 
     36 	AnalyzerXL() : AnalyzerBase(8, NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {
     37 		configInput(SIGNALA_INPUT, "Signal A");
     38 		configInput(SIGNALB_INPUT, "Signal B");
     39 		configInput(SIGNALC_INPUT, "Signal C");
     40 		configInput(SIGNALD_INPUT, "Signal D");
     41 		configInput(SIGNALE_INPUT, "Signal E");
     42 		configInput(SIGNALF_INPUT, "Signal F");
     43 		configInput(SIGNALG_INPUT, "Signal G");
     44 		configInput(SIGNALH_INPUT, "Signal H");
     45 
     46 		_skinnable = false;
     47 	}
     48 
     49 	void reset() override;
     50 	void sampleRateChange() override;
     51 	json_t* saveToJson(json_t* root) override;
     52 	void loadFromJson(json_t* root) override;
     53 	void modulate() override;
     54 	void processAll(const ProcessArgs& args) override;
     55 };
     56 
     57 } // namespace bogaudio