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:
hariel1985
2026-03-25 22:28:31 +01:00
szülő 9c5b5a3957
commit aa546c7357
9 fájl változott, egészen pontosan 229 új sor hozzáadva és 73 régi sor törölve

Fájl megtekintése

@@ -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);
};