addParameterMetadataChangedListener

fun SequencerEngine.addParameterMetadataChangedListener(instanceId: Int, dispatch: (() -> Unit) -> Unit = { it() }, replayCurrent: Boolean = true, onError: (Throwable) -> Unit = { println("Parameter metadata listener failed: $it") }, listener: (ParameterMetadataSnapshot) -> Unit): AutoCloseable

Snapshot/replay convenience over the existing native graph metadata event. Metadata is copied on the callback thread, before dispatching to the UI. No periodic reads. The dispatcher defaults to the native control thread; UI callers should supply their dispatcher. Close subscriptions before destroying the engine.