diff --git a/app/static/js/services/soundfontPlayer.js b/app/static/js/services/soundfontPlayer.js index 8faea4a..4ce6f28 100644 --- a/app/static/js/services/soundfontPlayer.js +++ b/app/static/js/services/soundfontPlayer.js @@ -155,15 +155,26 @@ console.log("[SonicSF][DEBUG] PHASE2d: addSoundBank SUCCESS. _currentSfId=" + _currentSfId + " total banks=" + bankCount); // Try to enumerate presets from loaded bank try { - const presetList = _synthInstance.soundBankManager?.soundBankList?.[0]?.soundBank?.presets; - if (presetList) { - console.log("[SonicSF][DEBUG] PHASE2d: presets in loaded bank=" + presetList.length); - for (let i = 0; i < Math.min(presetList.length, 10); i++) { - const p = presetList[i]; - console.log("[SonicSF][DEBUG] PHASE2d: preset[" + i + "] name=" + p.name + " bank=" + p.bankMSB + "/" + p.bankLSB + " prog=" + p.program + " drum=" + p.isGMGSDrum); + const sb = _synthInstance.soundBankManager?.soundBankList?.[0]?.soundBank; + if (sb) { + const allKeys = Object.keys(sb); + console.log("[SonicSF][DEBUG] PHASE2d: soundBank keys=" + JSON.stringify(allKeys.slice(0, 20))); + console.log("[SonicSF][DEBUG] PHASE2d: soundBank.presets length=" + (sb.presets?.length ?? "undefined")); + console.log("[SonicSF][DEBUG] PHASE2d: soundBank.instruments length=" + (sb.instruments?.length ?? "undefined")); + console.log("[SonicSF][DEBUG] PHASE2d: soundBank.samples length=" + (sb.samples?.length ?? "undefined")); + console.log("[SonicSF][DEBUG] PHASE2d: soundBank._presetList length=" + (sb._presetList?.length ?? "undefined")); + if (sb.presets && sb.presets.length > 0) { + console.log("[SonicSF][DEBUG] PHASE2d: presets in loaded bank=" + sb.presets.length); + for (let i = 0; i < Math.min(sb.presets.length, 10); i++) { + const p = sb.presets[i]; + const pk = Object.keys(p).slice(0, 8); + console.log("[SonicSF][DEBUG] PHASE2d: preset[" + i + "] name=" + p.name + " keys=" + JSON.stringify(pk) + " bank=" + p.bankMSB + "/" + p.bankLSB + " prog=" + p.program + " drum=" + p.isGMGSDrum); + } + } else { + console.warn("[SonicSF][DEBUG] PHASE2d: soundBank.presets is EMPTY — parser didn't extract presets"); } } else { - console.warn("[SonicSF][DEBUG] PHASE2d: soundBankList[0].soundBank.presets is UNDEFINED or EMPTY"); + console.warn("[SonicSF][DEBUG] PHASE2d: soundBankList[0] is EMPTY"); } } catch (e) { console.warn("[SonicSF][DEBUG] PHASE2d: preset enumeration failed:", e);