= Instance concepts

[[instance-tag]]
== Instance tag

Each instance can have arbitrarily many tags.

Tags are important if you want to dynamically enable or disable instances using the xref:targets/realearn/enable-disable-instances.adoc[].

[[auto-units]]
== Auto units

Each xref:key-concepts.adoc#instance[] optionally supports the automatic addition and configuration of a xref:key-concepts.adoc#unit[] with a user-defined xref:further-concepts/compartment.adoc#main-preset[] if a certain type of controller is connected, and automatic removal if it is disconnected.

The general procedure is:

. Globally define once what controllers you have at your disposal and choose which main preset you want to use for which controller (in the xref:user-interface/settings-dialog.adoc[] of the xref:helgobox::app.adoc[])
. Enable global control for one xref:key-concepts.adoc#instance[] using xref:user-interface/main-panel/menu-bar.adoc#enable-global-control[].

=== Global control

If global control is enabled for an instance, all connected controllers that are configured in the xref:realearn::user-interface/settings-dialog.adoc[ReaLearn settings dialog] will load their corresponding main preset.
You can configure controllers using the xref:helgobox::app/user-interface/title-bar.adoc#title-bar-settings[] button in the window title bar of the xref:helgobox::app.adoc[].

If global control is disabled for an instance, global controllers will be ignored in this instance.
This gives you the freedom to create a custom control experience using ReaLearn.


TIP: It's a good idea to enable global control for a Helgobox instance on the monitoring FX chain.
Such an instance will be around permanently as long as REAPER is running, even if you open and close different projects.
Perfect for project-spanning control scenarios!

=== Overrides

If you decide to use a specific device for something else in a certain project, all you need to do is to set use the device as input and/or output in a project-specific ReaLearn unit!
If you do that, the project-specific instance "wins" over the monitoring FX instance.
You got a project-specific override.
If you close the project, the monitoring FX instance takes over again.