|
- #pragma once
-
- #include "bogaudio.hpp"
- #include "disable_output_limit.hpp"
- #include "dsp/signal.hpp"
-
- using namespace bogaudio::dsp;
-
- extern Model* modelVCM;
-
- namespace bogaudio {
-
- struct VCM : DisableOutputLimitModule {
- enum ParamsIds {
- LEVEL1_PARAM,
- LEVEL2_PARAM,
- LEVEL3_PARAM,
- LEVEL4_PARAM,
- MIX_PARAM,
- LINEAR_PARAM,
- NUM_PARAMS
- };
-
- enum InputsIds {
- IN1_INPUT,
- CV1_INPUT,
- IN2_INPUT,
- CV2_INPUT,
- IN3_INPUT,
- CV3_INPUT,
- IN4_INPUT,
- CV4_INPUT,
- MIX_CV_INPUT,
- NUM_INPUTS
- };
-
- enum OutputsIds {
- MIX_OUTPUT,
- NUM_OUTPUTS
- };
-
- enum LightsIds {
- LINEAR_LIGHT,
- NUM_LIGHTS
- };
-
- Amplifier _amplifier1;
- Amplifier _amplifier2;
- Amplifier _amplifier3;
- Amplifier _amplifier4;
-
- VCM() : DisableOutputLimitModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {
- onReset();
- }
-
- void step() override;
- float channelStep(Input& input, Param& knob, Input& cv, Amplifier& amplifier, bool linear);
- };
-
- } // namespace bogaudio
|