Limit rotary knob value text shown by 1 decimal

This commit is contained in:
Armin 2026-07-17 16:35:58 +02:00
commit d79af00b23
3 changed files with 47 additions and 26 deletions

View file

@ -15,6 +15,14 @@ private:
juce::Image knobOverlay;
};
class KnobSlider : public juce::Slider {
public:
using juce::Slider::Slider;
juce::String getTextFromValue(double v) override {
return juce::String::formatted("%.1f", v);
}
};
class ComboBoxLookAndFeel : public juce::LookAndFeel_V4 {
public:
void drawComboBox(juce::Graphics& g, int width, int height,
@ -146,36 +154,36 @@ private:
juce::ComboBox octaveTransposeBox, semitoneTransposeBox;
juce::ComboBox osc1WaveBox;
juce::Slider osc1OctKnob, osc1SemiKnob, osc1FineKnob, osc1LevelKnob;
KnobSlider osc1OctKnob, osc1SemiKnob, osc1FineKnob, osc1LevelKnob;
juce::ComboBox osc2WaveBox;
juce::Slider osc2OctKnob, osc2SemiKnob, osc2FineKnob, osc2LevelKnob, phaseOffsetKnob;
KnobSlider osc2OctKnob, osc2SemiKnob, osc2FineKnob, osc2LevelKnob, phaseOffsetKnob;
juce::ComboBox filterTypeBox;
juce::Slider filterCutoffKnob, filterResKnob, filterEnvAmtKnob, keyTrackKnob;
KnobSlider filterCutoffKnob, filterResKnob, filterEnvAmtKnob, keyTrackKnob;
juce::Slider envAttackKnob, envDecayKnob, envSustainKnob, envReleaseKnob;
juce::Slider fEnvAttackKnob, fEnvDecayKnob, fEnvSustainKnob, fEnvReleaseKnob;
KnobSlider envAttackKnob, envDecayKnob, envSustainKnob, envReleaseKnob;
KnobSlider fEnvAttackKnob, fEnvDecayKnob, fEnvSustainKnob, fEnvReleaseKnob;
juce::Slider panKnob, driveKnob, masterKnob, pbRangeKnob;
KnobSlider panKnob, driveKnob, masterKnob, pbRangeKnob;
// FX controls
juce::ComboBox distTypeBox;
juce::Slider distAmountKnob, distSymmetryKnob, distToneKnob;
juce::Slider compThresholdKnob, compRatioKnob, compAttackKnob, compReleaseKnob, compMakeupKnob;
juce::Slider autoPanRateKnob, autoPanDepthKnob, autoPanPhaseKnob;
juce::Slider limiterThresholdKnob, limiterCeilingKnob, limiterReleaseKnob;
KnobSlider distAmountKnob, distSymmetryKnob, distToneKnob;
KnobSlider compThresholdKnob, compRatioKnob, compAttackKnob, compReleaseKnob, compMakeupKnob;
KnobSlider autoPanRateKnob, autoPanDepthKnob, autoPanPhaseKnob;
KnobSlider limiterThresholdKnob, limiterCeilingKnob, limiterReleaseKnob;
// LFO controls
juce::Slider lfo1RateKnob, lfo1DepthKnob;
KnobSlider lfo1RateKnob, lfo1DepthKnob;
juce::ComboBox lfo1ShapeBox, lfo1DestBox, lfo1SyncBox;
juce::Slider lfo2RateKnob, lfo2DepthKnob;
KnobSlider lfo2RateKnob, lfo2DepthKnob;
juce::ComboBox lfo2ShapeBox, lfo2DestBox, lfo2SyncBox;
// FX2 controls
juce::Slider delayTimeKnob, delayFbKnob, delayMixKnob, delayPingPongKnob;
KnobSlider delayTimeKnob, delayFbKnob, delayMixKnob, delayPingPongKnob;
juce::ComboBox delaySyncBox;
juce::Slider reverbSizeKnob, reverbDampKnob, reverbMixKnob;
KnobSlider reverbSizeKnob, reverbDampKnob, reverbMixKnob;
// Preset menu
juce::TextButton presetButton{"PRESET"};