UI polish: amber theme, smooth spectrum, MIDI LED, VU tuning

- Rename section labels: COMPRESSOR → COMPRESSION, AUTO-PAN → PANNING
- Replace spectrum analyzer bars with smooth gapless filled wave
- Use gold (#c59c07) for wave/spectrum strokes and piano roll active keys
- Amber CRT-style patch LCD with dark background and gold dot-matrix text
- Add MIDI signal LED with glow between semi and scale controls
- Reduce VU meter sensitivity (5x → 1.5x) and match amber gradient theme
- Add subtle glow behind section and sub-section boxes
- Fix Compressor.h class name and PluginProcessor include to match
This commit is contained in:
Armin 2026-07-16 02:31:34 +02:00
commit 628e1e3cba
6 changed files with 120 additions and 41 deletions

View file

@ -67,6 +67,15 @@ private:
juce::String text = "INIT";
};
class MidiLed : public juce::Component, public juce::Timer {
public:
explicit MidiLed(ChromaFlockProcessor& p) : processor(p) { startTimerHz(30); }
void paint(juce::Graphics& g) override;
void timerCallback() override { repaint(); }
private:
ChromaFlockProcessor& processor;
};
class PianoRollComponent : public juce::Component, public juce::Timer {
public:
explicit PianoRollComponent(ChromaFlockProcessor& p) : processor(p) { startTimerHz(60); }
@ -129,6 +138,7 @@ private:
juce::Label osc1Label, osc2Label, filterLabel, envLabel, fEnvLabel, globalLabel;
juce::Label fxLabel, lfoLabel, fx2Label;
juce::Label scaleLabel;
juce::Label midiLabel;
juce::Label octaveTransposeLabel, semitoneTransposeLabel;
juce::ComboBox octaveTransposeBox, semitoneTransposeBox;
@ -167,6 +177,7 @@ private:
// Preset menu
juce::TextButton presetButton{"PRESET"};
PatchLCD patchLCD;
MidiLed midiLed;
juce::TextButton prevPresetButton{"<"}, nextPresetButton{">"};
juce::TextButton randomizeButton{"RANDOM"};
int currentPresetIndex = 0;