feat: VST FX rack per-track + masterbus render via native_bridge
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include "NativeInstrumentEngine.h"
|
||||
#include "StateStore.h"
|
||||
#include "RenderJob.h"
|
||||
#include "RenderFxJob.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
@@ -614,6 +615,29 @@ int main(int argc, char* argv[]) {
|
||||
return run_render_job(renderJob, renderOut);
|
||||
}
|
||||
|
||||
// --render-fx <job.json> --in <input.wav> --out <output.wav>: one-shot
|
||||
// offline FX render (VST3 effects + builtins), no SHM/loop.
|
||||
std::string renderFxJob, renderFxIn, renderFxOut;
|
||||
for (int i = 1; i < argc; ++i) {
|
||||
if (std::strcmp(argv[i], "--render-fx") == 0 && i + 1 < argc) renderFxJob = argv[i + 1];
|
||||
else if (std::strcmp(argv[i], "--in") == 0 && i + 1 < argc) renderFxIn = argv[i + 1];
|
||||
else if (std::strcmp(argv[i], "--out") == 0 && i + 1 < argc) renderFxOut = argv[i + 1];
|
||||
}
|
||||
if (!renderFxJob.empty()) {
|
||||
if (renderFxIn.empty() || renderFxOut.empty()) {
|
||||
std::cerr << "[RenderFxJob] --render-fx requires --in <input.wav> --out <output.wav>" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
return run_render_fx_job(renderFxJob, renderFxIn, renderFxOut);
|
||||
}
|
||||
|
||||
// --scan <dir>: one-shot plugin scan, no SHM/loop.
|
||||
std::string scanDir;
|
||||
for (int i = 1; i + 1 < argc; ++i) {
|
||||
if (std::strcmp(argv[i], "--scan") == 0) scanDir = argv[i + 1];
|
||||
}
|
||||
if (!scanDir.empty()) return run_scan_dir(scanDir);
|
||||
|
||||
// 1. Shared memory name: argv --shm <name> | env SF_SHM_NAME | default
|
||||
std::string shmName = "SonicForge_DAW_IPC";
|
||||
for (int i = 1; i + 1 < argc; ++i) {
|
||||
|
||||
Reference in New Issue
Block a user