Add FX chain: per-pad filter, master compressor/EQ/distortion/reverb, VU meter
- Per-pad low-pass filter (cutoff + resonance) applied in DrumPad render - Master bus FX chain in PluginProcessor::applyMasterFx(): - Distortion (tanh waveshaper with drive/mix) - 3-band EQ (low shelf 200Hz, peak 1kHz, high shelf 5kHz) - Compressor (juce::dsp::Compressor with threshold/ratio) - Reverb (juce::dsp::Reverb with size/decay) - Master volume + pan with constant-power pan law - VU meter: RMS level measurement with exponential smoothing - All FX panel and master panel knobs now connected to audio processing - SampleEditorPanel cutoff/reso knobs linked to DrumPad filter params Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -211,7 +211,22 @@ void InstaDrumsEditor::timerCallback()
|
||||
for (auto* pc : padComponents)
|
||||
pc->repaint();
|
||||
|
||||
// Update VU meter from processor output levels
|
||||
// (simplified: just repaint for now)
|
||||
masterPanel.getVuMeter().repaint();
|
||||
// Sync FX panel knobs -> processor atomic params
|
||||
processor.compThreshold.store (fxPanel.getCompThreshold());
|
||||
processor.compRatio.store (fxPanel.getCompRatio());
|
||||
processor.eqLo.store (fxPanel.getEqLo());
|
||||
processor.eqMid.store (fxPanel.getEqMid());
|
||||
processor.eqHi.store (fxPanel.getEqHi());
|
||||
processor.distDrive.store (fxPanel.getDistDrive());
|
||||
processor.distMix.store (fxPanel.getDistMix());
|
||||
processor.reverbSize.store (fxPanel.getReverbSize());
|
||||
processor.reverbDecay.store (fxPanel.getReverbDecay());
|
||||
|
||||
// Sync master panel -> processor
|
||||
processor.masterVolume.store (masterPanel.getMasterVolume());
|
||||
processor.masterPan.store (masterPanel.getMasterPan());
|
||||
processor.masterTune.store (masterPanel.getMasterTune());
|
||||
|
||||
// Update VU meter from processor
|
||||
masterPanel.getVuMeter().setLevel (processor.vuLevelL.load(), processor.vuLevelR.load());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user