Remove broken peak fade-out feature from spectrum analyzer

This commit is contained in:
Armin 2026-07-08 19:08:49 +02:00
commit c678b947df

View file

@ -236,15 +236,6 @@ footer .footer-track { flex: 1; min-width: 0; white-space: nowrap; overflow: hid
<option value="180">3s</option>
<option value="240">4s</option>
</select>
<span style="font-size:11px;color:#6b7089;margin-left:8px">Peak Fade:</span>
<select id="peakFadeSelect">
<option value="0" selected>0ms</option>
<option value="12">200ms</option>
<option value="24">400ms</option>
<option value="36">600ms</option>
<option value="48">800ms</option>
<option value="60">1s</option>
</select>
<span style="font-size:11px;color:#6b7089;margin-left:8px">Crossfade:</span>
<select id="crossfadeSelect">
<option value="0" selected>Off</option>
@ -379,14 +370,12 @@ const ctx = canvas.getContext('2d');
const bigTime = document.getElementById('bigTime');
let peakData = [];
let peakHoldCounters = [];
let peakFadeCounters = [];
let smoothedData = [];
let vuPeakL = 0, vuPeakR = 0;
let vuSmoothL = 0, vuSmoothR = 0;
let vuPeakHoldL = 0, vuPeakHoldR = 0;
let vuPeakGrace = 0;
let peakHoldGrace = 0;
let peakFadeGrace = 0;
function bessi0(x) {
let s = 1, t = 1;
for (let k = 1; k <= 20; k++) {
@ -517,7 +506,6 @@ function drawSpectrum() {
if (peakData.length !== NUM_BARS) {
peakData = new Float32Array(NUM_BARS);
peakHoldCounters = new Uint32Array(NUM_BARS);
peakFadeCounters = new Uint32Array(NUM_BARS);
smoothedData = new Float32Array(NUM_BARS);
}
const rect = canvas.getBoundingClientRect();
@ -556,13 +544,8 @@ function drawSpectrum() {
if (barH > peakData[i]) {
peakData[i] = barH;
peakHoldCounters[i] = 0;
peakFadeCounters[i] = 0;
} else if (peakHoldCounters[i] < peakHoldGrace) {
peakHoldCounters[i]++;
} else if (peakFadeCounters[i] < peakFadeGrace) {
const remaining = peakFadeGrace - peakFadeCounters[i];
peakData[i] *= (remaining - 1) / remaining;
peakFadeCounters[i]++;
} else {
peakData[i] = 0;
}
@ -775,7 +758,6 @@ const decaySelect = document.getElementById('decaySelect');
const barDecaySelect = document.getElementById('barDecaySelect');
const vuPeakHoldSelect = document.getElementById('vuPeakHoldSelect');
const peakHoldSelect = document.getElementById('peakHoldSelect');
const peakFadeSelect = document.getElementById('peakFadeSelect');
const crossfadeSelect = document.getElementById('crossfadeSelect');
const infoBtn = document.getElementById('infoBtn');
const tagEditorOverlay = document.getElementById('tagEditorOverlay');
@ -1740,11 +1722,9 @@ decaySelect.addEventListener('change', () => { peakDecay = parseFloat(decaySelec
barDecaySelect.addEventListener('change', () => { barDecay = parseFloat(barDecaySelect.value); });
vuPeakHoldSelect.addEventListener('change', () => { vuPeakGrace = parseInt(vuPeakHoldSelect.value, 10); });
peakHoldSelect.addEventListener('change', () => { peakHoldGrace = parseInt(peakHoldSelect.value, 10); });
peakFadeSelect.addEventListener('change', () => { peakFadeGrace = parseInt(peakFadeSelect.value, 10); });
crossfadeSelect.addEventListener('change', () => { crossfadeDuration = parseFloat(crossfadeSelect.value); });
vuPeakGrace = parseInt(vuPeakHoldSelect.value, 10);
peakHoldGrace = parseInt(peakHoldSelect.value, 10);
peakFadeGrace = parseInt(peakFadeSelect.value, 10);
crossfadeDuration = parseFloat(crossfadeSelect.value);
repeatSelect.addEventListener('change', () => { repeatMode = repeatSelect.value; });
shuffleSelect.addEventListener('change', () => { shuffleOn = shuffleSelect.value === 'on'; });