diff --git a/native_bridge/src/RenderJob.cpp b/native_bridge/src/RenderJob.cpp index a45d0ec..fff939a 100644 --- a/native_bridge/src/RenderJob.cpp +++ b/native_bridge/src/RenderJob.cpp @@ -347,9 +347,9 @@ int run_render_job(const std::string& jobPath, const std::string& outPath) { << " samples=" << totalNeeded << " bpm=" << bpm << std::endl; if (!preset.empty()) { - if (type != InstrumentType::VST3) { - std::cerr << "[RenderJob] preset ignored for non-VST3 type " << (int)type - << " (SF2/SFZ use soundfont_bank/soundfont_program)" << std::endl; + if (type == InstrumentType::SOUNDFONT_SF2_SF3 || type == InstrumentType::SFZ) { + std::cerr << "[RenderJob] preset ignored for SF2/SFZ type " << (int)type + << " (use soundfont_bank/soundfont_program)" << std::endl; #ifdef HAVE_VST3SDK } else { // Accept BOTH .vstpreset ('VST3' magic) and the bridge state @@ -363,6 +363,9 @@ int run_render_job(const std::string& jobPath, const std::string& outPath) { if (!isVstPreset) { mgr.get(0)->loadSerializedState(preset); std::cout << "[RenderJob] preset restored (bridge state blob) type=" << (int)type << std::endl; + } else if (type != InstrumentType::VST3) { + std::cerr << "[RenderJob] VST3 .vstpreset ignored for type " << (int)type + << " (load a bridge state blob preset instead)" << std::endl; } else if (!applyVst3Preset(mgr.get(0), preset)) { fail("preset import FAILED for " + pluginPath); return rc; // rc stays 1: job/argument error diff --git a/native_bridge/src/main.cpp b/native_bridge/src/main.cpp index 27fc909..ffe075a 100644 --- a/native_bridge/src/main.cpp +++ b/native_bridge/src/main.cpp @@ -1355,7 +1355,7 @@ int main(int argc, char* argv[]) { } if (ok) { if (auto* inst = instruments.get(ch)) { - if (t == InstrumentType::VST3 && !preset.empty()) + if ((t == InstrumentType::VST3 || t == InstrumentType::VST2) && !preset.empty()) inst->loadSerializedState(preset); else inst->selectProgram(ch, bank, program);