EditSink: add RequestMacro() now that macros are live host parameters #4

Closed
opened 2026-08-18 01:34:38 +00:00 by bcox · 0 comments
Owner

editor/edit_sink.h already documents this as the one interface change a
plugin GUI will force:

The shape is deliberately uniform: mutate the working instrument, then
Publish(). It stays uniform only while nothing the editor touches is a live
CLAP parameter. When the modulation matrix lands and the macros become
automatable again, macro edits will have to become requests -- the host owns
those values and may be automating them -- and this interface grows a
RequestMacro() alongside the mutate-and-publish path. That is one method on
an existing interface rather than a reshape, which is why deferring it is
cheap.

The modulation matrix has since landed, and the macros are live host
parameters: paramsInfo reports per-patch names, paramsValue reports their
values, and NotifyParametersChanged tells the host to re-read both.

The standalone editor is unaffected — it owns its instrument outright, so
mutate-and-publish stays correct there. This only bites when a GUI edits macros
belonging to a host that may also be automating them.

Depends on the plugin GUI issue in practice, though the interface change could
land ahead of it.

`editor/edit_sink.h` already documents this as the one interface change a plugin GUI will force: > The shape is deliberately uniform: mutate the working instrument, then > Publish(). It stays uniform only while nothing the editor touches is a live > CLAP parameter. When the modulation matrix lands and the macros become > automatable again, macro edits will have to become requests -- the host owns > those values and may be automating them -- and this interface grows a > RequestMacro() alongside the mutate-and-publish path. That is one method on > an existing interface rather than a reshape, which is why deferring it is > cheap. The modulation matrix has since landed, and the macros are live host parameters: `paramsInfo` reports per-patch names, `paramsValue` reports their values, and `NotifyParametersChanged` tells the host to re-read both. The standalone editor is unaffected — it owns its instrument outright, so mutate-and-publish stays correct there. This only bites when a GUI edits macros belonging to a host that may also be automating them. Depends on the plugin GUI issue in practice, though the interface change could land ahead of it.
bcox closed this issue 2026-09-06 12:47:10 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bcox/tymbal#4
No description provided.