refactor(bridge): split fx bridge, stabilize VST3 host chain, drop old install engines

- remove diagnostic canaries from audio hot path (crackle fix) and
  stuck C5 note raw-MIDI test (Vst2Instrument::init noteOff)
- split native bridge into daw_vst_bridge (VSTi) + fx_vst_bridge (VST FX)
- VST3: processData prepare before setActive, zero input buses, accept
  both .vstpreset and bridge-state blob in RenderJob presets
- native_render/vst_engine: bridge-exe discovery + render_fx_chain + /fx-gui
- delete old install/ engine binaries (install via sidecar+resources now)
- add BUILD_LAYOUT.md, build_selfcheck, tools/ diagnostics
This commit is contained in:
2026-08-20 09:42:42 +07:00
parent 5df96aef1e
commit 7c22ae1f02
42 changed files with 2363 additions and 210 deletions
+4 -3
View File
@@ -481,8 +481,8 @@ class PluginManager:
"""
if not refresh and self._fx_scan_cache is not None:
return self._fx_scan_cache
from app.core.native_render import find_bridge_exe
exe = find_bridge_exe()
from app.core.native_render import find_fx_bridge_exe
exe = find_fx_bridge_exe()
results = []
if exe:
dirs = [d for d in [self.vst_dir] + self.extra_vst_dirs
@@ -629,7 +629,8 @@ def resolve_plugin_path(name_or_path: str, ext: str = "") -> str:
dirs = list(_load_user_plugin_dirs()) or []
except Exception:
pass
dirs += [settings.VST_DIR, settings.SOUNDFONT_DIR]
from app.config import settings as _st
dirs += [_st.VST_DIR, _st.SOUNDFONT_DIR]
for base_dir in dirs:
if not os.path.isdir(base_dir):
continue