Recover analyzer DSP and realtime pipeline corrections

This commit is contained in:
Mikei386
2026-07-21 19:57:52 +02:00
parent e499bac928
commit 91aeccb938
27 changed files with 3410 additions and 924 deletions
+46 -6
View File
@@ -290,7 +290,7 @@ function syncUI() {
['opt_rtaIntegration', CONFIG.RTA_INTEGRATION || 'fast'],
['opt_rtaBallistics', CONFIG.RTA_BALLISTICS_MODE || 'average'],
['opt_rtaHoldMode', CONFIG.RTA_PEAK_HOLD_MODE || 'auto'],
['opt_rtaHoldTime', CONFIG.RTA_PEAK_HOLD_SEC ?? 2],
['opt_rtaHoldTime', CONFIG.RTA_PEAK_HOLD_SEC ?? 2.5],
['opt_rtaDecay', CONFIG.RTA_PEAK_DECAY_DB_PER_S ?? 20],
['opt_rtaDisplayHold', CONFIG.RTA_DISPLAY_HOLD_SEC ?? 0],
['opt_spectroGamma', CONFIG.SPECTRO_GAMMA ?? 0.9, 'val_spectroGamma', (v)=>Number(v).toFixed(2)],
@@ -1054,13 +1054,23 @@ function wireHandlers(env) {
}, null, null, true);
// Hold-/Decay-Parameter
h('opt_rtaEngine', v => { CONFIG.RTA_ENGINE = (v === 'iir') ? 'iir' : 'fft'; });
h('opt_rtaEngine', v => {
CONFIG.RTA_ENGINE = CONFIG.RTA_BAR_LAYOUT === 'rtw' ? 'iir' : ((v === 'iir') ? 'iir' : 'fft');
return CONFIG.RTA_ENGINE;
});
h('opt_rtaBpo', v => {
const allowed = new Set(['1_3', '1_6', '1_12']);
CONFIG.RTA_BPO_MODE = allowed.has(v) ? v : '1_6';
CONFIG.RTA_BPO_MODE = CONFIG.RTA_BAR_LAYOUT === 'rtw'
? '1_3'
: (allowed.has(v) ? v : '1_6');
notifyPhoenixGlobalConfig();
return CONFIG.RTA_BPO_MODE;
});
h('opt_rtaOrder', v => {
if (CONFIG.RTA_BAR_LAYOUT === 'rtw') {
CONFIG.RTA_IIR_ORDER = 6;
return 6;
}
let val = Math.round(+v);
if (!Number.isFinite(val)) val = 4;
val = Math.max(2, Math.min(8, val));
@@ -1068,12 +1078,33 @@ function wireHandlers(env) {
CONFIG.RTA_IIR_ORDER = val;
return val;
});
h('opt_rtaFreq', v => { CONFIG.RTA_FREQ_RANGE = (v === 'lf') ? 'lf' : 'norm'; });
h('opt_rtaFreq', v => {
CONFIG.RTA_FREQ_RANGE = CONFIG.RTA_BAR_LAYOUT === 'rtw' ? 'norm' : ((v === 'lf') ? 'lf' : 'norm');
return CONFIG.RTA_FREQ_RANGE;
});
h('opt_rtaDisplayGainFft', v => { CONFIG.RTA_DISPLAY_GAIN_FFT_DB = clamp(+v, -25, 25); }, 'val_rtaDisplayGainFft', v=>`${v} dB`);
h('opt_rtaDisplayGainIir', v => { CONFIG.RTA_DISPLAY_GAIN_IIR_DB = clamp(+v, -25, 25); }, 'val_rtaDisplayGainIir', v=>`${v} dB`);
h('opt_rtaLayout', v => {
const val = (v === 'rtw') ? 'rtw' : 'iec';
CONFIG.RTA_BAR_LAYOUT = val;
if (val === 'rtw') {
CONFIG.RTA_ENGINE = 'iir';
CONFIG.RTA_BPO_MODE = '1_3';
CONFIG.RTA_IIR_ORDER = 6;
CONFIG.RTA_FREQ_RANGE = 'norm';
const forced = {
opt_rtaEngine: 'iir',
opt_rtaBpo: '1_3',
opt_rtaOrder: '6',
opt_rtaFreq: 'norm',
};
for (const [id, value] of Object.entries(forced)) {
const control = document.getElementById(id);
if (control) control.value = value;
}
notifyPhoenixGlobalConfig();
}
return val;
});
h('opt_rtaBarBaseColor', v => {
CONFIG.RTA_BAR_BASE_COLOR = v || '#ffe066';
@@ -1085,8 +1116,9 @@ function wireHandlers(env) {
CONFIG.RTA_WEIGHTING = allowed.has(v) ? v : 'z';
});
h('opt_rtaIntegration', v => {
const allowed = new Set(['impulse','fast','slow','peak']);
const allowed = new Set(['impulse','fast','medium','slow','average','peak']);
CONFIG.RTA_INTEGRATION = allowed.has(v) ? v : 'fast';
return CONFIG.RTA_INTEGRATION;
});
h('opt_rtaBallistics', v => {
const val = (v === 'peak' || v === 'both' || v === 'average') ? v : 'average';
@@ -1097,12 +1129,19 @@ function wireHandlers(env) {
const allowed = new Set(['off','auto','manual']);
CONFIG.RTA_PEAK_HOLD_MODE = allowed.has(v) ? v : 'auto';
});
h('opt_rtaHoldTime', v => { CONFIG.RTA_PEAK_HOLD_SEC = clamp(+v, 0, 30); });
h('opt_rtaHoldTime', v => {
const requested = clamp(+v, 0, 30);
CONFIG.RTA_PEAK_HOLD_SEC = CONFIG.RTA_BAR_LAYOUT === 'rtw'
? (requested < 3.25 ? 2.5 : 4.0)
: requested;
return CONFIG.RTA_PEAK_HOLD_SEC;
});
h('opt_rtaDecay', v => { CONFIG.RTA_PEAK_DECAY_DB_PER_S = clamp(+v, 1, 60); });
h('opt_rtaDisplayHold', v => { CONFIG.RTA_DISPLAY_HOLD_SEC = clamp(+v, 0, 5); });
h('opt_spectroGamma', v => {
const num = clamp(parseFloat(v), 0.3, 1.2);
CONFIG.SPECTRO_GAMMA = num;
notifyPhoenixGlobalConfig();
return num;
}, 'val_spectroGamma', (v)=>Number(v).toFixed(2));
h('opt_spectroScroll', v => {
@@ -1110,6 +1149,7 @@ function wireHandlers(env) {
const num = Number(v);
const val = allowed.has(num) ? num : 1;
CONFIG.SPECTRO_SCROLL_MODE = val;
notifyPhoenixGlobalConfig();
return val;
});
h('opt_peakHistScroll', v => {