BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

commit 26984e314886a22f0a5960e90041b560fbe88266
parent bfc86042f14425e4c501129f915d2894365c571f
Author: Matt Demanett <matt@demanett.net>
Date:   Mon, 10 Jun 2019 00:20:01 -0400

v1: fix param labels.

Diffstat:
Msrc/AD.hpp | 4++--
Msrc/ADSR.hpp | 6+++---
Msrc/AddrSeq.hpp | 16++++++++--------
Msrc/Cmp.hpp | 8++++----
Msrc/DADSRH.hpp | 10+++++-----
Msrc/DADSRHPlus.hpp | 10+++++-----
Msrc/DGate.hpp | 4++--
Msrc/EightFO.hpp | 2+-
Msrc/FMOp.hpp | 6+++---
Msrc/LFO.hpp | 2+-
Msrc/LLFO.hpp | 2+-
Msrc/Offset.hpp | 2+-
Msrc/Pressor.hpp | 4++--
Msrc/Shaper.hpp | 8++++----
Msrc/ShaperPlus.hpp | 8++++----
Msrc/Slew.hpp | 4++--
Msrc/Walk.hpp | 2+-
Msrc/Walk2.hpp | 4++--
Msrc/analyzer_base.cpp | 2+-
Asrc/param_quantities.hpp | 145+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
20 files changed, 197 insertions(+), 52 deletions(-)

diff --git a/src/AD.hpp b/src/AD.hpp @@ -53,8 +53,8 @@ struct AD : Module { AD() { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.141421f, "Attack", "s"); - configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", "s"); + configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.141421f, "Attack", " s"); + configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", " s"); configParam(LOOP_PARAM, 0.0f, 1.0f, 0.0f, "Loop"); configParam(LINEAR_PARAM, 0.0f, 1.0f, 0.0f, "Linear"); diff --git a/src/ADSR.hpp b/src/ADSR.hpp @@ -44,10 +44,10 @@ struct ADSR : Module { ADSR() { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.141421f, "Attack", "s"); - configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", "s"); + configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.141421f, "Attack", " s"); + configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", " s"); configParam(SUSTAIN_PARAM, 0.0f, 1.0f, 1.0f, "Sustain", "%", 0.0f, 100.0f); - configParam<EnvelopeSegmentParamQuantity>(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "Release", "s"); + configParam<EnvelopeSegmentParamQuantity>(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "Release", " s"); configParam(LINEAR_PARAM, 0.0f, 1.0f, 0.0f, "Linear"); onReset(); diff --git a/src/AddrSeq.hpp b/src/AddrSeq.hpp @@ -61,14 +61,14 @@ struct AddrSeq : Module { configParam(STEPS_PARAM, 1.0f, 8.0f, 8.0f, "Steps"); configParam(DIRECTION_PARAM, 0.0f, 1.0f, 1.0f, "Direction"); configParam(SELECT_PARAM, 0.0f, 7.0f, 0.0f, "Select step"); - configParam(OUT1_PARAM, -1.0f, 1.0f, 0.0f, "Step 1", "V", 0.0f, 10.0f); - configParam(OUT2_PARAM, -1.0f, 1.0f, 0.0f, "Step 2", "V", 0.0f, 10.0f); - configParam(OUT3_PARAM, -1.0f, 1.0f, 0.0f, "Step 3", "V", 0.0f, 10.0f); - configParam(OUT4_PARAM, -1.0f, 1.0f, 0.0f, "Step 4", "V", 0.0f, 10.0f); - configParam(OUT5_PARAM, -1.0f, 1.0f, 0.0f, "Step 5", "V", 0.0f, 10.0f); - configParam(OUT6_PARAM, -1.0f, 1.0f, 0.0f, "Step 6", "V", 0.0f, 10.0f); - configParam(OUT7_PARAM, -1.0f, 1.0f, 0.0f, "Step 7", "V", 0.0f, 10.0f); - configParam(OUT8_PARAM, -1.0f, 1.0f, 0.0f, "Step 8", "V", 0.0f, 10.0f); + configParam(OUT1_PARAM, -1.0f, 1.0f, 0.0f, "Step 1", " V", 0.0f, 10.0f); + configParam(OUT2_PARAM, -1.0f, 1.0f, 0.0f, "Step 2", " V", 0.0f, 10.0f); + configParam(OUT3_PARAM, -1.0f, 1.0f, 0.0f, "Step 3", " V", 0.0f, 10.0f); + configParam(OUT4_PARAM, -1.0f, 1.0f, 0.0f, "Step 4", " V", 0.0f, 10.0f); + configParam(OUT5_PARAM, -1.0f, 1.0f, 0.0f, "Step 5", " V", 0.0f, 10.0f); + configParam(OUT6_PARAM, -1.0f, 1.0f, 0.0f, "Step 6", " V", 0.0f, 10.0f); + configParam(OUT7_PARAM, -1.0f, 1.0f, 0.0f, "Step 7", " V", 0.0f, 10.0f); + configParam(OUT8_PARAM, -1.0f, 1.0f, 0.0f, "Step 8", " V", 0.0f, 10.0f); onReset(); onSampleRateChange(); diff --git a/src/Cmp.hpp b/src/Cmp.hpp @@ -50,10 +50,10 @@ struct Cmp : Module { Cmp() { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - configParam(A_PARAM, -1.0f, 1.0f, 0.0f, "A", "V", 0.0f, 10.0f); - configParam(B_PARAM, -1.0f, 1.0f, 0.0f, "B", "V", 0.0f, 10.0f); - configParam(WINDOW_PARAM, 0.0f, 1.0f, 0.5f, "Window", "V", 0.0f, 10.0f); - configParam<ScaledSquaringParamQuantity<1>>(LAG_PARAM, 0.0f, 1.0f, 0.1f, "Lag", "s"); + configParam(A_PARAM, -1.0f, 1.0f, 0.0f, "A", " V", 0.0f, 10.0f); + configParam(B_PARAM, -1.0f, 1.0f, 0.0f, "B", " V", 0.0f, 10.0f); + configParam(WINDOW_PARAM, 0.0f, 1.0f, 0.5f, "Window", " V", 0.0f, 10.0f); + configParam<ScaledSquaringParamQuantity<1>>(LAG_PARAM, 0.0f, 1.0f, 0.1f, "Lag", " s"); configParam(OUTPUT_PARAM, 0.0f, 1.0f, 0.0f, "Output"); onReset(); diff --git a/src/DADSRH.hpp b/src/DADSRH.hpp @@ -115,12 +115,12 @@ struct DADSRH : TriggerOnLoadModule { _triggerOnLoad, _shouldTriggerOnLoad ) { - configParam<EnvelopeSegmentParamQuantity>(DELAY_PARAM, 0.0f, 1.0f, 0.0f, "Delay", "s"); - configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.14142f, "Attack", "s"); - configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", "s"); + configParam<EnvelopeSegmentParamQuantity>(DELAY_PARAM, 0.0f, 1.0f, 0.0f, "Delay", " s"); + configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.14142f, "Attack", " s"); + configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", " s"); configParam(SUSTAIN_PARAM, 0.0f, 1.0f, 0.5f, "Sustain", "%", 0.0f, 100.0f); - configParam<EnvelopeSegmentParamQuantity>(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "Release", "s"); - configParam<EnvelopeSegmentParamQuantity>(HOLD_PARAM, 0.0f, 1.0f, 0.44721f, "Hold", "s"); + configParam<EnvelopeSegmentParamQuantity>(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "Release", " s"); + configParam<EnvelopeSegmentParamQuantity>(HOLD_PARAM, 0.0f, 1.0f, 0.44721f, "Hold", " s"); configParam(ATTACK_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "Attack shape"); configParam(DECAY_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "Decay shape"); configParam(RELEASE_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "Release shape"); diff --git a/src/DADSRHPlus.hpp b/src/DADSRHPlus.hpp @@ -126,12 +126,12 @@ struct DADSRHPlus : TriggerOnLoadModule { _triggerOnLoad, _shouldTriggerOnLoad ) { - configParam<EnvelopeSegmentParamQuantity>(DELAY_PARAM, 0.0f, 1.0f, 0.0f, "Delay", "s"); - configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.14142f, "Attack", "s"); - configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", "s"); + configParam<EnvelopeSegmentParamQuantity>(DELAY_PARAM, 0.0f, 1.0f, 0.0f, "Delay", " s"); + configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.14142f, "Attack", " s"); + configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", " s"); configParam(SUSTAIN_PARAM, 0.0f, 1.0f, 0.5f, "Sustain", "%", 0.0f, 100.0f); - configParam<EnvelopeSegmentParamQuantity>(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "Release", "s"); - configParam<EnvelopeSegmentParamQuantity>(HOLD_PARAM, 0.0f, 1.0f, 0.44721f, "Hold", "s"); + configParam<EnvelopeSegmentParamQuantity>(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "Release", " s"); + configParam<EnvelopeSegmentParamQuantity>(HOLD_PARAM, 0.0f, 1.0f, 0.44721f, "Hold", " s"); configParam(ATTACK_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "Attack shape"); configParam(DECAY_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "Decay shape"); configParam(RELEASE_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "Release shape"); diff --git a/src/DGate.hpp b/src/DGate.hpp @@ -45,8 +45,8 @@ struct DGate : TriggerOnLoadModule { float _stageProgress; DGate() : TriggerOnLoadModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { - configParam<EnvelopeSegmentParamQuantity>(DELAY_PARAM, 0.0f, 1.0f, 0.0f, "Delay", "s"); - configParam<EnvelopeSegmentParamQuantity>(GATE_PARAM, 0.0f, 1.0f, 0.31623f, "Gate", "s"); + configParam<EnvelopeSegmentParamQuantity>(DELAY_PARAM, 0.0f, 1.0f, 0.0f, "Delay", " s"); + configParam<EnvelopeSegmentParamQuantity>(GATE_PARAM, 0.0f, 1.0f, 0.31623f, "Gate", " s"); configParam(LOOP_PARAM, 0.0f, 1.0f, 1.0f, "Loop"); configParam(TRIGGER_PARAM, 0.0f, 1.0f, 0.0f, "Trigger"); diff --git a/src/EightFO.hpp b/src/EightFO.hpp @@ -120,7 +120,7 @@ struct EightFO : LFOBase { configParam(WAVE_PARAM, 1.0, 5.0, 3.0, "Waveform"); configParam(SLOW_PARAM, 0.0, 1.0, 0.0, "Slow"); configParam(SAMPLE_PWM_PARAM, -1.0, 1.0, 0.0, "Width", "%", 0.0f, 100.0f); - configParam(OFFSET_PARAM, -1.0, 1.0, 0.0, "Offset", "V", 0.0f, 5.0f); + configParam(OFFSET_PARAM, -1.0, 1.0, 0.0, "Offset", " V", 0.0f, 5.0f); configParam(SCALE_PARAM, 0.0, 1.0, 1.0, "Scale", "%", 0.0f, 100.0f); configParam(PHASE7_PARAM, -1.0, 1.0, 0.0, "Phase 315", "º", 0.0f, 180.0f); configParam(PHASE6_PARAM, -1.0, 1.0, 0.0, "Phase 270", "º", 0.0f, 180.0f); diff --git a/src/FMOp.hpp b/src/FMOp.hpp @@ -89,10 +89,10 @@ struct FMOp : Module { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); configParam<FMOpRatioParamQuantity>(RATIO_PARAM, -1.0f, 1.0f, 0.0f, "Frequency ratio"); configParam(FINE_PARAM, -1.0f, 1.0f, 0.0f, "Fine tune", " cents", 0.0f, 100.0f); - configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.141421f, "Attack", "s"); - configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", "s"); + configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.141421f, "Attack", " s"); + configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", " s"); configParam(SUSTAIN_PARAM, 0.0f, 1.0f, 1.0f, "Sustain", "%", 0.0f, 100.0f); - configParam<EnvelopeSegmentParamQuantity>(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "Release", "s"); + configParam<EnvelopeSegmentParamQuantity>(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "Release", " s"); configParam(DEPTH_PARAM, 0.0f, 1.0f, 0.0f, "FM depth", "%", 0.0f, 100.0f); configParam(FEEDBACK_PARAM, 0.0f, 1.0f, 0.0f, "Feedback", "%", 0.0f, 100.0f); configParam<FMOpLevelParamQuantity>(LEVEL_PARAM, 0.0f, 1.0f, 1.0f, "Level"); diff --git a/src/LFO.hpp b/src/LFO.hpp @@ -77,7 +77,7 @@ struct LFO : LFOBase { configParam(SLOW_PARAM, 0.0f, 1.0f, 0.0f, "Slow"); configParam(SAMPLE_PARAM, 0.0f, 1.0f, 0.0f, "Output sampling", "%", 0.0f, 100.0f); configParam(PW_PARAM, -1.0f, 1.0f, 0.0f, "Pulse width", "%", 0.0f, 100.0f*0.5f*(1.0f - 2.0f * _square.minPulseWidth), 50.0f); - configParam(OFFSET_PARAM, -1.0f, 1.0f, 0.0f, "Offset", "V", 0.0f, 5.0f); + configParam(OFFSET_PARAM, -1.0f, 1.0f, 0.0f, "Offset", " V", 0.0f, 5.0f); configParam(SCALE_PARAM, 0.0f, 1.0f, 1.0f, "Scale", "%", 0.0f, 100.0f); onReset(); diff --git a/src/LLFO.hpp b/src/LLFO.hpp @@ -75,7 +75,7 @@ struct LLFO : LFOBase { configParam<LFOFrequencyParamQuantity>(FREQUENCY_PARAM, -8.0f, 5.0f, 0.0f, "Frequency", " Hz"); configParam(WAVE_PARAM, 0.0f, 5.0f, 0.0f, "Waveform"); configParam(SLOW_PARAM, 0.0f, 1.0f, 0.0f, "Slow mode"); - configParam(OFFSET_PARAM, -1.0f, 1.0f, 0.0f, "Offset", "V", 0.0f, 5.0f); + configParam(OFFSET_PARAM, -1.0f, 1.0f, 0.0f, "Offset", " V", 0.0f, 5.0f); configParam(SCALE_PARAM, 0.0f, 1.0f, 1.0f, "Scale", "%", 0.0f, 100.0f); onReset(); diff --git a/src/Offset.hpp b/src/Offset.hpp @@ -27,7 +27,7 @@ struct Offset : DisableOutputLimitModule { }; Offset() : DisableOutputLimitModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) { - configParam(OFFSET_PARAM, -1.0f, 1.0f, 0.0f, "Offset", "V", 0.0f, 5.0f); + configParam(OFFSET_PARAM, -1.0f, 1.0f, 0.0f, "Offset", " V", 0.0f, 5.0f); configParam(SCALE_PARAM, -1.0f, 1.0f, 0.316f, "Scale", "%", 0.0f, 100.0f); } diff --git a/src/Pressor.hpp b/src/Pressor.hpp @@ -78,8 +78,8 @@ struct Pressor : Module { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); configParam(THRESHOLD_PARAM, 0.0f, 1.0f, 0.8f, "Threshold", " dB", 0.0f, 30.0f, -24.0f); configParam<DynamicsRatioParamQuantity>(RATIO_PARAM, 0.0f, 1.0f, 0.55159f, "Ratio"); - configParam<ScaledSquaringParamQuantity<500>>(ATTACK_PARAM, 0.0f, 1.0f, 0.31623f, "Attack", "ms"); - configParam<ScaledSquaringParamQuantity<2>>(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "Release", "s"); + configParam<ScaledSquaringParamQuantity<500>>(ATTACK_PARAM, 0.0f, 1.0f, 0.31623f, "Attack", " ms"); + configParam<ScaledSquaringParamQuantity<2>>(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "Release", " s"); configParam(OUTPUT_GAIN_PARAM, 0.0f, 1.0f, 0.0f, "Output gain", " dB", 0.0f, 24.0f); configParam(INPUT_GAIN_PARAM, -1.0f, 1.0f, 0.0f, "Input gain", " dB", 0.0f, 12.0f); configParam(DETECTOR_MIX_PARAM, -1.0f, 1.0f, 0.0f, "Detector mix", "%", 0.0f, 100.0f); diff --git a/src/Shaper.hpp b/src/Shaper.hpp @@ -89,10 +89,10 @@ struct Shaper : TriggerOnLoadModule { _shouldTriggerOnLoad ) { - configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.14142f, "Attack", "s"); - configParam<EnvelopeSegmentParamQuantity>(ON_PARAM, 0.0f, 1.0f, 0.31623f, "On", "s"); - configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", "s"); - configParam<EnvelopeSegmentParamQuantity>(OFF_PARAM, 0.0f, 1.0f, 0.07071f, "Off", "s"); + configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.14142f, "Attack", " s"); + configParam<EnvelopeSegmentParamQuantity>(ON_PARAM, 0.0f, 1.0f, 0.31623f, "On", " s"); + configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", " s"); + configParam<EnvelopeSegmentParamQuantity>(OFF_PARAM, 0.0f, 1.0f, 0.07071f, "Off", " s"); configParam(ENV_PARAM, 0.0f, 1.0f, 1.0f, "Env", "%", 0.0f, 100.0f); configParam(SIGNAL_PARAM, 0.0f, 1.0f, 0.1f, "Signal", "x", 10.0f); configParam(TRIGGER_PARAM, 0.0f, 1.0f, 0.0f, "Trigger"); diff --git a/src/ShaperPlus.hpp b/src/ShaperPlus.hpp @@ -96,10 +96,10 @@ struct ShaperPlus : TriggerOnLoadModule { _shouldTriggerOnLoad ) { - configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.14142f, "Attack", "s"); - configParam<EnvelopeSegmentParamQuantity>(ON_PARAM, 0.0f, 1.0f, 0.31623f, "On", "s"); - configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", "s"); - configParam<EnvelopeSegmentParamQuantity>(OFF_PARAM, 0.0f, 1.0f, 0.07071f, "Off", "s"); + configParam<EnvelopeSegmentParamQuantity>(ATTACK_PARAM, 0.0f, 1.0f, 0.14142f, "Attack", " s"); + configParam<EnvelopeSegmentParamQuantity>(ON_PARAM, 0.0f, 1.0f, 0.31623f, "On", " s"); + configParam<EnvelopeSegmentParamQuantity>(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "Decay", " s"); + configParam<EnvelopeSegmentParamQuantity>(OFF_PARAM, 0.0f, 1.0f, 0.07071f, "Off", " s"); configParam(ENV_PARAM, 0.0f, 1.0f, 1.0f, "Env", "%", 0.0f, 100.0f); configParam(SIGNAL_PARAM, 0.0f, 1.0f, 0.1f, "Signal", "x", 10.0f); configParam(TRIGGER_PARAM, 0.0f, 1.0f, 0.0f, "Trigger"); diff --git a/src/Slew.hpp b/src/Slew.hpp @@ -43,9 +43,9 @@ struct Slew : Module { Slew() { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - configParam<EnvelopeSegmentParamQuantity>(RISE_PARAM, 0.0f, 1.0f, 0.31623f, "Rise", "s"); + configParam<EnvelopeSegmentParamQuantity>(RISE_PARAM, 0.0f, 1.0f, 0.31623f, "Rise", " s"); configParam(RISE_SHAPE_PARAM, -1.0f, 1.0f, 0.0f, "Rise shape"); - configParam<EnvelopeSegmentParamQuantity>(FALL_PARAM, 0.0f, 1.0f, 0.31623f, "Fall", "s"); + configParam<EnvelopeSegmentParamQuantity>(FALL_PARAM, 0.0f, 1.0f, 0.31623f, "Fall", " s"); configParam(FALL_SHAPE_PARAM, -1.0f, 1.0f, 0.0f, "Fall shape"); onReset(); diff --git a/src/Walk.hpp b/src/Walk.hpp @@ -46,7 +46,7 @@ struct Walk : Module { Walk() { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); configParam(RATE_PARAM, 0.0f, 1.0f, 0.1f, "Rate", "%", 0.0f, 100.0f); - configParam(OFFSET_PARAM, -1.0f, 1.0f, 0.0f, "Offset", "V", 0.0f, 5.0f); + configParam(OFFSET_PARAM, -1.0f, 1.0f, 0.0f, "Offset", " V", 0.0f, 5.0f); configParam(SCALE_PARAM, 0.0f, 1.0f, 1.0f, "Scale", "%", 0.0f, 100.0f); onReset(); diff --git a/src/Walk2.hpp b/src/Walk2.hpp @@ -80,8 +80,8 @@ struct Walk2 : Module { config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); configParam(RATE_X_PARAM, 0.0f, 1.0f, 0.1f, "Rate X", "%", 0.0f, 100.0f); configParam(RATE_Y_PARAM, 0.0f, 1.0f, 0.1f, "Rate Y", "%", 0.0f, 100.0f); - configParam(OFFSET_X_PARAM, -1.0f, 1.0f, 0.0f, "Offset X", "V", 0.0f, 5.0f); - configParam(OFFSET_Y_PARAM, -1.0f, 1.0f, 0.0f, "Offset Y", "V", 0.0f, 5.0f); + configParam(OFFSET_X_PARAM, -1.0f, 1.0f, 0.0f, "Offset X", " V", 0.0f, 5.0f); + configParam(OFFSET_Y_PARAM, -1.0f, 1.0f, 0.0f, "Offset Y", " V", 0.0f, 5.0f); configParam(SCALE_X_PARAM, 0.0f, 1.0f, 1.0f, "Scale X", "%", 0.0f, 100.0f); configParam(SCALE_Y_PARAM, 0.0f, 1.0f, 1.0f, "Scale Y", "%", 0.0f, 100.0f); diff --git a/src/analyzer_base.cpp b/src/analyzer_base.cpp @@ -401,7 +401,7 @@ void AnalyzerDisplay::drawXAxis(const DrawArgs& args, float strokeWidth, float r hz += 100000.0; } - drawText(args, "Hz", _insetLeft, _size.y - 2); + drawText(args, " Hz", _insetLeft, _size.y - 2); if (rangeMinHz <= 100.0f) { float x = (100.0 - rangeMinHz) / (rangeMaxHz - rangeMinHz); x = powf(x, _xAxisLogFactor); diff --git a/src/param_quantities.hpp b/src/param_quantities.hpp @@ -0,0 +1,145 @@ +#pragma once + +#include "rack.hpp" + +#include "dsp/pitch.hpp" +#include "signal.hpp" + +using namespace rack; + +extern Plugin *pluginInstance; + +namespace bogaudio { + +template <int scale> +struct ScaledSquaringParamQuantity : ParamQuantity { + float getDisplayValue() override { + float v = getValue(); + if (!module) { + return v; + } + + v *= v; + v *= (float)scale; + return v; + } + + void setDisplayValue(float displayValue) override { + if (!module) { + return; + } + displayValue /= (float)scale; + displayValue = powf(displayValue, 0.5f); + setValue(displayValue); + } +}; + +typedef ScaledSquaringParamQuantity<10> TenXSquaringParamQuantity; + +typedef TenXSquaringParamQuantity EnvelopeSegmentParamQuantity; + +struct AmpliferParamQuantity : ParamQuantity { + virtual bool isLinear() { + return false; + } + + virtual void setUnits(bool linear) { + if (linear) { + unit = ""; + } + else { + unit = " dB"; + } + } + + float getDisplayValue() override { + float v = getValue(); + if (!module) { + return v; + } + + if (!isLinear()) { + v = 1.0f - v; + v *= dsp::Amplifier::minDecibels; + setUnits(false); + } + else { + setUnits(true); + } + return v; + } + + void setDisplayValue(float displayValue) override { + if (!module) { + return; + } + + if (!isLinear()) { + displayValue /= dsp::Amplifier::minDecibels; + displayValue = 1.0f - displayValue; + } + setValue(displayValue); + } +}; + +struct FrequencyParamQuantity : ParamQuantity { + virtual float offset() { + return 0.0f; + } + + float getDisplayValue() override { + float v = getValue(); + if (!module) { + return v; + } + + v += offset(); + v = powf(2.0f, v); + v *= dsp::referenceFrequency; + return v; + } + + void setDisplayValue(float v) override { + if (!module) { + return; + } + + v /= dsp::referenceFrequency; + v = log2f(v); + v -= offset(); + setValue(v); + } +}; + +struct DynamicsRatioParamQuantity : ParamQuantity { + float getDisplayValue() override { + float v = getValue(); + if (!module) { + return v; + } + + v = powf(v, 1.5f); + v = 1.0f - v; + v *= M_PI; + v *= 0.25f; + v = tanf(v); + v = 1.0f / v; + return v; + } + + void setDisplayValue(float v) override { + if (!module) { + return; + } + + v = 1.0f / v; + v = atanf(v); + v *= 4.0f; + v /= M_PI; + v = 1.0f - v; + v = powf(v, 1.0f / 1.5f); + setValue(v); + } +}; + +} // namespace bogaudio