Phase 4+5: WebAudio I/O shim + verify DAW checklist — live=export, order, fader, PDC, smoke
This commit is contained in:
@@ -140,6 +140,8 @@ class FxRealtimeSession:
|
||||
"type": s.get("type", ""),
|
||||
"bypass": bool(s.get("bypass")),
|
||||
}
|
||||
if s.get("id"):
|
||||
slot["id"] = s["id"]
|
||||
if s.get("path"):
|
||||
slot["path"] = s["path"]
|
||||
if s.get("preset_b64"):
|
||||
|
||||
@@ -304,7 +304,11 @@ def _merge_track_fx_chain(track):
|
||||
if isinstance(slot, dict):
|
||||
merged.append(slot)
|
||||
if not track.get("vst_fx_bypass"):
|
||||
merged += list(track.get("vst_fx_chain") or [])
|
||||
seen = {s.get("path") for s in merged if s.get("path")}
|
||||
for slot in (track.get("vst_fx_chain") or []):
|
||||
if isinstance(slot, dict) and slot.get("path") in seen:
|
||||
continue # đã có trong fx_chain (migration) — không nhân đôi
|
||||
merged.append(slot)
|
||||
return merged
|
||||
|
||||
# Param mapping master chain entry → C++ BuiltinFx (Phase 3.2). UI chain entry
|
||||
|
||||
Reference in New Issue
Block a user