|
- #pragma once
-
- #include "bogaudio.hpp"
- #include "mixer.hpp"
- #include "dsp/signal.hpp"
-
- using namespace bogaudio::dsp;
-
- extern Model* modelMix8;
-
- namespace bogaudio {
-
- struct Mix8 : Module {
- enum ParamsIds {
- LEVEL1_PARAM,
- MUTE1_PARAM,
- PAN1_PARAM,
- LEVEL2_PARAM,
- MUTE2_PARAM,
- PAN2_PARAM,
- LEVEL3_PARAM,
- MUTE3_PARAM,
- PAN3_PARAM,
- LEVEL4_PARAM,
- MUTE4_PARAM,
- PAN4_PARAM,
- LEVEL5_PARAM,
- MUTE5_PARAM,
- PAN5_PARAM,
- LEVEL6_PARAM,
- MUTE6_PARAM,
- PAN6_PARAM,
- LEVEL7_PARAM,
- MUTE7_PARAM,
- PAN7_PARAM,
- LEVEL8_PARAM,
- MUTE8_PARAM,
- PAN8_PARAM,
- MIX_PARAM,
- NUM_PARAMS
- };
-
- enum InputsIds {
- CV1_INPUT,
- PAN1_INPUT,
- IN1_INPUT,
- CV2_INPUT,
- PAN2_INPUT,
- IN2_INPUT,
- CV3_INPUT,
- PAN3_INPUT,
- IN3_INPUT,
- CV4_INPUT,
- PAN4_INPUT,
- IN4_INPUT,
- CV5_INPUT,
- PAN5_INPUT,
- IN5_INPUT,
- CV6_INPUT,
- PAN6_INPUT,
- IN6_INPUT,
- CV7_INPUT,
- PAN7_INPUT,
- IN7_INPUT,
- CV8_INPUT,
- PAN8_INPUT,
- IN8_INPUT,
- MIX_CV_INPUT,
- NUM_INPUTS
- };
-
- enum OutputsIds {
- L_OUTPUT,
- R_OUTPUT,
- NUM_OUTPUTS
- };
-
- enum LightsIds {
- NUM_LIGHTS
- };
-
- MixerChannel _channel1;
- MixerChannel _channel2;
- MixerChannel _channel3;
- MixerChannel _channel4;
- MixerChannel _channel5;
- MixerChannel _channel6;
- MixerChannel _channel7;
- MixerChannel _channel8;
- Amplifier _amplifier;
- SlewLimiter _slewLimiter;
- Saturator _saturator;
- RootMeanSquare _rms;
- float _rmsLevel = 0.0f;
-
- Mix8()
- : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS)
- , _channel1(params[LEVEL1_PARAM], params[PAN1_PARAM], params[MUTE1_PARAM], inputs[IN1_INPUT], inputs[CV1_INPUT], inputs[PAN1_INPUT])
- , _channel2(params[LEVEL2_PARAM], params[PAN2_PARAM], params[MUTE2_PARAM], inputs[IN2_INPUT], inputs[CV2_INPUT], inputs[PAN2_INPUT])
- , _channel3(params[LEVEL3_PARAM], params[PAN3_PARAM], params[MUTE3_PARAM], inputs[IN3_INPUT], inputs[CV3_INPUT], inputs[PAN3_INPUT])
- , _channel4(params[LEVEL4_PARAM], params[PAN4_PARAM], params[MUTE4_PARAM], inputs[IN4_INPUT], inputs[CV4_INPUT], inputs[PAN4_INPUT])
- , _channel5(params[LEVEL5_PARAM], params[PAN5_PARAM], params[MUTE5_PARAM], inputs[IN5_INPUT], inputs[CV4_INPUT], inputs[PAN5_INPUT])
- , _channel6(params[LEVEL6_PARAM], params[PAN6_PARAM], params[MUTE6_PARAM], inputs[IN6_INPUT], inputs[CV4_INPUT], inputs[PAN6_INPUT])
- , _channel7(params[LEVEL7_PARAM], params[PAN7_PARAM], params[MUTE7_PARAM], inputs[IN7_INPUT], inputs[CV4_INPUT], inputs[PAN7_INPUT])
- , _channel8(params[LEVEL8_PARAM], params[PAN8_PARAM], params[MUTE8_PARAM], inputs[IN8_INPUT], inputs[CV4_INPUT], inputs[PAN8_INPUT])
- {
- onSampleRateChange();
- _rms.setSensitivity(0.05f);
- }
-
- void onSampleRateChange() override;
- void step() override;
- };
-
- } // namespace bogaudio
|