Polish GUI, add pattern retrig option, and rework voice DSP

This commit is contained in:
Armin 2026-08-06 15:51:56 +02:00
commit 4732240cc7
7 changed files with 546 additions and 129 deletions

View file

@ -32,6 +32,8 @@ public:
void setStateInformation (const void*, int) override;
juce::AudioProcessorValueTreeState& getAPVTS() { return apvts; }
void setZoomIndex (int index) { zoomIndex = juce::jlimit (0, 4, index); }
int getZoomIndex() const { return zoomIndex; }
monostep::StepSequencer& getSequencer() { return sequencer; }
const monostep::StepSequencer& getSequencer() const { return sequencer; }
@ -82,10 +84,16 @@ private:
std::atomic<float>* osc1PhaseParam = nullptr;
std::atomic<float>* cutoffParam = nullptr;
std::atomic<float>* resParam = nullptr;
std::atomic<float>* filterTypeParam = nullptr;
std::atomic<float>* attackParam = nullptr;
std::atomic<float>* decayParam = nullptr;
std::atomic<float>* sustainParam = nullptr;
std::atomic<float>* releaseParam = nullptr;
std::atomic<float>* filterAttackParam = nullptr;
std::atomic<float>* filterDecayParam = nullptr;
std::atomic<float>* filterSustainParam = nullptr;
std::atomic<float>* filterReleaseParam = nullptr;
std::atomic<float>* filterEnvAmtParam = nullptr;
std::atomic<float>* glideParam = nullptr;
std::atomic<float>* masterParam = nullptr;
std::atomic<float>* seqLenParam = nullptr;
@ -97,6 +105,7 @@ private:
std::atomic<float>* driveParam = nullptr;
std::atomic<float>* ringModParam = nullptr;
std::atomic<float>* accentParam = nullptr;
std::atomic<float>* seqRetrigParam = nullptr;
monostep::StepSequencer sequencer;
monostep::SynthVoice voice;
@ -105,6 +114,8 @@ private:
double sampleRate = 44100.0;
int zoomIndex = 0;
int lastStep = -1;
std::atomic<int> playStep { -1 };
bool lastGateApplied = false;