Adds highPass filter option (improved) (#457)

* adds additional highPass filter value with programatic formatting of values

* fixes NaN being returned for "off"

* fix: Match formatting for LowPass
This commit is contained in:
John McClumpha
2025-09-06 16:43:30 +10:00
committed by GitHub
parent a5c7110648
commit 375c082ffb
+15 -3
View File
@@ -47,6 +47,18 @@ function initCustomAudioPlayers() {
} catch {} } catch {}
}; };
// Helper for readable/friendly display of numbers
const compactFormatter = new Intl.NumberFormat(undefined, { notation: 'compact' });
const formatCompactOrEcho = (value) => {
const n = (typeof value === 'number') ? value : Number(value);
if (!Number.isFinite(n)) {
return String(value);
}
const out = compactFormatter.format(n);
return out;
};
// Retrieve saved user preferences // Retrieve saved user preferences
const savedGain = safeGet("customAudioPlayerGain", "Off"); const savedGain = safeGet("customAudioPlayerGain", "Off");
const savedHighpass = safeGet("customAudioPlayerFilterHigh", "Off"); const savedHighpass = safeGet("customAudioPlayerFilterHigh", "Off");
@@ -586,12 +598,12 @@ Channels: ${channels}`
}) })
); );
const highpassOptions = ["Off", "250", "500", "1000"]; const highpassOptions = ["Off", "250", "500", "1000", "1500"];
let activeHighpassOption = highpassOptions.includes(savedHighpass) ? savedHighpass : "Off"; let activeHighpassOption = highpassOptions.includes(savedHighpass) ? savedHighpass : "Off";
const highpassContainer = createOptionSection("HighPass (Hz):"); const highpassContainer = createOptionSection("HighPass (Hz):");
const highpassButtons = highpassOptions.map((opt) => const highpassButtons = highpassOptions.map((opt) =>
createButton(highpassContainer, { createButton(highpassContainer, {
text: opt, text: formatCompactOrEcho(opt),
data: { filter: opt }, data: { filter: opt },
styles: optionBtnStyle, styles: optionBtnStyle,
onClick: () => setActiveHighpass(opt), onClick: () => setActiveHighpass(opt),
@@ -603,7 +615,7 @@ Channels: ${channels}`
const lowpassContainer = createOptionSection("LowPass (Hz):"); const lowpassContainer = createOptionSection("LowPass (Hz):");
const lowpassButtons = lowpassOptions.map((opt) => const lowpassButtons = lowpassOptions.map((opt) =>
createButton(lowpassContainer, { createButton(lowpassContainer, {
text: opt, text: formatCompactOrEcho(opt),
data: { filter: opt }, data: { filter: opt },
styles: optionBtnStyle, styles: optionBtnStyle,
onClick: () => setActiveLowpass(opt), onClick: () => setActiveLowpass(opt),