External Controllers

From dgraphic
Jump to navigation Jump to search

Introduction

All'Mix can be controlled with external hardware controllers such as switchers and MIDI- keyboards.

Controls

All'Mix treats any supported external hardware controller as a collection of controls that a user can interact with (buttons, sliders, tumblers, etc). All controls are logically divided into following categories according to their function:

• Signal – a control that emits a signal when activated (e.g. a button)

• Boolean – a control that can be in “on” or “off” state (e.g. an LED)

• Integer – a control that has an integer numerical value (e.g. a slider, a joystick axis)

• Text – a control that can show a string of text (e.g. a display)

Commands

Each control can be assigned a command that controls All'Mix in some way. Commands are divided into two categories – action commands and parameter commands. Action commands are one- time actions, for example “Toggle Recording” or “Preview: select slot #1” are action commands. Parameter commands control some internal parameter of All'Mix, such as an audio channel volume or a transition duration. Action commands can be assigned to Signal and Boolean controls, while parameter commands can be assigned to Integer and String controls.

Input slots, titles, transitions and other selectable entities in All'Mix have two commands associated with them. First one is an Action command that selects the entity and should be assigned to an input Signal or Boolean control. Second one is a read-only Boolean command that shows whether the entity is currently selected and should be assigned to an output Boolean control. For example, the “Preview: select slot #1” command is an Action command that selects the first input slot as the current preview slot and can be assigned to a button. The “Selected preview slot #1” command is a Boolean command that is in the “on” state only when the first input slot is selected as a preview, it can be assigned to an LED.

Presets

Using built-in presets

All'Mix comes with several built-in configurations for some of the supported devices. To add an external device using such a preset select the “From preset” sub-menu in the “Add” menu, then select the preset. A new external controller entry will be created using the built-in preset.

Creating custom presets

It's possible to create new presets based on either built-in presets or user-created presets. To save current external controller configuration as a preset click on a “Save” icon in the top-right corner ofthe settings panel, then select a file to save the new preset.

Loading custom presets

To load a previously created custom preset choose the “From file...” option in the “Add” menu, then select a file with the preset that you want to load. A new external controller entry will be created using the loaded preset.

IMPORTANT: Don't load multiple presets associated with the same physical device at the same time, because they might conflict with each other!

Configuring external controllers

Editing controls

To edit controls of the current external controller click on the “Edit” button near the “Controls” property in the settings panel. A window will pop up listing all controls that are associated with the current external controller. If you used the “New Device” option when adding an external controller, this list will be empty. All'Mix will not respond to any external controller commands as long as the Controls window is open. This is done to prevent accidental actions while configuring controls.

To add a new control press the “Add” button at the bottom. To remove a control first select it in the list, then press the “Remove” button. The right half of the window shows properties of the currently selected control. Newly created controls have no associated command. They also need to be mapped to a specific physical control on your device.

The “Command” property shows the command currently assigned to the selected control. To assign a new command click on the “Assign” icon to the right of the “Command” property. A window will pop up listing all commands that can be assigned to the selected control. You can filter this command list either by category or by using the search field at the top of the window.

The “Type” property of a control corresponds to control categories described in the Controls section of this document. You can determine what category a control belongs to using the “Last used control” panel. To do this you need to activate a control on your physical device (e.g. press a button, move a slider). If your device is connected correctly, the control's type and code will be shown in the “Last used control” panel.

The “Direction” property determines whether the control works as input, output or both. Input controls can only accept data from a physical device. Output controls can only send data to a physical device when their state changes (e.g. LEDs). Some controls (such as motorized sliders) can work as input and output at the same time.

To map an input control on your physical device to an entry in the controls list click on the “Code” property value. The code value will change into a “Use desired control...” text prompt. Now activate the desired control on your physical device. The “Code” property value should change to a corresponding control code. To cancel control selection click anywhere outside the “Code” property box.

NOTE: Some buttons may have two signals associated with them – one for pressing and one for releasing it.

To map an output control on your physical device to an entry in the controls list you need to know its code, because (unlike input controls) you usually can't directly interact with output controls such as LEDs. The easiest way to configure a LED is to create a Boolean output control, manually set its “Code” property to a number between 0 and the total amount of LEDs on your device, then toggle the “On/Off” checkbox several times and see which LED changes its state.

Advanced control modes

This section covers the “Mode” property of Boolean controls, which is used in more advanced scenarios when physical controls don't match the logical control categories. This property can have the following values.

Native: in this mode the “Type” of a physical control assigned to this Boolean logical control must also be Boolean. Most LEDs are Boolean, but buttons are usually Signals and therefore can't be assigned to Boolean controls natively. This is the default mode for newly created Boolean controls.

Toggle on signal: in this mode the logical Boolean control is mapped to a physical Signal control. It switches its state between “on” and “off” whenever an associated Signal is emitted (e.g. when a button is pressed). In this mode the “Code” property of the control changes into a “Toggle signal code” property. To assign the “toggle” Signal click on the “Toggle Signal Code” property value box and then activate the desired control on your physical device.

High/low signals: in this mode the logical Boolean control is mapped to a pair of physical Signal controls. It enters the “on” state whenever the “high” Signal is emitted, and the “off” state whenever the “low” Signal is emitted. In this mode the “Code” property is replaced by two properties - “High Signal Code” and “Low Signal Code”. To assign these properties follow the same steps as in the previous mode.

Integer Threshold: in this mode the Boolean control is mapped to a physical Integer control. It enters the “on” state when the Integer control value becomes greater than a certain threshold value, and the “off” state – otherwise. In this mode the “Code” property is replaced by the “Integer Control Code” property and is assigned just like any other input control described above. An additional “Integer Threshold” property holds the threshold value, which must be between the minimum and the maximum possible values for the associated Integer control.

NOTE: MIDI controllers' buttons will show up as 'Integer' due to limitations of MIDI protocol. They will usually have a zero value when released and a non-zero value when pressed (you can see these values in the “Current Integer Value” property box). To use such a button select the “Integer threshold” mode. Set the “Integer threshold” property to a value between the button's “zero” and “non-zero” values.

Modifiers

Modifiers are a specific type of controls that do nothing themselves but modify the behavior of other controls. "Ctrl", "Shift" and "Alt" keys on a standard keyboard are examples of such modifiers. All'Mix allows you to designate some controls on an external controller as modifiers. To edit the list of modifiers associated with an external controller click the "Edit" button near the "Modifiers" property.

Creating and deleting modifiers works the same way as with controls. Assigning a modifier to a physical control works the same way as with an input Boolean control. Commands can't be associated with modifiers.

After you've created and assigned a modifier you can use it in combination with input controls. When assigning an input control (as described in "Editing Controls" section) you can hold down the modifier button when activating the desired physical control, which will result in a combination of the modifier name and control code showing up in the "Code" property box. Multiple modifiers can be associated with one control at the same time.

Supported protocols

All'Mix supports the following control protocols for external controllers:

• MIDI – Musical Instrument Device Interface, a standardized protocol for audio controllers.

• HID – Human Interface Device, a standardized protocol for USB devices.

• DSC – a proprietary protocol for Digital Video Lab switchers.

• Odyssey – a proprietary protocol for Video Solutions switchers.