diff --git a/js/audio-context.js b/js/audio-context.js index d94019a..807ad3d 100644 --- a/js/audio-context.js +++ b/js/audio-context.js @@ -1014,13 +1014,13 @@ class AudioContextManager { // Parse filter lines (handle "Filter:" and "Filter X:" formats) const filterMatch = line.match( - /^Filter\s*\d*:\s*ON\s+(\w+)\s+Fc\s+(\d+)\s+Hz\s+Gain\s*([+-]?\d+\.?\d*)\s*dB\s+Q\s+(\d+\.?\d*)/i + /^Filter\s*\d*:\s*ON\s+(\w+)\s+Fc\s+(\d+)\s+Hz\s+Gain\s*([+-]?\d+\.?\d*)\s*dB(?:\s+Q\s+(\d+\.?\d*))?/i ); if (filterMatch) { const type = filterMatch[1].toUpperCase(); const freq = parseInt(filterMatch[2], 10); const gain = parseFloat(filterMatch[3]); - const q = parseFloat(filterMatch[4]); + const q = filterMatch[4] ? parseFloat(filterMatch[4]) : Math.SQRT1_2; filters.push({ type, freq, gain, q }); } } diff --git a/js/equalizer.js b/js/equalizer.js index d8a9c72..0186f5d 100644 --- a/js/equalizer.js +++ b/js/equalizer.js @@ -661,13 +661,13 @@ export class Equalizer { // Parse filter lines (handle "Filter:" and "Filter X:" formats) const filterMatch = line.match( - /^Filter\s*\d*:\s*ON\s+(\w+)\s+Fc\s+(\d+)\s+Hz\s+Gain\s*([+-]?\d+\.?\d*)\s*dB\s+Q\s+(\d+\.?\d*)/i + /^Filter\s*\d*:\s*ON\s+(\w+)\s+Fc\s+(\d+)\s+Hz\s+Gain\s*([+-]?\d+\.?\d*)\s*dB(?:\s+Q\s+(\d+\.?\d*))?/i ); if (filterMatch) { const type = filterMatch[1].toUpperCase(); const freq = parseInt(filterMatch[2], 10); const gain = parseFloat(filterMatch[3]); - const q = parseFloat(filterMatch[4]); + const q = filterMatch[4] ? parseFloat(filterMatch[4]) : Math.SQRT1_2; filters.push({ type, freq, gain, q }); } }