From 210b4c2d3dd423cad6478f0b753f69f762ebeda5 Mon Sep 17 00:00:00 2001 From: Armin Date: Mon, 6 Jul 2026 18:09:24 +0200 Subject: [PATCH] Expand window function selector to 8 options Add Hamming, Bartlett, Gaussian, and Kaiser window options to the live spectrum display. Previously only None, Hanning, Blackman-Harris, and Flat Top were available. The new windows map to different visual power-curve scalings in the render loop. The window function only affects the realtime spectrum visualization, not the static psychoacoustic analysis (which always uses Hanning). --- index.html | 2 +- js/app.js | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index 454e11d..5f08161 100644 --- a/index.html +++ b/index.html @@ -31,7 +31,7 @@ 0:00.0 / 0:00.0 - +
diff --git a/js/app.js b/js/app.js index 1748c29..0943fce 100644 --- a/js/app.js +++ b/js/app.js @@ -577,11 +577,15 @@ const App = { const scaleVal = (raw) => { const r = raw / 255; switch (this.windowType) { - case 'none': return r; - case 'hanning': return Math.min(1, Math.sqrt(r) * 0.85); + case 'none': return r; + case 'hanning': return Math.min(1, Math.sqrt(r) * 0.85); + case 'hamming': return Math.min(1, Math.pow(r, 0.48) * 0.85); case 'blackman': return Math.min(1, Math.pow(r, 0.4) * 0.85); - case 'flatTop': return Math.min(1, Math.pow(r, 0.3) * 0.85); - default: return Math.min(1, Math.sqrt(r) * 0.85); + case 'bartlett': return Math.min(1, Math.pow(r, 0.55) * 0.85); + case 'gaussian': return Math.min(1, Math.pow(r, 0.43) * 0.85); + case 'kaiser': return Math.min(1, Math.pow(r, 0.33) * 0.85); + case 'flatTop': return Math.min(1, Math.pow(r, 0.3) * 0.85); + default: return Math.min(1, Math.sqrt(r) * 0.85); } };