Adds Vst2RawChunk, a raw effGetChunk/effSetChunk bypass around JUCE's VSTPluginInstance::usesChunks() gate, plus --loadBankChunk/--saveBankChunk/--loadPatchChunk/--savePatchChunk CLI flags and a new test_chunk_roundtrip regression test that positively asserts the saved file is genuinely zlib/XML (0x78 header, >1000 bytes) rather than a per-parameter fallback.
Building and exercising this bypass disproved an earlier documented finding in this tool's own docs: the compiled VST2 wrapper does set effFlagsProgramChunks, and usesChunks() is genuinely true - the previous "chunk-advertisement gap" theory was wrong. Corrected in tools/testhost/TODO.md and tools/testhost/tests/README.md. The real cause of old bundled .fxp sample files having no effect remains open, now narrowed to a JaySynth-side XML/schema parsing question rather than a host/plugin capability mismatch.
Also adds a PluginHost-method -> VST2-wiring -> covering-test coverage table to tests/README.md, and documents the remaining "exercised but not asserted" gaps (channel/param counts, DSP correctness) in TODO.md.
All 12 tests in tools/testhost/tests/run_tests.sh pass, including the two new chunk round-trip tests.
Adds `Vst2RawChunk`, a raw `effGetChunk`/`effSetChunk` bypass around JUCE's `VSTPluginInstance::usesChunks()` gate, plus `--loadBankChunk`/`--saveBankChunk`/`--loadPatchChunk`/`--savePatchChunk` CLI flags and a new `test_chunk_roundtrip` regression test that positively asserts the saved file is genuinely zlib/XML (`0x78` header, >1000 bytes) rather than a per-parameter fallback.
Building and exercising this bypass disproved an earlier documented finding in this tool's own docs: the compiled VST2 wrapper *does* set `effFlagsProgramChunks`, and `usesChunks()` is genuinely `true` - the previous "chunk-advertisement gap" theory was wrong. Corrected in `tools/testhost/TODO.md` and `tools/testhost/tests/README.md`. The real cause of old bundled `.fxp` sample files having no effect remains open, now narrowed to a JaySynth-side XML/schema parsing question rather than a host/plugin capability mismatch.
Also adds a `PluginHost`-method -> VST2-wiring -> covering-test coverage table to `tests/README.md`, and documents the remaining "exercised but not asserted" gaps (channel/param counts, DSP correctness) in `TODO.md`.
All 12 tests in `tools/testhost/tests/run_tests.sh` pass, including the two new chunk round-trip tests.
Add Vst2RawChunk, a raw effGetChunk/effSetChunk bypass around JUCE's
VSTPluginInstance::usesChunks() gate, plus --loadBankChunk/--saveBankChunk/
--loadPatchChunk/--savePatchChunk CLI flags and a new test_chunk_roundtrip
regression test asserting the saved file is genuinely zlib/XML (0x78 header,
>1000 bytes), not a per-parameter fallback.
Building and using this bypass disproved an earlier documented finding: the
compiled VST2 wrapper does set effFlagsProgramChunks and usesChunks() is
genuinely true, so the previous "chunk-advertisement gap" theory in TODO.md
and tests/README.md was wrong. Corrected in both places. The real cause of
old bundled .fxp sample files having no effect remains open and is now
narrowed to a JaySynth-side XML/schema parsing question, not a host/plugin
capability mismatch.
Also adds a PluginHost-method-to-VST2-wiring-to-test coverage table in
tests/README.md, and documents the remaining "exercised but not asserted"
gaps (channel/param counts, DSP correctness) in TODO.md.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011dhtwRLARk4eiPngcQykLJ
jens
merged commit d7cf5b7399 into master2026-07-27 21:23:27 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Adds
Vst2RawChunk, a raweffGetChunk/effSetChunkbypass around JUCE'sVSTPluginInstance::usesChunks()gate, plus--loadBankChunk/--saveBankChunk/--loadPatchChunk/--savePatchChunkCLI flags and a newtest_chunk_roundtripregression test that positively asserts the saved file is genuinely zlib/XML (0x78header, >1000 bytes) rather than a per-parameter fallback.Building and exercising this bypass disproved an earlier documented finding in this tool's own docs: the compiled VST2 wrapper does set
effFlagsProgramChunks, andusesChunks()is genuinelytrue- the previous "chunk-advertisement gap" theory was wrong. Corrected intools/testhost/TODO.mdandtools/testhost/tests/README.md. The real cause of old bundled.fxpsample files having no effect remains open, now narrowed to a JaySynth-side XML/schema parsing question rather than a host/plugin capability mismatch.Also adds a
PluginHost-method -> VST2-wiring -> covering-test coverage table totests/README.md, and documents the remaining "exercised but not asserted" gaps (channel/param counts, DSP correctness) inTODO.md.All 12 tests in
tools/testhost/tests/run_tests.shpass, including the two new chunk round-trip tests.