* fixing behavior of red light in reverb VU meter * removed more unnecessary casts to float_4tags/v1.1.0^2
@@ -93,7 +93,7 @@ struct ABC : Module { | |||||
} | } | ||||
else { | else { | ||||
for (int c = 0; c < activeEngines; c += 4) | for (int c = 0; c < activeEngines; c += 4) | ||||
inC[c / 4] = float_4(10.f * mult_C); | |||||
inC[c / 4] = 10.f * mult_C; | |||||
} | } | ||||
for (int c = 0; c < activeEngines; c += 4) | for (int c = 0; c < activeEngines; c += 4) | ||||
@@ -102,7 +102,7 @@ struct EvenVCO : Module { | |||||
pw[c / 4] = rescale(clamp(pw[c / 4], -1.0f, 1.0f), -1.0f, 1.0f, 0.05f, 1.0f - 0.05f); | pw[c / 4] = rescale(clamp(pw[c / 4], -1.0f, 1.0f), -1.0f, 1.0f, 0.05f, 1.0f - 0.05f); | ||||
// Advance phase | // Advance phase | ||||
deltaPhase[c / 4] = clamp(freq[c / 4] * args.sampleTime, float_4(1e-6f), float_4(0.5f)); | |||||
deltaPhase[c / 4] = clamp(freq[c / 4] * args.sampleTime, 1e-6f, 0.5f); | |||||
oldPhase[c / 4] = phase[c / 4]; | oldPhase[c / 4] = phase[c / 4]; | ||||
phase[c / 4] += deltaPhase[c / 4]; | phase[c / 4] += deltaPhase[c / 4]; | ||||
} | } | ||||
@@ -16,7 +16,7 @@ struct PulseGenerator_4 { | |||||
simd::float_4 mask = (remaining > 0.f); | simd::float_4 mask = (remaining > 0.f); | ||||
remaining -= ifelse(mask, simd::float_4(deltaTime), 0.f); | |||||
remaining -= ifelse(mask, deltaTime, 0.f); | |||||
return ifelse(mask, simd::float_4::mask(), 0.f); | return ifelse(mask, simd::float_4::mask(), 0.f); | ||||
} | } | ||||
@@ -46,6 +46,7 @@ struct SpringReverb : Module { | |||||
dsp::VuMeter2 lightFilter; | dsp::VuMeter2 lightFilter; | ||||
dsp::ClockDivider lightRefreshClock; | dsp::ClockDivider lightRefreshClock; | ||||
const float brightnessIntervals[8] = {17.f, 14.f, 12.f, 9.f, 6.f, 0.f, -6.f, -12.f}; | |||||
SpringReverb() { | SpringReverb() { | ||||
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); | config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); | ||||
@@ -135,8 +136,6 @@ struct SpringReverb : Module { | |||||
if (lightRefreshClock.process()) { | if (lightRefreshClock.process()) { | ||||
float brightnessIntervals[8] = {14.f, 14.f, 12.f, 9.f, 6.f, 0.f, -6.f, -12.f}; | |||||
for (int i = 0; i < 7; i++) { | for (int i = 0; i < 7; i++) { | ||||
float brightness = vuFilter.getBrightness(brightnessIntervals[i + 1], brightnessIntervals[i]); | float brightness = vuFilter.getBrightness(brightnessIntervals[i + 1], brightnessIntervals[i]); | ||||
lights[VU1_LIGHTS + i].setBrightness(brightness); | lights[VU1_LIGHTS + i].setBrightness(brightness); | ||||