Browse Source

Change float literal style

tags/v1.0.1
Andrew Belt 6 years ago
parent
commit
7b08157d4d
4 changed files with 59 additions and 59 deletions
  1. +12
    -12
      src/Delay.cpp
  2. +16
    -16
      src/SEQ3.cpp
  3. +30
    -30
      src/Scope.cpp
  4. +1
    -1
      src/VCF.cpp

+ 12
- 12
src/Delay.cpp View File

@@ -28,16 +28,16 @@ struct Delay : Module {
dsp::DoubleRingBuffer<float, HISTORY_SIZE> historyBuffer;
dsp::DoubleRingBuffer<float, 16> outBuffer;
SRC_STATE *src;
float lastWet = 0.0f;
float lastWet = 0.f;
dsp::RCFilter lowpassFilter;
dsp::RCFilter highpassFilter;

Delay() {
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS);
params[TIME_PARAM].config(0.0f, 1.0f, 0.5f, "Time");
params[FEEDBACK_PARAM].config(0.0f, 1.0f, 0.5f, "Feedback");
params[COLOR_PARAM].config(0.0f, 1.0f, 0.5f, "Color");
params[MIX_PARAM].config(0.0f, 1.0f, 0.5f, "Mix", "%", 0, 100);
params[TIME_PARAM].config(0.f, 1.f, 0.5f, "Time");
params[FEEDBACK_PARAM].config(0.f, 1.f, 0.5f, "Feedback");
params[COLOR_PARAM].config(0.f, 1.f, 0.5f, "Color");
params[MIX_PARAM].config(0.f, 1.f, 0.5f, "Mix", "%", 0, 100);

src = src_new(SRC_SINC_FASTEST, 1, NULL);
assert(src);
@@ -50,11 +50,11 @@ struct Delay : Module {
void process(const ProcessArgs &args) override {
// Get input to delay block
float in = inputs[IN_INPUT].getVoltage();
float feedback = clamp(params[FEEDBACK_PARAM].getValue() + inputs[FEEDBACK_INPUT].getVoltage() / 10.0f, 0.0f, 1.0f);
float feedback = clamp(params[FEEDBACK_PARAM].getValue() + inputs[FEEDBACK_INPUT].getVoltage() / 10.f, 0.f, 1.f);
float dry = in + lastWet * feedback;

// Compute delay time in seconds
float delay = 1e-3 * std::pow(10.0f / 1e-3, clamp(params[TIME_PARAM].getValue() + inputs[TIME_INPUT].getVoltage() / 10.0f, 0.0f, 1.0f));
float delay = 1e-3 * std::pow(10.f / 1e-3, clamp(params[TIME_PARAM].getValue() + inputs[TIME_INPUT].getVoltage() / 10.f, 0.f, 1.f));
// Number of delay samples
float index = delay * args.sampleRate;

@@ -84,26 +84,26 @@ struct Delay : Module {
outBuffer.endIncr(srcData.output_frames_gen);
}

float wet = 0.0f;
float wet = 0.f;
if (!outBuffer.empty()) {
wet = outBuffer.shift();
}

// Apply color to delay wet output
// TODO Make it sound better
float color = clamp(params[COLOR_PARAM].getValue() + inputs[COLOR_INPUT].getVoltage() / 10.0f, 0.0f, 1.0f);
float lowpassFreq = 10000.0f * std::pow(10.0f, clamp(2.0f*color, 0.0f, 1.0f));
float color = clamp(params[COLOR_PARAM].getValue() + inputs[COLOR_INPUT].getVoltage() / 10.f, 0.f, 1.f);
float lowpassFreq = 10000.f * std::pow(10.f, clamp(2.f*color, 0.f, 1.f));
lowpassFilter.setCutoff(lowpassFreq / args.sampleRate);
lowpassFilter.process(wet);
wet = lowpassFilter.lowpass();
float highpassFreq = 10.0f * std::pow(100.0f, clamp(2.0f*color - 1.0f, 0.0f, 1.0f));
float highpassFreq = 10.f * std::pow(100.f, clamp(2.f*color - 1.f, 0.f, 1.f));
highpassFilter.setCutoff(highpassFreq / args.sampleRate);
highpassFilter.process(wet);
wet = highpassFilter.highpass();

lastWet = wet;

float mix = clamp(params[MIX_PARAM].getValue() + inputs[MIX_INPUT].getVoltage() / 10.0f, 0.0f, 1.0f);
float mix = clamp(params[MIX_PARAM].getValue() + inputs[MIX_INPUT].getVoltage() / 10.f, 0.f, 1.f);
float out = crossfade(in, wet, mix);
outputs[OUT_OUTPUT].setVoltage(out);
}


+ 16
- 16
src/SEQ3.cpp View File

@@ -49,15 +49,15 @@ struct SEQ3 : Module {

SEQ3() {
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS);
params[CLOCK_PARAM].config(-2.0f, 6.0f, 2.0f);
params[RUN_PARAM].config(0.0f, 1.0f, 0.0f);
params[RESET_PARAM].config(0.0f, 1.0f, 0.0f);
params[STEPS_PARAM].config(1.0f, 8.0f, 8.0f);
params[CLOCK_PARAM].config(-2.f, 6.f, 2.f);
params[RUN_PARAM].config(0.f, 1.f, 0.f);
params[RESET_PARAM].config(0.f, 1.f, 0.f);
params[STEPS_PARAM].config(1.f, 8.f, 8.f);
for (int i = 0; i < 8; i++) {
params[ROW1_PARAM + i].config(0.0f, 10.0f, 0.0f);
params[ROW2_PARAM + i].config(0.0f, 10.0f, 0.0f);
params[ROW3_PARAM + i].config(0.0f, 10.0f, 0.0f);
params[GATE_PARAM + i].config(0.0f, 1.0f, 0.0f);
params[ROW1_PARAM + i].config(0.f, 10.f, 0.f);
params[ROW2_PARAM + i].config(0.f, 10.f, 0.f);
params[ROW3_PARAM + i].config(0.f, 10.f, 0.f);
params[GATE_PARAM + i].config(0.f, 1.f, 0.f);
}


@@ -110,7 +110,7 @@ struct SEQ3 : Module {
}

void setIndex(int index) {
int numSteps = (int) clamp(std::round(params[STEPS_PARAM].getValue() + inputs[STEPS_INPUT].getVoltage()), 1.0f, 8.0f);
int numSteps = (int) clamp(std::round(params[STEPS_PARAM].getValue() + inputs[STEPS_INPUT].getVoltage()), 1.f, 8.f);
phase = 0.f;
this->index = index;
if (this->index >= numSteps)
@@ -134,9 +134,9 @@ struct SEQ3 : Module {
}
else {
// Internal clock
float clockTime = std::pow(2.0f, params[CLOCK_PARAM].getValue() + inputs[CLOCK_INPUT].getVoltage());
float clockTime = std::pow(2.f, params[CLOCK_PARAM].getValue() + inputs[CLOCK_INPUT].getVoltage());
phase += clockTime * args.sampleTime;
if (phase >= 1.0f) {
if (phase >= 1.f) {
setIndex(index + 1);
}
gateIn = (phase < 0.5f);
@@ -153,7 +153,7 @@ struct SEQ3 : Module {
if (gateTriggers[i].process(params[GATE_PARAM + i].getValue())) {
gates[i] = !gates[i];
}
outputs[GATE_OUTPUT + i].setVoltage((running && gateIn && i == index && gates[i]) ? 10.0f : 0.0f);
outputs[GATE_OUTPUT + i].setVoltage((running && gateIn && i == index && gates[i]) ? 10.f : 0.f);
lights[GATE_LIGHTS + i].setSmoothBrightness((gateIn && i == index) ? (gates[i] ? 1.f : 0.33) : (gates[i] ? 0.66 : 0.0), args.sampleTime);
}

@@ -161,13 +161,13 @@ struct SEQ3 : Module {
outputs[ROW1_OUTPUT].setVoltage(params[ROW1_PARAM + index].getValue());
outputs[ROW2_OUTPUT].setVoltage(params[ROW2_PARAM + index].getValue());
outputs[ROW3_OUTPUT].setVoltage(params[ROW3_PARAM + index].getValue());
outputs[GATES_OUTPUT].setVoltage((gateIn && gates[index]) ? 10.0f : 0.0f);
outputs[GATES_OUTPUT].setVoltage((gateIn && gates[index]) ? 10.f : 0.f);
lights[RUNNING_LIGHT].value = (running);
lights[RESET_LIGHT].setSmoothBrightness(resetTrigger.isHigh(), args.sampleTime);
lights[GATES_LIGHT].setSmoothBrightness(gateIn, args.sampleTime);
lights[ROW_LIGHTS].value = outputs[ROW1_OUTPUT].value / 10.0f;
lights[ROW_LIGHTS + 1].value = outputs[ROW2_OUTPUT].value / 10.0f;
lights[ROW_LIGHTS + 2].value = outputs[ROW3_OUTPUT].value / 10.0f;
lights[ROW_LIGHTS].value = outputs[ROW1_OUTPUT].value / 10.f;
lights[ROW_LIGHTS + 1].value = outputs[ROW2_OUTPUT].value / 10.f;
lights[ROW_LIGHTS + 2].value = outputs[ROW3_OUTPUT].value / 10.f;
}
};



+ 30
- 30
src/Scope.cpp View File

@@ -39,40 +39,40 @@ struct Scope : Module {
int bufferIndex = 0;
float frameIndex = 0;

dsp::SchmittTrigger sumTrigger;
dsp::SchmittTrigger extTrigger;
dsp::BooleanTrigger sumTrigger;
dsp::BooleanTrigger extTrigger;
bool lissajous = false;
bool external = false;
dsp::SchmittTrigger resetTrigger;

Scope() {
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS);
params[X_SCALE_PARAM].config(-2.0f, 8.0f, 0.0f);
params[X_POS_PARAM].config(-10.0f, 10.0f, 0.0f);
params[Y_SCALE_PARAM].config(-2.0f, 8.0f, 0.0f);
params[Y_POS_PARAM].config(-10.0f, 10.0f, 0.0f);
params[TIME_PARAM].config(6.0f, 16.0f, 14.0f);
params[LISSAJOUS_PARAM].config(0.0f, 1.0f, 0.0f);
params[TRIG_PARAM].config(-10.0f, 10.0f, 0.0f);
params[EXTERNAL_PARAM].config(0.0f, 1.0f, 0.0f);
params[X_SCALE_PARAM].config(-2.f, 8.f, 0.f);
params[X_POS_PARAM].config(-10.f, 10.f, 0.f);
params[Y_SCALE_PARAM].config(-2.f, 8.f, 0.f);
params[Y_POS_PARAM].config(-10.f, 10.f, 0.f);
params[TIME_PARAM].config(6.f, 16.f, 14.f);
params[LISSAJOUS_PARAM].config(0.f, 1.f, 0.f);
params[TRIG_PARAM].config(-10.f, 10.f, 0.f);
params[EXTERNAL_PARAM].config(0.f, 1.f, 0.f);
}

void process(const ProcessArgs &args) override {
// Modes
if (sumTrigger.process(params[LISSAJOUS_PARAM].getValue())) {
if (sumTrigger.process(params[LISSAJOUS_PARAM].getValue() > 0.f)) {
lissajous = !lissajous;
}
lights[PLOT_LIGHT].value = lissajous ? 0.0f : 1.0f;
lights[LISSAJOUS_LIGHT].value = lissajous ? 1.0f : 0.0f;
lights[PLOT_LIGHT].value = lissajous ? 0.f : 1.f;
lights[LISSAJOUS_LIGHT].value = lissajous ? 1.f : 0.f;

if (extTrigger.process(params[EXTERNAL_PARAM].getValue())) {
if (extTrigger.process(params[EXTERNAL_PARAM].getValue() > 0.f)) {
external = !external;
}
lights[INTERNAL_LIGHT].value = external ? 0.0f : 1.0f;
lights[EXTERNAL_LIGHT].value = external ? 1.0f : 0.0f;
lights[INTERNAL_LIGHT].value = external ? 0.f : 1.f;
lights[EXTERNAL_LIGHT].value = external ? 1.f : 0.f;

// Compute time
float deltaTime = std::pow(2.0f, -params[TIME_PARAM].getValue());
float deltaTime = std::pow(2.f, -params[TIME_PARAM].getValue());
int frameCount = (int) std::ceil(deltaTime * args.sampleRate);

// Add frame to buffer
@@ -151,7 +151,7 @@ struct ScopeDisplay : TransparentWidget {
float vmin = 0.f;
float vmax = 0.f;
void calculate(float *values) {
vrms = 0.0f;
vrms = 0.f;
vmax = -INFINITY;
vmin = INFINITY;
for (int i = 0; i < BUFFER_SIZE; i++) {
@@ -181,23 +181,23 @@ struct ScopeDisplay : TransparentWidget {
for (int i = 0; i < BUFFER_SIZE; i++) {
float x, y;
if (valuesY) {
x = valuesX[i] / 2.0f + 0.5f;
y = valuesY[i] / 2.0f + 0.5f;
x = valuesX[i] / 2.f + 0.5f;
y = valuesY[i] / 2.f + 0.5f;
}
else {
x = (float)i / (BUFFER_SIZE - 1);
y = valuesX[i] / 2.0f + 0.5f;
y = valuesX[i] / 2.f + 0.5f;
}
Vec p;
p.x = b.pos.x + b.size.x * x;
p.y = b.pos.y + b.size.y * (1.0f - y);
p.y = b.pos.y + b.size.y * (1.f - y);
if (i == 0)
nvgMoveTo(args.vg, p.x, p.y);
else
nvgLineTo(args.vg, p.x, p.y);
}
nvgLineCap(args.vg, NVG_ROUND);
nvgMiterLimit(args.vg, 2.0f);
nvgMiterLimit(args.vg, 2.f);
nvgStrokeWidth(args.vg, 1.5f);
nvgGlobalCompositeOperation(args.vg, NVG_LIGHTER);
nvgStroke(args.vg);
@@ -209,8 +209,8 @@ struct ScopeDisplay : TransparentWidget {
Rect b = Rect(Vec(0, 15), box.size.minus(Vec(0, 15*2)));
nvgScissor(args.vg, b.pos.x, b.pos.y, b.size.x, b.size.y);

value = value / 2.0f + 0.5f;
Vec p = Vec(box.size.x, b.pos.y + b.size.y * (1.0f - value));
value = value / 2.f + 0.5f;
Vec p = Vec(box.size.x, b.pos.y + b.size.y * (1.f - value));

// Draw line
nvgStrokeColor(args.vg, nvgRGBA(0xff, 0xff, 0xff, 0x10));
@@ -260,8 +260,8 @@ struct ScopeDisplay : TransparentWidget {
if (!module)
return;

float gainX = std::pow(2.0f, std::round(module->params[Scope::X_SCALE_PARAM].getValue()));
float gainY = std::pow(2.0f, std::round(module->params[Scope::Y_SCALE_PARAM].getValue()));
float gainX = std::pow(2.f, std::round(module->params[Scope::X_SCALE_PARAM].getValue()));
float gainY = std::pow(2.f, std::round(module->params[Scope::Y_SCALE_PARAM].getValue()));
float offsetX = module->params[Scope::X_POS_PARAM].getValue();
float offsetY = module->params[Scope::Y_POS_PARAM].getValue();

@@ -272,8 +272,8 @@ struct ScopeDisplay : TransparentWidget {
// Lock display to buffer if buffer update deltaTime <= 2^-11
if (module->lissajous)
j = (i + module->bufferIndex) % BUFFER_SIZE;
valuesX[i] = (module->bufferX[j] + offsetX) * gainX / 10.0f;
valuesY[i] = (module->bufferY[j] + offsetY) * gainY / 10.0f;
valuesX[i] = (module->bufferX[j] + offsetX) * gainX / 10.f;
valuesY[i] = (module->bufferY[j] + offsetY) * gainY / 10.f;
}

// Draw waveforms
@@ -297,7 +297,7 @@ struct ScopeDisplay : TransparentWidget {
drawWaveform(args, valuesX, NULL);
}

float valueTrig = (module->params[Scope::TRIG_PARAM].getValue() + offsetX) * gainX / 10.0f;
float valueTrig = (module->params[Scope::TRIG_PARAM].getValue() + offsetX) * gainX / 10.f;
drawTrig(args, valueTrig);
}



+ 1
- 1
src/VCF.cpp View File

@@ -7,7 +7,7 @@ static float clip(float x) {

struct LadderFilter {
float omega0;
float resonance = 1.0f;
float resonance = 1.f;
float state[4];
float input;
float lowpass;


Loading…
Cancel
Save