updateeeees

This commit is contained in:
Armin 2026-08-13 03:39:39 +02:00
commit 462891fb11
5 changed files with 69 additions and 99 deletions

View file

@ -273,6 +273,9 @@ juce::AudioProcessorValueTreeState::ParameterLayout ChromaFlockProcessor::create
juce::ParameterID{"reverbDamping", 1}, "Reverb Damping", zeroOne, 0.5f));
layout.add(std::make_unique<juce::AudioParameterFloat>(
juce::ParameterID{"reverbMix", 1}, "Reverb Mix", zeroOne, 0.2f));
layout.add(std::make_unique<juce::AudioParameterChoice>(
juce::ParameterID{"reverbOn", 1}, "Reverb On",
juce::StringArray{"Off", "On"}, 1));
// ARPEGGIATOR
layout.add(std::make_unique<juce::AudioParameterChoice>(
@ -284,7 +287,7 @@ juce::AudioProcessorValueTreeState::ParameterLayout ChromaFlockProcessor::create
"Down & Up / Major", "Random", "As Played", "Chord", "Up & Down X",
"Down & Up X", "Random Once", "Octave Up", "Octave Down", "Pinky Up",
"Pinky Down", "Up / Major", "Down / Major", "Up & Down / Minor",
"C3/C4 1", "C3/C4 2", "C3/C4 3", "C3/C4 4", "C3/C4 5"}, 0));
"Stab 1", "Stab 2", "Stab 3", "Stab 4", "Stab 5"}, 0));
layout.add(std::make_unique<juce::AudioParameterChoice>(
juce::ParameterID{"arpOctaves", 1}, "Arp Octaves",
juce::StringArray{"1", "2", "3"}, 1));
@ -460,10 +463,12 @@ void ChromaFlockProcessor::processBlock(juce::AudioBuffer<float>& buffer, juce::
std::vector<int> stopNotes;
std::vector<Arpeggiator::NotePitch> playNotes;
arp.step(stopNotes, playNotes);
bool isRest = playNotes.empty();
for (int n : stopNotes)
synth.noteOff(1, juce::jlimit(0, 127, n + transpose), 0.0f, true);
synth.noteOff(1, juce::jlimit(0, 127, n + transpose), 0.0f, !isRest);
for (const auto& np : playNotes)
synth.noteOn(1, juce::jlimit(0, 127, np.note + transpose), np.velocity);
if (np.note >= 0 && np.note <= 127)
synth.noteOn(1, juce::jlimit(0, 127, np.note + transpose), np.velocity);
arpSampleCount = 0.0;
}
@ -475,10 +480,12 @@ void ChromaFlockProcessor::processBlock(juce::AudioBuffer<float>& buffer, juce::
std::vector<int> stopNotes;
std::vector<Arpeggiator::NotePitch> playNotes;
arp.step(stopNotes, playNotes);
bool isRest = playNotes.empty();
for (int n : stopNotes)
synth.noteOff(1, juce::jlimit(0, 127, n + transpose), 0.0f, true);
synth.noteOff(1, juce::jlimit(0, 127, n + transpose), 0.0f, !isRest);
for (const auto& np : playNotes)
synth.noteOn(1, juce::jlimit(0, 127, np.note + transpose), np.velocity);
if (np.note >= 0 && np.note <= 127)
synth.noteOn(1, juce::jlimit(0, 127, np.note + transpose), np.velocity);
}
} else {
arpSampleCount = 0.0;
@ -520,7 +527,8 @@ void ChromaFlockProcessor::processBlock(juce::AudioBuffer<float>& buffer, juce::
}
delay.setParameters(delayTimeMs, getParam("delayFeedback"), getParam("delayMix"),
getParam("delayPingPong") > 0.5f);
reverbFX.setParameters(getParam("reverbSize"), getParam("reverbDamping"), 0.8f, getParam("reverbMix"));
float reverbMix = getParam("reverbOn") > 0.5f ? getParam("reverbMix") : 0.0f;
reverbFX.setParameters(getParam("reverbSize"), getParam("reverbDamping"), 0.8f, reverbMix);
limiter.setParameters(getParam("limiterThreshold"), getParam("limiterCeiling"),
getParam("limiterRelease"));