On my PluginProcessor.h:
AudioProcessorValueTreeState processorValueTreeState;
On my PluginProcessor.cpp:
#ifndef JucePlugin_PreferredChannelConfigurations
: AudioProcessor (BusesProperties()
#if ! JucePlugin_IsMidiEffect
#if ! JucePlugin_IsSynth
.withInput ("Input", AudioChannelSet::stereo(), true)
#endif
.withOutput ("Output", AudioChannelSet::stereo(), true)
#endif
),
#endif
processorValueTreeState(*this, nullptr, Identifier("processorValueTree"),
{
std::make_unique<AudioParameterFloat>("volume", "Volume", -120.0f, 6.0f , 0.0f),
std::make_unique<AudioParameterInt>("panpot", "Panpot", -100, 100 , 0),
std::make_unique<AudioParameterBool>("mute", "Mute", false)
}) {}
On My PluginEditor.h:
{
public:
MyProcessorEditor (MyProcessorEditor&, AudioProcessorValueTreeState&);
~MyProcessorEditor();
//==============================================================================
void paint (Graphics&) override;
void resized() override;
private:
typedef AudioProcessorValueTreeState::SliderAttachment SliderAttachment;
typedef AudioProcessorValueTreeState::ButtonAttachment ButtonAttachment;
MyProcessor& processor;
Slider volume{"volume"}, panpot{"panpot"};
Rectangle<float> panpotRect;
Rectangle<float> volumeRect;
Rectangle<float> otherRect;
std::unique_ptr<SliderAttachment> volumeAttachment;
std::unique_ptr<SliderAttachment> panpotAttachment;
std::unique_ptr<ButtonAttachment> muteAttachment;
AudioProcessorValueTreeState& valueTreeState;
};
On my ProcessorEditor.cpp:
MyProcessorEditor::MyProcessorEditor (MyProcessor& p, AudioProcessorValueTreeState& vts)
: AudioProcessorEditor (&p), processor (p), valueTreeState (vts)
{
setSize (250, 580);
addAndMakeVisible(volume);
addAndMakeVisible(panpot);
addAndMakeVisible(mute);
volume.setSliderStyle(Slider::LinearVertical);
volume.setTextBoxStyle(Slider::TextBoxBelow, false, 100, 20);
volume.setColour(Slider::textBoxOutlineColourId, Colour());
volume.setColour(Slider::trackColourId, getLookAndFeel().findColour(Slider::backgroundColourId));
volume.setRange(-120, 6.0);
volume.setSkewFactor('xyz?');
panpot.setSliderStyle(Slider::LinearHorizontal);
panpot.setTextBoxStyle(Slider::TextBoxBelow, false, 100, 20);
panpot.setColour(Slider::textBoxOutlineColourId, Colour());
panpot.setColour(Slider::trackColourId, getLookAndFeel().findColour(Slider::backgroundColourId));
panpot.setRange(-100, 100);
mute.setClickingTogglesState(true);
mute.setColour(TextButton::buttonOnColourId, Colour::fromRGB(15, 18, 20));
mute.setWantsKeyboardFocus(false);
volumeAttachment.reset (new SliderAttachment (valueTreeState, "volume", volume));
panpotAttachment.reset (new SliderAttachment (valueTreeState, "panpot", panpot));
muteAttachment.reset (new ButtonAttachment (valueTreeState, "mute", mute));
Really ThankYou Again!!