# Macro Groups

{% hint style="info" %}
Macro Groups let you configure multiple inputs at once with shared Cues. Instead of setting up 8 faders one by one, you capture them all in one go, configure one set of cues, and the outputs are iterated across every member.
{% endhint %}

**Go to the Macro Group Listener:** In Session View (Build mode), click **+Macro Group**

<div align="left"><figure><img src="/files/knlvZ5wkGjPdiAUfPfPY" alt="" width="112"><figcaption></figcaption></figure></div>

{% hint style="success" %}
Current input tiles are cleared when you enter this state
{% endhint %}

**Interact with the controls** you want to include (buttons OR continuous). Input tiles appear as each control is detected. Inputs already linked to existing macros are filtered out.

{% hint style="info" %}
Use Remove Last as many times as you need if you need to go back, or clear the full list via the button above the input tiles
{% endhint %}

<div align="left"><figure><img src="/files/ZTcF1mIWIqC0P1xu10pz" alt="" width="375"><figcaption></figcaption></figure></div>

**Click** **Commit** when done and you'll be taken to the Editor.

<div align="left"><figure><img src="/files/lWLq9Cqqi7BPMIxLRkta" alt="" width="318"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
Groups are supposed to only allow on input type, either Button or Continuous - this is playing up a bit in the current beta so please make note to group only the same control types yourself.\
\
Cue conditions are dependant on input type, so mixed groups will not produce clean results.
{% endhint %}

#### **The Group Editor:**&#x20;

The Group Editor looks like the Macro Editor, but with key differences:

**Group name** (editable) at the top

<div align="left"><figure><img src="/files/obnvuniNMCkx1a8PVqpT" alt="" width="141"><figcaption></figcaption></figure></div>

**Input count**&#x20;

<div align="left"><figure><img src="/files/tKGDuiSzu1ugxTbPurNF" alt="" width="67"><figcaption></figcaption></figure></div>

The workflow between Cues and Actions remains the same, but this time all members of the Macro group listen to a Cue, and that cue's Action Output Type will be the same Type for all members.\
\
So 1 Cue to make them all new CC addresses, another to make them all Ghost Parent activators.\
\
Currently there isn't scope for an option where each member's output can be a different Type, but this covers the most common use-cases anyway; changing pages of addresses with mapping many Macros individually.

* Below the cue stack: an output iteration preview showing how each member's output is assigned, VCC iterates automatically, Custom and Ghost provide individual settings&#x20;

{% hint style="warning" %}
*beta UI isn't set up to easily edit large output arrays yet, use the VCC function for groups with more than 8 controls (which is quicker anyway)*&#x20;
{% endhint %}

#### **Output types and how they iterate:**

* **Match Input**: each member outputs on its own original address. No extra config needed.
* **+Next Virtual CC**: each member gets the next sequential VCC address automatically. Preview shows the full address map (e.g. In 1 → CH15 CC27, In 2 → CH15 CC28, etc.)
* **Custom MIDI:** Manually select each output
* **Ghost:** Manually select each Ghost<br>

<div align="left"><figure><img src="/files/m8s2Cvj8uMdU8yFXusqL" alt="" width="250"><figcaption></figcaption></figure> <figure><img src="/files/fbzSl4QbqLNiIONEm9aL" alt="" width="250"><figcaption></figcaption></figure></div>

{% hint style="danger" %}
Custom MIDI and Ghost selections get tricky with groups larger than 8 currently, this is a beta UI issue and nothing to do with performance, it'll get sorted long before the alpha.\
For now use VCCs, they iterate automatically which is quicker anyway.
{% endhint %}

**Saving:** Save propagates the shared cue template to all member macros and assigns outputs per the iteration rules.

**Limits:** maximum 32 inputs per Macro Group.\
&#x20;            same input type (button/continuous) required to commit to group


---

# 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/macro-groups.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.
