| 60 | const float brightnessIntervals[8] = {17.f, 14.f, 12.f, 9.f, 6.f, 0.f, -6.f, -12.f}; |
| 61 | |
| 62 | SpringReverb() { |
| 63 | config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); |
| 64 | configParam(WET_PARAM, 0.0, 1.0, 0.5, "Dry/wet", "%", 0, 100); |
| 65 | configParam(LEVEL1_PARAM, 0.0, 1.0, 0.0, "In 1 level", "%", 0, 100); |
| 66 | configParam(LEVEL2_PARAM, 0.0, 1.0, 0.0, "In 2 level", "%", 0, 100); |
| 67 | configParam(HPF_PARAM, 0.0, 1.0, 0.5, "High pass filter cutoff"); |
| 68 | |
| 69 | configInput(CV1_INPUT, "CV 1"); |
| 70 | configInput(CV2_INPUT, "CV 2"); |
| 71 | configInput(IN1_INPUT, "In 1"); |
| 72 | configInput(IN2_INPUT, "In 2"); |
| 73 | configInput(MIX_CV_INPUT, "Mix CV"); |
| 74 | |
| 75 | configOutput(MIX_OUTPUT, "Mix"); |
| 76 | configOutput(WET_OUTPUT, "Wet"); |
| 77 | |
| 78 | initIR(); |
| 79 | |
| 80 | convolver = new dsp::RealTimeConvolver(BLOCK_SIZE); |
| 81 | |
| 82 | const float* kernel = (const float*) ir.data(); |
| 83 | size_t kernelLen = ir.size() / sizeof(float); |
| 84 | convolver->setKernel(kernel, kernelLen); |
| 85 | |
| 86 | vuFilter.mode = dsp::VuMeter2::PEAK; |
| 87 | lightFilter.mode = dsp::VuMeter2::PEAK; |
| 88 | |
| 89 | lightRefreshClock.setDivision(32); |
| 90 | } |
| 91 | |
| 92 | ~SpringReverb() { |
| 93 | delete convolver; |