debug: log soundBank keys, instruments, samples, _presetList to find why presets empty

This commit is contained in:
2026-07-26 20:11:36 +07:00
parent cca970c348
commit d117a363da
+18 -7
View File
@@ -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);