Hi everyone,
I’ve been developing a small open-source cross-platform command-line tool and C++ library called halionbridge that acts as a headless VST3 host for HALion 7.
The core motivation is that HALion’s internal .vstpreset contents are a proprietary, closed binary format. Instead of trying to reverse-engineer or directly generate those files, this tool boots up the actual HALion 7 VST3 plugin headlessly, executes Lua build scripts inside its environment, and lets HALion save the resulting instruments using its own native savePreset() API.
The rough workflow is:
- Generate or hand-write Lua build scripts.
- List them in a master build file.
- Run the directory through the command line tool.
- HALion processes the files in an offline loop and writes valid, native presets to disk.
What can you do with it?
The main use case is reproducible library building — programmatically generating layers, zones, sample mappings, and parameter assignments from source data or converter output without manually driving the HALion GUI.
To make it practical out of the box, I’ve integrated an initial built-in (sfizz-based) SFZ-to-Lua converter. It takes a directory of .sfz files and automatically generates the intermediate Lua code, allowing you to build real HALion instruments directly from existing SFZ mappings.
This is very much a first-version utility tool, but I wanted to share it in case it’s useful to developers looking for a different building experience.
If anyone is curious to test it, read the code, or has feedback on how this aligns with your real-world scripting workflows, I’d love to hear your thoughts!