Hardware Components and Behaviors

What is a HardwareComponent (HWC) ?

Hardware Components are everything you can find on a SKAARHOJ controller or any RawPanel compatible device (eg: xpanel-applications).

Some physical components, such as a Joystick can be represented as multiple HardwareComponents in Reactor (in this case Up/Down, Left/Right and Rotate)

There are 4 basic types of hardware components:

  • Buttons (Binary Inputs)
  • Faders / potentiometers (Analog Inputs)
  • Encoders (Pulsed Inputs)
  • Joysticks (Speed Inputs)

Additionally these could have different kinds of displays linked to them.

Buttons can have different kinds of color LEDs to show status.

Larger Displays can also consist of different Tiles that allow you to configure individual parts separately in an easy way.

What is a Behavior ?

To configure what a specific component does and shows we need to configure it's Behavior. Click any Hardware component on the configurator view and you will get to the Behavior that is defined on it. In case there is no Behavior created yet for this component the inspector will show you a palette of pre-configured Behaviors based on the devices you have added on HomeScreen.

Tip

Clicked on a Component and found a purple Generator ? This component's behavior is likely defined by a table from home screen. You can simply overlay it by selecting the UserSection in the section dropdown. If you like to know more about this or modify the generator please see the chapter on generators

Selecting a Parameter

To select a Behavior simply select the component you want to change. If there is no behavior yet on the component you can see the behavior palette in the inspector. You can select any preconfigured parameter from the list of your devices.

create-behavior-inspector

If you have selected a component that already has a configured behavior you can click Change Behavior in the top right corner. This will reopen the behavior palette and lets you change to a different one.

Manually changing parameter in a Behavior

To edit the parameter inside of a behavior manually (without using the pre-configured behaviors from the palette) simply click the Show More button. A yellow pen icon will appear next to the name of the parameter field. Simply click it and use the parameter reference helper window to configure the parameter you want to choose.

create-behavior-inspector
create-behavior-inspector

Edit the parameter using the Helper Window

 

Once you click submit you will be presented with this window:

Automatic Behavior Configuration

If you click the green Continue button you will use the Automatic Behavior Configuration

This means reactor will automatically select a Template Behavior and add configuration constants to your behavior. This makes it very fast to add almost any parameter to a component.

In some cases you might want to keep the settings you have configured manually on the Behavior. In this cases just click Keep current and reactor will only change the parameter reference.

Changing Template Behavior

Reactor does it's best to choose the correct Template Behavior for your behavior. It does so based on what it knows about the type of component and the parameter you select. Sometimes you might still want to change this. To do so click Show More. This will show the Template Behavior dropdown

The Template Behavior shows the most commonly used templates at the top. If fou have created Template Behaviors yourself they will also be shown. If you can not find what you are looking for click Show All inside of the dropdown to show more included Template Behaviors of reactor

Available Template Behaviors

Here is a list of the most important Template Behaviors included in Reactor.

None

Start with no selected Template Behavior

Set specific value

Use this template if you want any action on the component to set a specified value on the selected parameter.

Example: Setting a AUX of an ATEM to input 1 using a button

Set a value by index

Same as Set specific value, but you can specify an index of the option for the specific parameter.

Example: Setting the current Scene in OBS to the 5th scene from the start

Change by Step

Use this whe you want to move up and down a value using an encoder or 4way button.

Example: Use an encoder to control the current shutter speed of a camera

This Template Behavior is the most versatile one. It is almost always usable

Change by step for larger ranges

Same as Change by step, but for longer value ranges.

  • Encoders will move more steps if rotated faster and a fine / coarse selection can be made by pressing down shortly.
  • Buttons will continue to increment when held down.

Example: Changing the electronic shutter in .01 values of a degree

Change by step with limited values

Sometimes a parameter might have many options to choose from but you want to limit the possible options that can be selected with the current button or encoder. Use this Settings template to define several valid options that can be set for the parameter

Example: Making an Encoder only switch between 3 certain WhiteBalance modes (eg Manual/Preset1/Preset2)

Change by step with confirmation

Use this Template Behavior on encoders and 4 way buttons if you want to have them not immediately change the value, but let you select and change by pressing down.

If no change is confirmed the value shown will jump back to the current value after the specified time.1

Example: Loading a new setup file on an Arri Camera. On an encoder use left and right to select first then press down to confirm.

Change a value on fader / potentiometer

This is the default Template Behavior to use when mapping a parameter to a fader or LEDBar

Example: Controlling Gain on an RCP Joystick

Change a value with motorized fader

This is the default Template Behavior to use when mapping a parameter to a motorized fader. It will correctly send back the position to the fader if the value changes in the system.

Example: Controlling Iris using a ColorFlyV2 Fader

Toggle two options

Choose this Template Behavior for any kind of On/Off, Show/Hide, Enable/Disable scenarios. The button will light up bright once the function is activated and show dimmed if not.

Example: Turning on and off bars on a camera

Toggle on hold

This Template Behavior can be used similar to the above, but it will only react after pushing down for a specified amount of time, defaults to 1000 milliseconds

Example: A NETIO Power outlet shall only be toggled when the button is held down for one second

Trigger Action

Use this template for all kind of one-shot parameters (commands)

Example: Triggering OnePush Autofocus on a camera

Speed parameter

This is the default Template Behavior for mapping things to a speed component (Joysticks). But it can also be used to control speed commands from other components like encoders

Example: Control Pan Speed using a joystick

Binary Output (for GPO)

This Template Behavior uses the parameter to set or clear the Output of a GPO contact on RCPs or LinkIO boxes.

Example: map a TallyFlag to the closed contact on the back of an RCP

Hold-Down

Used for parameters with two options. When the button is pressed down the parameter is set to on. When it is released it is set to off.

Useful for GPI Inputs

Example: Mapping Record to the state of a GPI closed contact of an RCP

Display value (without control)

Show a value that does not provide control, or deliberately lock control of a value.

Example: Show the battery voltage of a camera

Custom Template Behaviors

You can also create your own Template Behaviors, see the chapter Template Behaviors in Advanced Configuration

1

Before Reactor v2.0.5-pre5 this needed a ':Confirm:1000' modifier and would only work on devicecore parameters. In any later versions this Masterbehavior will work without any extra config steps. The old SettingsTemplate used to be called 'SKAARHOJ:Confirm' while the new one is called 'SKAARHOJ:ConfirmValue'