Fix: master FX chain khong xu ly sau khi load project — deserialize composite master.bypass thanh vstBypass=true loai het VST3 khoi fxRtChain (chain=[] → fxRtStart early-return → masterBus pass-through, offline export cung tat). Deserializer gio hardcode vstBypass=false (khong co UI nao set flag nay cho master; chi ton tai tu bug deserialize). Build lai app.precompiled.js + copy 3 ban deploy + cache-buster moi. Verify UI: LOADED vstBypass=false, chain VST3 Ozone giu, fxRtChainLen=1; play → fxRt.active=true ws OPEN inQueue=64; DB save moi master.bypass=false.

This commit is contained in:
2026-08-23 10:44:28 +07:00
parent 1d4ff1282b
commit a105bdb959
2 changed files with 25 additions and 13 deletions
+7 -1
View File
@@ -11771,7 +11771,13 @@ const deserializeProjectFromSchema = (schemaObj) => {
...migrated,
chain: _finalChain,
vstFxChain: _finalChain.filter(m => m.type === 'vst3').map(s => ({ type: 'vst3', path: s.path || '', name: s.name || '', preset_b64: s.preset_b64 || '', bypass: !!s.bypass })),
vstBypass: !!_masterBus.bypass,
// FIX (master FX "mất" trên project cũ): main_session.master.bypass là
// composite cũ (bypass: !masterConnected || vstBypass) — project lưu khi
// tắt master → bypass=true → deserialize thành vstBypass=true vĩnh viễn
// → fxRtChain() filter bỏ VST3 + masterVstOn tắt → master FX không xử lý
// realtime lẫn offline export sau khi load. Không có UI nào set vstBypass
// cho master (chỉ có slot.bypass riêng) → luôn khôi phục false.
vstBypass: false,
gui_open_path: (schemaObj.mastering_settings && schemaObj.mastering_settings.gui_open_path) ? schemaObj.mastering_settings.gui_open_path : null,
gui_open_name: (schemaObj.mastering_settings && schemaObj.mastering_settings.gui_open_name) ? schemaObj.mastering_settings.gui_open_name : null
};
File diff suppressed because one or more lines are too long