diff --git a/app/core/render_engine.py b/app/core/render_engine.py index 95d4253..e7dde06 100644 --- a/app/core/render_engine.py +++ b/app/core/render_engine.py @@ -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: