bridge: fix Qin VST2 silent playback via per-child SHM sandbox

- out-of-process VST2 sandbox: each Qin track spawns its own plugin_host.exe child
  with unique SHM (SonicForge_PluginHost2_<bridgePid>_<ch>_<seq>), watchdog <=3 respawns
- preset round-trip bridge<->child over SHM (presetIn/presetOut 64KB), stub rejection MIN_PRESET=100
- seed qin_default.b64 default preset into every fresh child; saved patch wins on restore
- forward MIDI on channel 0 (Qin_RV only listens on ch0); one instrument per child
- controls 4/5/6 = OPEN_GUI/CLOSE_GUI/QUIT
- gitignore runtime carla_projects
This commit is contained in:
2026-08-20 19:16:43 +07:00
parent d6649e4474
commit b91e6d3875
10 changed files with 589 additions and 34 deletions
+1 -1
View File
@@ -1403,7 +1403,7 @@ int main(int argc, char* argv[]) {
if (!inst2) {
std::cerr << "[NativeBridge] restore lost inst ch=" << ch << std::endl;
} else {
if ((t == InstrumentType::VST3 || t == InstrumentType::VST2) && !preset.empty())
if ((t == InstrumentType::VST3 || t == InstrumentType::VST2) && preset.size() >= 100)
inst2->loadSerializedState(preset);
else
inst2->selectProgram(ch, bank, program);