feat: beat-sync LFOs and delay to host BPM

This commit is contained in:
Armin 2026-07-14 01:18:46 +02:00
commit 5cc704c1d1
5 changed files with 250 additions and 110 deletions

View file

@ -141,12 +141,13 @@ private:
// LFO controls
juce::Slider lfo1RateKnob, lfo1DepthKnob;
juce::ComboBox lfo1ShapeBox, lfo1DestBox;
juce::ComboBox lfo1ShapeBox, lfo1DestBox, lfo1SyncBox;
juce::Slider lfo2RateKnob, lfo2DepthKnob;
juce::ComboBox lfo2ShapeBox, lfo2DestBox;
juce::ComboBox lfo2ShapeBox, lfo2DestBox, lfo2SyncBox;
// FX2 controls
juce::Slider delayTimeKnob, delayFbKnob, delayMixKnob;
juce::ComboBox delaySyncBox;
juce::Slider reverbSizeKnob, reverbDampKnob, reverbMixKnob;
// Preset menu
@ -176,18 +177,25 @@ private:
std::unique_ptr<SliderAttachment> autoPanRateAttach, autoPanDepthAttach;
// LFO attachments
std::unique_ptr<SliderAttachment> lfo1RateAttach, lfo1DepthAttach;
std::unique_ptr<ComboBoxAttachment> lfo1ShapeAttach, lfo1DestAttach;
std::unique_ptr<SliderAttachment> lfo2RateAttach, lfo2DepthAttach;
std::unique_ptr<ComboBoxAttachment> lfo2ShapeAttach, lfo2DestAttach;
std::unique_ptr<SliderAttachment> lfo1RateAttach, lfo1DepthAttach, lfo1BeatAttach;
std::unique_ptr<ComboBoxAttachment> lfo1ShapeAttach, lfo1DestAttach, lfo1SyncAttach;
std::unique_ptr<SliderAttachment> lfo2RateAttach, lfo2DepthAttach, lfo2BeatAttach;
std::unique_ptr<ComboBoxAttachment> lfo2ShapeAttach, lfo2DestAttach, lfo2SyncAttach;
// FX2 attachments
std::unique_ptr<SliderAttachment> delayTimeAttach, delayFbAttach, delayMixAttach;
std::unique_ptr<SliderAttachment> delayTimeAttach, delayFbAttach, delayMixAttach, delayBeatAttach;
std::unique_ptr<ComboBoxAttachment> delaySyncAttach;
std::unique_ptr<SliderAttachment> reverbSizeAttach, reverbDampAttach, reverbMixAttach;
void setupLabel(juce::Label& label, const juce::String& text);
void setupKnob(juce::Slider& knob, const juce::String& name);
void setupCombo(juce::ComboBox& combo);
void setupSyncKnob(juce::Slider& knob,
std::unique_ptr<SliderAttachment>& rateAttach,
std::unique_ptr<SliderAttachment>& beatAttach,
const juce::String& rateId,
const juce::String& beatId,
juce::ComboBox& syncBox);
void showPresetMenu();
void applyCurrentPreset();