v1.1.2: More FIR latency options, lower default
FIR quality selector now offers 6 choices: 512 (~6ms), 1024 (~12ms), 2048 (~23ms), 4096 (~46ms), 8192 (~93ms), 16384 (~186ms) Default changed to 2048 (~23ms) for lower latency. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
cmake_minimum_required(VERSION 3.22)
|
cmake_minimum_required(VERSION 3.22)
|
||||||
project(InstaLPEQ VERSION 1.1.0)
|
project(InstaLPEQ VERSION 1.1.2)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ void FIREngine::setBands (const std::vector<EQBand>& newBands)
|
|||||||
|
|
||||||
void FIREngine::setFFTOrder (int order)
|
void FIREngine::setFFTOrder (int order)
|
||||||
{
|
{
|
||||||
fftOrder.store (juce::jlimit (12, 14, order));
|
fftOrder.store (juce::jlimit (9, 14, order));
|
||||||
needsUpdate.store (true);
|
needsUpdate.store (true);
|
||||||
notify();
|
notify();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
class FIREngine : private juce::Thread
|
class FIREngine : private juce::Thread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static constexpr int defaultFFTOrder = 13; // 8192 taps
|
static constexpr int defaultFFTOrder = 11; // 2048 taps
|
||||||
static constexpr int maxBands = 8;
|
static constexpr int maxBands = 8;
|
||||||
|
|
||||||
FIREngine();
|
FIREngine();
|
||||||
|
|||||||
@@ -36,14 +36,17 @@ InstaLPEQEditor::InstaLPEQEditor (InstaLPEQProcessor& p)
|
|||||||
addAndMakeVisible (newBandButton);
|
addAndMakeVisible (newBandButton);
|
||||||
|
|
||||||
// Quality selector (FIR latency)
|
// Quality selector (FIR latency)
|
||||||
qualitySelector.addItem ("4096 (~46ms)", 1);
|
qualitySelector.addItem ("512 (~6ms)", 1);
|
||||||
qualitySelector.addItem ("8192 (~93ms)", 2);
|
qualitySelector.addItem ("1024 (~12ms)", 2);
|
||||||
qualitySelector.addItem ("16384 (~186ms)", 3);
|
qualitySelector.addItem ("2048 (~23ms)", 3);
|
||||||
qualitySelector.setSelectedId (2, juce::dontSendNotification); // default 8192
|
qualitySelector.addItem ("4096 (~46ms)", 4);
|
||||||
|
qualitySelector.addItem ("8192 (~93ms)", 5);
|
||||||
|
qualitySelector.addItem ("16384 (~186ms)", 6);
|
||||||
|
qualitySelector.setSelectedId (3, juce::dontSendNotification); // default 2048
|
||||||
qualitySelector.onChange = [this]
|
qualitySelector.onChange = [this]
|
||||||
{
|
{
|
||||||
int sel = qualitySelector.getSelectedId();
|
int sel = qualitySelector.getSelectedId();
|
||||||
int order = (sel == 1) ? 12 : (sel == 2) ? 13 : 14;
|
int order = sel + 8; // 1->9, 2->10, 3->11, 4->12, 5->13, 6->14
|
||||||
processor.setQuality (order);
|
processor.setQuality (order);
|
||||||
};
|
};
|
||||||
addAndMakeVisible (qualitySelector);
|
addAndMakeVisible (qualitySelector);
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ private:
|
|||||||
NodeParameterPanel nodePanel;
|
NodeParameterPanel nodePanel;
|
||||||
|
|
||||||
juce::Label titleLabel { {}, "INSTALPEQ" };
|
juce::Label titleLabel { {}, "INSTALPEQ" };
|
||||||
juce::Label versionLabel { {}, "v1.1" };
|
juce::Label versionLabel { {}, "v1.1.2" };
|
||||||
juce::ToggleButton bypassToggle;
|
juce::ToggleButton bypassToggle;
|
||||||
juce::Label bypassLabel { {}, "BYPASS" };
|
juce::Label bypassLabel { {}, "BYPASS" };
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user