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
+26
View File
@@ -98,6 +98,32 @@ else()
target_link_libraries(daw_vst_bridge PRIVATE ${FLUIDSYNTH_LIBRARIES} ${SFIZZ_LIBRARIES})
endif()
# ── fx_vst_bridge: VST FX host (split from daw_vst_bridge). Windows-only:
# one-shot modes --render-fx / --scan / --open-fx-gui / --fx-gui. No SHM
# realtime loop (the live master FX chain stays in daw_vst_bridge because
# it processes the instrument mix in-process). ──
if(WIN32)
add_executable(fx_vst_bridge
src/main_fx.cpp
src/RenderFxJob.cpp
src/FxGuiServer.cpp
)
if(VST3_SDK_TARGET)
target_compile_definitions(fx_vst_bridge PRIVATE HAVE_VST3SDK=1)
target_link_libraries(fx_vst_bridge PRIVATE ${VST3_SDK_TARGET} sdk_hosting sdk_common)
target_sources(fx_vst_bridge PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/vst3sdk/public.sdk/source/vst/hosting/module_win32.cpp
${CMAKE_CURRENT_SOURCE_DIR}/vst3sdk/public.sdk/source/common/memorystream.cpp
)
endif()
find_package(JPEG REQUIRED) # libjpeg-turbo (vcpkg) — FxGuiServer.cpp JPEG encode
# FX modes are VST3 + builtin DSP only — no fluidsynth/sfizz (avoids a
# runtime libfluidsynth-3.dll dependency for the FX bridge).
target_link_libraries(fx_vst_bridge PRIVATE JPEG::JPEG)
# Required Windows libs
target_link_libraries(fx_vst_bridge PRIVATE winmm imm32 ws2_32)
endif()
# ── gui_probe: standalone VST3 GUI attach probe (debug tool, not shipped) ──
if(WIN32)
add_executable(gui_probe