You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
693B

  1. #pragma once
  2. #include "bogaudio.hpp"
  3. #include "dsp/signal.hpp"
  4. using namespace bogaudio::dsp;
  5. extern Model* modelVU;
  6. namespace bogaudio {
  7. struct VU : Module {
  8. enum ParamsIds {
  9. NUM_PARAMS
  10. };
  11. enum InputsIds {
  12. L_INPUT,
  13. R_INPUT,
  14. NUM_INPUTS
  15. };
  16. enum OutputsIds {
  17. L_OUTPUT,
  18. R_OUTPUT,
  19. NUM_OUTPUTS
  20. };
  21. enum LightsIds {
  22. NUM_LIGHTS
  23. };
  24. RootMeanSquare _lRms;
  25. RootMeanSquare _rRms;
  26. float _lLevel = 0.0f;
  27. float _rLevel = 0.0f;
  28. VU() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {
  29. onSampleRateChange();
  30. _lRms.setSensitivity(0.05f);
  31. _rRms.setSensitivity(0.05f);
  32. }
  33. void onSampleRateChange() override;
  34. void step() override;
  35. };
  36. } // namespace bogaudio