# Cues

<figure><img src="/files/X4iaLESDftIzpfDokqDw" alt=""><figcaption></figcaption></figure>

A Cue defines *when* a Macro should do something different. Each Macro can have up to 16 Cues.&#x20;

{% hint style="info" %}
*While in beta, Cues are not sequence based other than in Cycle Cues, they are input condition based, at what value, and does it need a parent also.*&#x20;
{% endhint %}

{% hint style="success" %}
A note on Default Cues: You don't need them! \
\
A Macro is in itself a 'default' cue: "if no other cue conditions are met, passthrough". \
\
If you leave default cues in by accident, they'll be ignored. (Make any change and it will be factored in) \
\
Default for Continuous is Range 0-127 and No Parent.\
\
Default for Button is Match and No Parent.
{% endhint %}

Cues can fire simultaneously for now, once Multi Action is introduced this will be cleaned up.

### Edge Detection

Edge Detection applies to all input types. It determines which physical action on your controller triggers the cue.

For the two control types covered by Mimic, Button and Continuous, a different set of Edge Detection options are available:

#### Buttons - Both, Press and Release

<div align="left"><figure><img src="/files/qFG04kAjRX3hrrRw6fZ3" alt=""><figcaption></figcaption></figure></div>

You can think of "Both" as a 1:1 Match, it will fire *both* the On and Off messages to your different output. It's the standard default that results in matching your button's behaviour as a Toggle, Trigger or Momentary. \
\
Press and Release create a Trigger-Once type output, which you can choose to be a Pulse On or a Pulse Off later. If you want an inversion of your input, choose Both, then Invert in the Action Editor.

| Input Type | Both    | Press                          | Release                         |
| ---------- | ------- | ------------------------------ | ------------------------------- |
| Toggle     | Matches | Triggers on every change to on | Triggers on every change to off |
| Trigger    | Matches | Matches                        | Triggers on-release             |
| Momentary  | Matches | Triggers on-press              | Triggers on-release             |

#### Continuous: Range

<div align="left"><figure><img src="/files/nYG0WKNI1h8rU1HLGJp6" alt="" width="302"><figcaption></figcaption></figure></div>

Set a min and max value between 0-127. A dropdown ensures only allowed values can be set. Range has two sub-modes:

* **Within:** condition met when value is inside the range
* **Without:** condition met when value is outside the range

These are reflected in the Cue Editor's Header as 'in Range' or 'out Range'.

#### Continuous: Threshold

<div align="left"><figure><img src="/files/7ewsxJS4dHPnLkbKLGs1" alt="" width="268"><figcaption></figcaption></figure></div>

Using Threshold infers that you want the result to be a Trigger, if you want an output the whole time you're above or below a value, use Range.\
\
For this reason, Threshold will always pass-through your original value also, the moment the threshold is passed, a pulse on or off will simultaneously be sent to another address.\
\
See [Action Pulses](/midi-mimic/actions.md#for-the-press-and-release-cue-states) for more information.\
\
Cue triggers it's action when the input passes a certain value.

* **Change:** Any time the value is passed (up or down)
* **Above:** Any time the value is passed on the way up
* **Below:** Any time the value is passed on the way down

#### Continuous: Velocity

<div align="left"><figure><img src="/files/iikg3jRuAH1iAAyqhrzg" alt="" width="266"><figcaption></figcaption></figure></div>

Moving and Static both result in a sustained output of 127 or 0 depending on which one you've set. Moving will output 0 when the fader is untouched, and 127 when the fader is changing values, Static will do the reverse.\
\
VPS has a choice between 2 Triggers (Pulse On and Off) or Sustain, which outputs 127 whenever the velocity is above the VPS value.

{% hint style="info" %}
*This one's definitely more experimental, but it seemed like an interesting feature as it isn't possible to replicate a "trigger something else when moving  fast enough" state natively with most controllers, or in Resolume (without Wire or additional plugins).*
{% endhint %}

#### Use Parent&#x20;

<div align="left"><figure><img src="/files/WNdtmVfVQZC2IOOm8xJA" alt="" width="117"><figcaption></figcaption></figure></div>

Clicking Use Parent will show you a list of available parents separated by Macro Parents and Ghost Parents, this is mostly just to help you stay organised. You cannot create a parent here, Macro Parents are made in their own Editor, and Ghost Parents are added in the Session View.

{% hint style="warning" %}
In addition to the above conditions being met, a Cue can also require a parent to be active. Generally speaking you'll not want to dial in things like Range values and use a Parent very often, but you can..
{% endhint %}

Different Cues within the same Macro can reference different Parents, or no Parent at all. See [Parents & Children](/midi-mimic/parents-and-children.md) for how to set up and use Parents.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://midi-mimic.gitbook.io/midi-mimic/cues.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
