v1.3: Auto makeup gain, spectrum analyzer, FIR normalization, README overhaul
- Auto makeup gain: RMS-based loudness compensation from actual FIR response - Real-time FFT spectrum analyzer behind EQ curves - FIR normalization fix: flat settings now produce exact 0 dB passthrough - Brickwall limiter (0 dB ceiling) with toggle - Drag-and-drop signal chain reordering - Low FIR tap count warning for 512/1024 - Double-click reset on all knobs - Comprehensive README with linear phase EQ explanation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -27,6 +27,9 @@ public:
|
||||
int getFIRLength() const { return 1 << fftOrder.load(); }
|
||||
int getLatencySamples() const { return getFIRLength() / 2; }
|
||||
|
||||
// Auto makeup gain: A-weighted RMS loudness compensation (dB)
|
||||
float getAutoMakeupGainDb() const { return autoMakeupDb.load(); }
|
||||
|
||||
private:
|
||||
void run() override;
|
||||
juce::AudioBuffer<float> generateFIR (const std::vector<EQBand>& bands, double sr, int order);
|
||||
@@ -43,4 +46,7 @@ private:
|
||||
|
||||
std::vector<float> magnitudeDb;
|
||||
mutable juce::SpinLock magLock;
|
||||
|
||||
std::atomic<float> autoMakeupDb { 0.0f };
|
||||
static float aWeighting (float freq);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user