Virtual effects which set a value in a show variable while they are running. Pair well with conditional-effect to modify the behavior of scenes based on the activation of other cues.


(bind binding)

Establishes the association with the show, so that effects created based on this structure will be able to set variables in the show.


(create-for-show show)

Creates the structures needed for adjusting variables in a show, and establishes the binding to the show.


(unbind binding)

Removes the association with the show. Once this has been called, effects created based on this structure will no longer have any effect on the variables of the show.


(variable-effect binding k v & {:keys [name resolve?], :or {name (str "Set " (clojure.core/name k)), resolve? true}})

An effect which sets the show variable with the specified key to match the parameter passed in, and restores its original value when ended. Often combined with conditional-effect to enable cross-effect relationships.

By default this effect will be named "Set " followed by the name of the show variable passed in k, but you can give it a more meaningful title to appear in the effects list using the optional keyword argument :name.

Any dynamic parameter passed in v will be resolved to its underlying value, (at the level of each frame at which the effect is active if the parameter is frame-dynamic). If you don’t want this to happen (because you want to use this effect to store the dynamic parameter itself in a show variable, for use by other effects), pass the optional keyword argument :resolve? along with a false value.