|
- #pragma once
-
- #include "bogaudio.hpp"
- #include "dsp/signal.hpp"
-
- using namespace bogaudio::dsp;
-
- extern Model* modelXFade;
-
- namespace bogaudio {
-
- struct XFade : Module {
- enum ParamsIds {
- MIX_PARAM,
- CURVE_PARAM,
- LINEAR_PARAM,
- NUM_PARAMS
- };
-
- enum InputsIds {
- MIX_INPUT,
- A_INPUT,
- B_INPUT,
- NUM_INPUTS
- };
-
- enum OutputsIds {
- OUT_OUTPUT,
- NUM_OUTPUTS
- };
-
- enum LightsIds {
- LINEAR_LIGHT,
- NUM_LIGHTS
- };
-
- bool _linear = false;
- float _mix = 0.0f;
- float _curveIn = -1.0f;
- SlewLimiter _mixSL;
- CrossFader _mixer;
-
- XFade() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {
- onSampleRateChange();
- }
-
- void onSampleRateChange() override;
- void step() override;
- };
-
- } // namespace bogaudio
|