Initial commit: InstaLPEQ linear phase EQ plugin

Full-featured linear phase EQ with interactive graphical curve display.
FIR-based processing (8192-tap), 8 parametric bands, multi-platform
CI/CD (Windows/macOS/Linux), InstaDrums visual style.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hariel1985
2026-03-25 10:17:59 +01:00
commit b11135f786
21 fájl változott, egészen pontosan 2859 új sor hozzáadva és 0 régi sor törölve

Fájl megtekintése

@@ -0,0 +1,49 @@
#pragma once
#include <JuceHeader.h>
#include "EQBand.h"
class NodeParameterPanel : public juce::Component,
private juce::Slider::Listener,
private juce::ComboBox::Listener,
private juce::Button::Listener
{
public:
struct Listener
{
virtual ~Listener() = default;
virtual void nodeParameterChanged (int bandIndex, const EQBand& band) = 0;
virtual void nodeDeleteRequested (int bandIndex) = 0;
};
NodeParameterPanel();
void setListener (Listener* l) { listener = l; }
void setSelectedBand (int index, const EQBand* band);
int getSelectedIndex() const { return selectedIndex; }
void resized() override;
void paint (juce::Graphics& g) override;
private:
void sliderValueChanged (juce::Slider* slider) override;
void comboBoxChanged (juce::ComboBox* box) override;
void buttonClicked (juce::Button* button) override;
int selectedIndex = -1;
EQBand currentBand;
bool updatingFromExternal = false;
juce::Slider freqSlider, gainSlider, qSlider;
juce::Label freqLabel { {}, "FREQ" };
juce::Label gainLabel { {}, "GAIN" };
juce::Label qLabel { {}, "Q" };
juce::Label bandInfoLabel { {}, "No band selected" };
juce::ComboBox typeSelector;
juce::TextButton deleteButton { "DELETE" };
Listener* listener = nullptr;
void setupSlider (juce::Slider& s, juce::Label& l, double min, double max, double step, const char* suffix);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (NodeParameterPanel)
};