You are here: Key Audio Design Features > External Control Systems > About External Control Systems

About External Control Systems

This topic contains the background information you'll need for working effectively with HAL External Control Systems. In addition to reviewing these conceptual details and best practices, we highly recommend that you review detailed descriptions of the various control systems tasks you can perform. Many examples are included to help you get started.

Basics of External Control Systems

What is an external control system and why would I use one?
What can I control with an external control system?
How do I create controls that are available to an external control system?
How do I link the external controls to my configuration?
Can I use an external control and a Rane Digital Remote together?
Can I test my external control system even if I don’t have HAL hardware?
How do I connect my external control system to Halogen?
How do I connect my external control system to HAL?
How does my external control system ask HAL for the value of an external control?
How does my external control system set a control to a value?
What happens when an external control changes from within HAL?
How do I use a Level control with my external control system?
How do I use a Command control with my external control system?
How do I use a Toggle control with my external control system?
How do I use a Selector control with my external control system?
What is the complete definition of the external control message protocol?

Advanced Topics

Can an external control link to a read-only control?
Can I connect more than one external control system to HAL at the same time?
How can an external control system know changes to the number or names of selector items?
What happens when the link that contains an external control becomes active?
What happens when the link that contains an external control becomes inactive?
How do I know if my external control system is still connected to the HAL control server?
Do I need to worry about Halogen/HAL flooding my external control system with level messages?

Best Practices

What are some best practices to follow when creating and working with control systems?

Since external controls participate in HAL System control links, many of the Best Practices for creating and working with HAL System control links apply.

Some best practices specific to external controls are:

best practice: Once you’ve started to develop your external control system, do not change the control numbers for existing external controls in Halogen. The unique control numbers provide the common reference between the HAL and the external control system. If you change the number in Halogen and not in the external control system, the control will no longer work as intended.

best practice: Always test your external controls and links they participate in by connecting your external control system to either the Halogen or the HAL control server. Since the same control server runs in both Halogen and in the HAL hardware, you do not need a HAL device to check all your control code.

best practice: Make your external control system bi-directional. That is, change external controls from your control system by sending ‘set’ messages to the HAL and also respond to control changes made in the HAL System by receiving and processing messages that HAL sends.

best practice: When your external control system first connects (or reconnects) to the HAL control server, use ‘get’ messages to request the current values for all Level, Toggle and Selector controls.

best practice: For Selector controls, use ‘Selection Link’ and ‘Selection Name’ messages to request the number of selections and the selection labels when your external control system connects to the HAL control server. If there is only one link that stays active all the time, this is not as important since the number of selections and the labels will always be the same.

best practice: When using external selector controls that participate in links whose activations change, be sure to receive and process ‘Selection Link’ and ‘Selection Name’ message that HAL sends when the link activations change. If there is only one link that stays active all the time, this is not as important since the number if selections and the labels will always be the same. However, this could be useful when there is only one link because your control system can learn the number of selections and the selection names from HAL.

best practice: Give your HAL a static IP address for use with your external control system. DCHP and Link Local IP Addresses may change after rebooting HAL. Creating a Static IP on your HAL and using it to connect your external control system ensures that the external control system will always be able to connect to the HAL.