Skip to content

The Joy and Pain of Macros

Share this Post:

Macros can save steps with the push of a button.

Automated lighting consoles and the software that drive them are truly amazing. They are taking in the commands of the programmer, associating parameter data with DMX protocols, and processing all the data to distribute among various methods. The developers do their best to create standard buttons and routines that are useful to the majority of the users, however there are many processes that are unforeseen, overcomplicated, or simply forgotten. This is where the standard feature of macros becomes helpful. Macros can be very useful to the lighting programmer, but they can also limit knowledge of deeper console functions or even cause destruction and chaos. Understanding macros and how a lighting console makes use of them is very important to a lighting programmer.

‡‡         Functional Macros

There are three basic types of macros found on lighting consoles. The first is a functional macro that allows users to define the exact action based upon console features. This is similar to a cuelist that fires precise functions, rather than cue data. For instance, a user can assign a specific key or set of keystrokes to the macro so that recalling it will perform the console functions in a specified order.

A common use might be to shorten multiple keystrokes into one button. For example, a macro could be assigned to select the fixtures with intensity greater than 50 percent and bring them to 100 percent. This would normally require multiple key presses, but with just the quick recall of the macro, the function would seem to happen automatically and instantly. Another macro may simply duplicate the functionality of the “Undo” so the programmer can place it on a screen or other console button location.

Functional macros are currently the most commonly used as they provide the ability to place buttons and routines anywhere on your desk or screens. Some consoles also allow the macro to be conditional where it may ask for user interaction before completing its task. Many consoles allow you to simply assign various software functions to user keys, and although not called macros these are still basically the same thing. Generally functional macros are used throughout the programming process as needed.

‡‡         Playback Macros

The second type of macro is often referred to as playback or cuelist macros. This is usually a field within your cuelist that allows you to type in specific commands to happen when that cue is executed. These are great for triggering or releasing other playbacks, changing pages, recalling views and more. As part of your overall show programming, playback macros are primarily part of the standard organization that goes into the show.

Sometimes, these types of macros require the programmer to understand a shortcut language. For instance, you may need to type in “GP1” in order to “Go Playback 1.” While some consoles will show a dropdown of these various commands, others will automatically translate your button presses when this field is selected. I like this feature as I can click in the macro field and then simply press GO on playback 1 and it will record this command into the macro.

Most consoles will also allow you to trigger a playback style macro as the show file is loaded or started. This is great to set the state of the console by recalling views, selecting pages, selecting a master cuelist, and more.

‡‡         Keystroke Macro

The last type of macro you will encounter on lighting consoles seems to be not as common as it once was. A keystroke macro will record in real-time any actions you make on the console. This is a great way to automate command structures quickly and easily as it is simply repeating your previous actions. I prefer to use this type of macro when doing complex copying routines or if I need to make custom fader or encoder movements. First you tell the macro to start recording, then it will store all actions and the time between them. When complete, you tell the macro to stop recording. Now anytime you trigger this macro, it will repeat exactly what you did. Often I will also edit the timing in the macro to speed up my initial entry timing.

‡‡         Macro Sharing

Once created, macros become another element in your toolbox. Just like other parts of the dataset, you can export your macros and share them with others. In fact, many macros are shared or even sold on various on-line console groups. Always use caution when merging in new macros, as you may not be aware of all that the macro is doing. I always take a moment to open shared macros to view the actions they are actually taking. I am not worried about corruption or destructive actions (more on that below), but instead checking that I understand what it is doing and ensuring it is as intended and labeled.

For example, I once saw a macro that was labeled “update selected cue,” but when I looked at how it was written, it had an error. It would unintentionally replace cue data instead of merging it. This is not what I was expecting, but perhaps this is what the programmer who created it wanted for their particular usage. Had I not checked this, the macro would have caused me great problems.

‡‡         Macro Ignorance

Usage of macros, particularly shared macros, can lead to a programmer problem I like to call “macro ignorance.” This happens when a programmer relies on macros to replace standard knowledge of console functions or basic programming practices. It can happen to even the best of us, so we should all be aware of the condition.

Recently I was programming on a desk and using my standard set of macros and console layout. It had macros I made and others that were “given” to me. On this particular show, I realized that I wanted to park one specific parameter of a particular fixture. I immediately reached for my standard “park current selection” macro and knew this would not do the desired job. It was in that moment that I realized that I did not know how to park on this desk; I only knew how to use this basic macro!

So I quickly opened the user manual and read the section on parking. Within moments, I was able to execute the desired command, and I learned more about the abilities of the desk than just using that good ol’ macro.

Macros are great, but they can limit your knowledge and ability on a desk. Be sure that you are using them as a tool and not a crutch. I have also seen macros that perform much of the initial show-file setup for you. While this may be seen as a time saver, it leads to “macro ignorance,” as you never really learn how the console operates.

‡‡         Macro 666

You may have heard the rumors, and I can tell you that it is true! There was (at least once) a programmer that held a show hostage with the creation of a macro that would destroy all data in the desk, all future saves, all loading of additional files, and more. The intent was to ensure he was paid for his services by a certain date, otherwise the show file and all data would be destroyed.

Macros can be used for evil and destructive purposes. I know that no one reading this article would ever do such a thing, but be aware that it can happen. Just like your computer can be infected with a virus, so too can macros cause problems. Always know the sources of imported macros and check to see what the actual functions contained within are set to execute. Furthermore, check to see if the console has a method to stop running macros.

‡‡         A Bigger Toolbox

Macros are a wonderful tool that lighting programmers can and should embrace, both for programming and playback functionality. Every console, of course, behaves differently, and thus you need to refer to your console user manual to determine how best to make use of macros in your desk. Use caution when sharing macros, and try to avoid macro ignorance. With the aid of macros in your show programming, you can achieve many exciting things!