#pragma once #include "bogaudio.hpp" #include "dsp/pitch.hpp" using namespace bogaudio::dsp; extern Model* modelStack; namespace bogaudio { struct Stack : Module { enum ParamsIds { SEMIS_PARAM, OCTAVE_PARAM, FINE_PARAM, QUANTIZE_PARAM, NUM_PARAMS }; enum InputsIds { CV_INPUT, IN_INPUT, NUM_INPUTS }; enum OutputsIds { THRU_OUTPUT, OUT_OUTPUT, NUM_OUTPUTS }; enum LightsIds { QUANTIZE_LIGHT, NUM_LIGHTS }; const float _minCVOut = semitoneToCV(24.0); // C1 const float _maxCVOut = semitoneToCV(120.0); // C9 float _semitones = -1000.0f; float _inCV = -1000.0f; float _fine = -1000.0f; float _outCV; Stack() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { } void step() override; }; } // namespace bogaudio