mirror of
https://codeberg.org/armin/monostep.git
synced 2026-09-01 04:10:46 +02:00
Add delay/reverb dry-wet, granular randomize toggles, rework accent DSP
- Add delay and reverb Dry/Wet parameters and knobs, wired into presets - Add Accent/Slide/Fine/Rate toggles to the Randomize panel with new per-aspect pattern randomizers - Soften accent: modest volume lift plus small cutoff and filter-attack modulation instead of the heavy 5x gain boost - Halve reverb comb/allpass delays so the wet speaks sooner - Regenerate a fresh build stamp on every build
This commit is contained in:
parent
342d413563
commit
662a1f7383
11 changed files with 310 additions and 97 deletions
|
|
@ -17,13 +17,15 @@ public:
|
|||
|
||||
struct Params
|
||||
{
|
||||
float delayTime = 0.35f; // normalized knob 0..1
|
||||
float delayMix = 0.0f; // 0..1 dry/wet
|
||||
bool delaySync = true; // tempo-synced vs. free milliseconds
|
||||
float reverbRoom = 0.5f; // 0..1
|
||||
float reverbMix = 0.0f; // 0..1 dry/wet
|
||||
float reverbDiff = 0.6f; // 0..1 allpass diffusion
|
||||
double bpm = 120.0;
|
||||
float delayTime = 0.35f; // normalized knob 0..1
|
||||
float delayFeedback = 0.45f; // 0..0.9 feedback (repeat density)
|
||||
bool delaySync = true; // tempo-synced vs. free milliseconds
|
||||
float delayMix = 0.0f; // 0..1 dry/wet
|
||||
float reverbRoom = 0.5f; // 0..1
|
||||
float reverbLevel = 1.0f; // 0..1 wet send gain
|
||||
float reverbMix = 0.0f; // 0..1 dry/wet
|
||||
float reverbDiff = 0.6f; // 0..1 allpass diffusion
|
||||
double bpm = 120.0;
|
||||
};
|
||||
|
||||
void setParams (const Params& p);
|
||||
|
|
@ -52,7 +54,7 @@ private:
|
|||
};
|
||||
|
||||
void processDelay (juce::AudioBuffer<float>& buffer, int numSamples);
|
||||
void processReverb (juce::AudioBuffer<float>& buffer, int numSamples);
|
||||
void processReverb (const juce::AudioBuffer<float>& dryIn, juce::AudioBuffer<float>& buffer, int numSamples);
|
||||
|
||||
double sampleRate = 44100.0;
|
||||
int numChannels = 2;
|
||||
|
|
@ -64,6 +66,10 @@ private:
|
|||
Params params;
|
||||
float currentDelaySeconds = 0.0f;
|
||||
|
||||
// Pre-delay snapshot: the reverb is fed the dry signal (before the delay),
|
||||
// so delay and reverb run in parallel instead of in series.
|
||||
juce::AudioBuffer<float> dryScratch;
|
||||
|
||||
std::vector<DelayChannel> delays;
|
||||
std::vector<ReverbChannel> reverbs;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue