|
- #pragma once
-
- #include "bogaudio.hpp"
- #include "dsp/signal.hpp"
-
- using namespace bogaudio::dsp;
-
- extern Model* modelVCA;
-
- namespace bogaudio {
-
- struct VCA : Module {
- enum ParamsIds {
- LEVEL1_PARAM,
- LEVEL2_PARAM,
- LINEAR_PARAM,
- NUM_PARAMS
- };
-
- enum InputsIds {
- CV1_INPUT,
- IN1_INPUT,
- CV2_INPUT,
- IN2_INPUT,
- NUM_INPUTS
- };
-
- enum OutputsIds {
- OUT1_OUTPUT,
- OUT2_OUTPUT,
- NUM_OUTPUTS
- };
-
- enum LightsIds {
- LINEAR_LIGHT,
- NUM_LIGHTS
- };
-
- Amplifier _amplifier1;
- SlewLimiter _levelSL1;
- Amplifier _amplifier2;
- SlewLimiter _levelSL2;
-
- VCA() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {
- onSampleRateChange();
- }
-
- void onSampleRateChange() override;
- void step() override;
- void channelStep(Input& input, Output& output, Param& knob, Input& cv, Amplifier& amplifier, SlewLimiter& levelSL, bool linear);
- };
-
- } // namespace bogaudio
|