beamgrid/Source/PluginEditor.h
Armin aeb4b83281 Add BOOST, 3D depth, and gradient-angle knobs
- BOOST: global display level multiplier (0.75 - 2.5, 1.0 default)
- 3D: pseudo-3D bevel/shading on bars, LEDs, peaks and curve (0 = flat)
- G-ANG: 3D gradient angle (-180 - 180, 0 = top-lit)
- Apply CURVING rounded corners to bars and peaks in BAR mode
2026-08-14 03:38:09 +02:00

81 lines
3.2 KiB
C++

#pragma once
#include "JuceHeader.h"
#include "PluginProcessor.h"
#include "AnalyserComponent.h"
#include "BeamgridLookAndFeel.h"
class BeamgridAudioProcessorEditor : public juce::AudioProcessorEditor,
public juce::AudioProcessorValueTreeState::Listener
{
public:
explicit BeamgridAudioProcessorEditor (BeamgridAudioProcessor&);
~BeamgridAudioProcessorEditor() override;
void paint (juce::Graphics&) override;
void resized() override;
void parameterChanged (const juce::String& parameterID, float newValue) override;
private:
BeamgridAudioProcessor& processorRef;
BeamgridLookAndFeel lookAndFeel;
AnalyserComponent analyserComponent;
juce::Slider graceSlider;
juce::Slider falloffSlider;
juce::Slider barfalloffSlider;
juce::Slider barsSlider;
juce::Slider hueSlider;
juce::Slider modeSlider;
juce::Slider ledsSlider;
juce::Slider smoothSlider;
juce::Slider gridSlider;
juce::Slider gridzoomSlider;
juce::Slider gridfadeSlider;
juce::Slider curvingSlider;
juce::Slider tiltSlider;
juce::Slider boostSlider;
juce::Slider depth3dSlider;
juce::Slider gradangleSlider;
juce::Label graceLabel;
juce::Label falloffLabel;
juce::Label barfalloffLabel;
juce::Label barsLabel;
juce::Label hueLabel;
juce::Label modeLabel;
juce::Label ledsLabel;
juce::Label smoothLabel;
juce::Label gridLabel;
juce::Label gridzoomLabel;
juce::Label gridfadeLabel;
juce::Label curvingLabel;
juce::Label tiltLabel;
juce::Label boostLabel;
juce::Label depth3dLabel;
juce::Label gradangleLabel;
juce::Label titleLabel;
juce::Label statusLabel;
juce::ComboBox scaleBox;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> graceAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> falloffAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> barfalloffAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> barsAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> hueAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> modeAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> ledsAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> smoothAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> gridAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> gridzoomAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> gridfadeAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> curvingAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> tiltAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> boostAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> depth3dAttachment;
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> gradangleAttachment;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BeamgridAudioProcessorEditor)
};