@David-Healey also don't forget the buddy of HISE_MACROS_ARE_PLUGIN_PARAMETERS:
HISE_NUM_MACROS. Help text in the upcoming docs:
HISE_MACROS_ARE_PLUGIN_PARAMETERS
Publishes every macro control as a dedicated plugin parameter in front of the scripted automation slots.
Default
Hot Reload
Auto Config
0
yes
no
When enabled, the exported plugin advertises one plugin parameter per active macro slot before any custom automation slot or scripted plugin parameter, which lets the host automate macros directly instead of routing through a UI component. The plugin parameter index reported to the host changes because the macro slots occupy the first positions, and macro state no longer restores from user presets when the preset system is running in exclusive mode (which matches how plugin parameters are normally managed by the DAW rather than by the preset). Combine this with a reduced macro count to keep the parameter list compact.
Read at runtime from the Extra Definitions, so no HISE rebuild is required. Pair it with HISE_NUM_MACROS so the number of exposed plugin parameters matches the macros you actually use.
See also: $API.MacroHandler$ -- macro slots exposed as plugin parameters are the ones managed through this scripting object, $MODULES.MacroModulationSource$ -- every macro slot is mirrored as a front-of-list plugin parameter when this is on, $PP.HISE_NUM_MACROS$ -- determines how many macro plugin parameters the host sees
HISE_NUM_MACROS
Number of active macro control slots that the project exposes on the master chain.
Default
Hot Reload
Auto Config
8
yes
no
Sets how many macro slots are visible to scripts, to the macro handler, to the Macro Modulation Source synthesiser and to the macro plugin-parameter publishing path. The default of 8 matches the original HISE layout and the UI panels that show a fixed eight-knob strip; values between 1 and the project-wide ceiling let you trim a compact product or scale up to a modular rig with many assignment targets. The value is read at runtime, so changing it in the Extra Definitions and reopening the project is enough to see the new slot count without a HISE rebuild.
Must not exceed the project-wide macro ceiling of 64, otherwise compilation fails with a hard error.
See also: $API.MacroHandler$ -- slot count seen by every scripting call that enumerates macros, $API.Engine.setFrontendMacros$ -- setFrontendMacros expects a name list sized to this value, $MODULES.MacroModulationSource$ -- chain count of the macro modulation source synthesiser matches this value, $MODULES.MacroModulator$ -- macro modulator slot index is validated against this value, $PP.HISE_NUM_MAX_MACROS$ -- hard upper ceiling that this value must not exceed, $PP.HISE_MACROS_ARE_PLUGIN_PARAMETERS$ -- determines how many plugin parameters are published when macros become plugin parameters