fix(render): GM-only track (instrumentProgram, khong soundfont_id) render qua default SF2 thay vi oscillator synth

This commit is contained in:
2026-08-25 19:48:07 +07:00
parent de4caefb50
commit ae7299d097
+10
View File
@@ -595,6 +595,16 @@ class PythonRenderEngine:
soundfont_bank = se.get("soundfont_bank") if se.get("soundfont_bank") is not None else track.get("soundfont_bank", 0)
soundfont_program = se.get("soundfont_program") if se.get("soundfont_program") is not None else track.get("soundfont_program", 0)
soundfont_id = se.get("soundfont_id") or track.get("soundfont_id", "")
instrument_program = track.get("instrument_program")
# GM-only track (instrumentProgram, khong synth_engine/soundfont_id):
# preview choi qua WASM default font -> export phai dung default SF2
# + program do, khong roi xuong oscillator synth (TIMBRE bug).
if (not soundfont_id and not instrument_id
and instrument_program is not None and instrument_program != ""):
soundfont_id = "_default_gm"
soundfont_bank = 0
soundfont_program = int(instrument_program)
is_percussion = track.get("is_percussion", False) or (soundfont_bank == 128)
midi_channel = 9 if is_percussion else (_channel_counter % 9)
if not is_percussion: