Wire up remaining FX members, param layout, and section bounds

This commit is contained in:
Armin 2026-07-15 23:54:52 +02:00
commit 758016634f
4 changed files with 18 additions and 6 deletions

View file

@ -922,9 +922,9 @@ void MainContentComponent::paint(juce::Graphics& g) {
drawSection(10, 128, 498, 200); drawSection(10, 128, 498, 200);
drawSection(518, 128, 624, 200); drawSection(518, 128, 624, 200);
drawSection(1152, 128, 498, 200); drawSection(1152, 128, 498, 200);
drawSection(75, 338, 498, 160); drawSection(10, 338, 563, 160);
drawSection(583, 338, 502, 160); drawSection(583, 338, 502, 160);
drawSection(1095, 338, 490, 160); drawSection(1095, 338, 555, 160);
drawSection(10, 956, 1640, 136); drawSection(10, 956, 1640, 136);
// FX sub-sections // FX sub-sections

View file

@ -57,8 +57,12 @@ private:
class PatchLCD : public juce::Component { class PatchLCD : public juce::Component {
public: public:
std::function<void()> onClick;
void setText(const juce::String& t) { text = t; repaint(); } void setText(const juce::String& t) { text = t; repaint(); }
const juce::String& getText() const { return text; }
void paint(juce::Graphics& g) override; void paint(juce::Graphics& g) override;
void mouseEnter(const juce::MouseEvent&) override { setMouseCursor(juce::MouseCursor::PointingHandCursor); }
void mouseDown(const juce::MouseEvent&) override { if (onClick) onClick(); }
private: private:
juce::String text = "INIT"; juce::String text = "INIT";
}; };
@ -92,6 +96,7 @@ private:
int lastTriggeredNote = -1; int lastTriggeredNote = -1;
int currentPitchBend = 64; // 0..127, 64 = center int currentPitchBend = 64; // 0..127, 64 = center
bool pitchBendDragging = false; bool pitchBendDragging = false;
int pitchBendStartY = 0;
bool pitchBendGliding = false; bool pitchBendGliding = false;
float pitchBendGlideStart = 0.0f; float pitchBendGlideStart = 0.0f;

View file

@ -53,7 +53,9 @@ juce::AudioProcessorValueTreeState::ParameterLayout ChromaFlockProcessor::create
// OSC 1 // OSC 1
layout.add(std::make_unique<juce::AudioParameterChoice>( layout.add(std::make_unique<juce::AudioParameterChoice>(
juce::ParameterID{"osc1Wave", 1}, "OSC1 Wave", juce::ParameterID{"osc1Wave", 1}, "OSC1 Wave",
juce::StringArray{"Sine", "Saw", "Square", "Triangle", "Noise"}, 1)); juce::StringArray{"Sine", "Saw", "Square", "Triangle", "Noise",
"Pulse 25%", "Pulse 12%", "Rev Saw", "Full Rect", "Half Rect",
"Stair 4", "Stair 8", "Soft Sine", "Sinc", "Exp Pulse", "Double Sine"}, 1));
layout.add(std::make_unique<juce::AudioParameterFloat>( layout.add(std::make_unique<juce::AudioParameterFloat>(
juce::ParameterID{"osc1Oct", 1}, "OSC1 Octave", juce::ParameterID{"osc1Oct", 1}, "OSC1 Octave",
juce::NormalisableRange<float>(-3.0f, 3.0f, 1.0f), 0.0f)); juce::NormalisableRange<float>(-3.0f, 3.0f, 1.0f), 0.0f));
@ -69,7 +71,9 @@ juce::AudioProcessorValueTreeState::ParameterLayout ChromaFlockProcessor::create
// OSC 2 // OSC 2
layout.add(std::make_unique<juce::AudioParameterChoice>( layout.add(std::make_unique<juce::AudioParameterChoice>(
juce::ParameterID{"osc2Wave", 1}, "OSC2 Wave", juce::ParameterID{"osc2Wave", 1}, "OSC2 Wave",
juce::StringArray{"Sine", "Saw", "Square", "Triangle", "Noise"}, 3)); juce::StringArray{"Sine", "Saw", "Square", "Triangle", "Noise",
"Pulse 25%", "Pulse 12%", "Rev Saw", "Full Rect", "Half Rect",
"Stair 4", "Stair 8", "Soft Sine", "Sinc", "Exp Pulse", "Double Sine"}, 3));
layout.add(std::make_unique<juce::AudioParameterFloat>( layout.add(std::make_unique<juce::AudioParameterFloat>(
juce::ParameterID{"osc2Oct", 1}, "OSC2 Octave", juce::ParameterID{"osc2Oct", 1}, "OSC2 Octave",
juce::NormalisableRange<float>(-3.0f, 3.0f, 1.0f), -1.0f)); juce::NormalisableRange<float>(-3.0f, 3.0f, 1.0f), -1.0f));
@ -206,7 +210,7 @@ juce::AudioProcessorValueTreeState::ParameterLayout ChromaFlockProcessor::create
juce::StringArray{"Sine", "Triangle", "Saw", "Square"}, 0)); juce::StringArray{"Sine", "Triangle", "Saw", "Square"}, 0));
layout.add(std::make_unique<juce::AudioParameterChoice>( layout.add(std::make_unique<juce::AudioParameterChoice>(
juce::ParameterID{"lfo1Dest", 1}, "LFO1 Dest", juce::ParameterID{"lfo1Dest", 1}, "LFO1 Dest",
juce::StringArray{"Filter", "OSC1", "OSC2", "Both OSC"}, 0)); juce::StringArray{"Filter", "OSC1", "OSC2", "Both OSC", "OSC2 Phase"}, 0));
layout.add(std::make_unique<juce::AudioParameterChoice>( layout.add(std::make_unique<juce::AudioParameterChoice>(
juce::ParameterID{"lfo1Sync", 1}, "LFO1 Sync", juce::ParameterID{"lfo1Sync", 1}, "LFO1 Sync",
juce::StringArray{"Sync Off", "Sync On"}, 0)); juce::StringArray{"Sync Off", "Sync On"}, 0));
@ -227,7 +231,7 @@ juce::AudioProcessorValueTreeState::ParameterLayout ChromaFlockProcessor::create
juce::StringArray{"Sine", "Triangle", "Saw", "Square"}, 0)); juce::StringArray{"Sine", "Triangle", "Saw", "Square"}, 0));
layout.add(std::make_unique<juce::AudioParameterChoice>( layout.add(std::make_unique<juce::AudioParameterChoice>(
juce::ParameterID{"lfo2Dest", 1}, "LFO2 Dest", juce::ParameterID{"lfo2Dest", 1}, "LFO2 Dest",
juce::StringArray{"Filter", "OSC1", "OSC2", "Both OSC"}, 0)); juce::StringArray{"Filter", "OSC1", "OSC2", "Both OSC", "OSC2 Phase"}, 0));
layout.add(std::make_unique<juce::AudioParameterChoice>( layout.add(std::make_unique<juce::AudioParameterChoice>(
juce::ParameterID{"lfo2Sync", 1}, "LFO2 Sync", juce::ParameterID{"lfo2Sync", 1}, "LFO2 Sync",
juce::StringArray{"Sync Off", "Sync On"}, 0)); juce::StringArray{"Sync Off", "Sync On"}, 0));

View file

@ -5,6 +5,7 @@
#include "DSP/Voice.h" #include "DSP/Voice.h"
#include "DSP/Distortion.h" #include "DSP/Distortion.h"
#include "DSP/Compressor.h" #include "DSP/Compressor.h"
#include "DSP/Limiter.h"
#include "DSP/Delay.h" #include "DSP/Delay.h"
#include "DSP/Reverb.h" #include "DSP/Reverb.h"
#include "PresetManager.h" #include "PresetManager.h"
@ -88,9 +89,11 @@ private:
Distortion distortion; Distortion distortion;
Compressor compressor; Compressor compressor;
Limiter limiter;
Delay delay; Delay delay;
ReverbFX reverbFX; ReverbFX reverbFX;
float autoPanPhase = 0.0f; float autoPanPhase = 0.0f;
float autoPanPhaseOffset = 0.0f;
double currentSampleRate = 44100.0; double currentSampleRate = 44100.0;
double currentBpm = 120.0; double currentBpm = 120.0;