|
- #include "common.hpp"
-
- using namespace rack;
-
- namespace rack_plugin_CastleRocktronics {
-
- struct Cubefader : Module {
- float z_1 = 0.0f;
- float z_2 = 0.0f;
- float aaFactor = 0.5f;
-
- enum Params { X_TRIMPOT, Y_TRIMPOT, Z_TRIMPOT, UNI_BI_TOGGLE, NUM_PARAMS };
-
- enum Inputs {
- INPUT_000,
- INPUT_100,
- INPUT_010,
- INPUT_110,
- INPUT_001,
- INPUT_101,
- INPUT_011,
- INPUT_111,
- X_CV,
- Y_CV,
- Z_CV,
- NUM_INPUTS
- };
-
- enum Outputs { OUTPUT, NUM_OUTPUTS };
-
- Cubefader() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, 0) {}
-
- void step() override;
-
- private:
- float linear(float x0, float x1, float xDist);
- float bilinear(float xy00, float xy10, float xy01, float xy11, float x,
- float y);
- float trilinear(float xyz000, float xyz100, float xyz010, float xyz110,
- float xyz001, float xyz101, float xyz011, float xyz111,
- float x, float y, float z);
-
- float antiAlias(float input);
-
- float rescaleInputUniPolar(Input input, Param trim);
- float rescaleInputBiPolar(Input input, Param trim);
- };
-
- } // namespace rack_plugin_CastleRocktronics
-
- using namespace rack_plugin_CastleRocktronics;
|