About Björn Kruse

Senior QA Engineer at Traxon Technologies Europe, Paderborn, Germany.

Programmer Preview window, change Background colour

Quite some times we hear the question if it is possible to change the background colour in the Preview window. It is – however a few manual steps are required.

Here is a short guide:

  • Edit the file PRGDefault.xml in “C:\Program Files (x86)\ecue\Programmer V7.0\Skins” (or wherever you installed the Programmer).
    You need Administrator rights to do this.
  • Search for “preview“, you’ll find two rows. “PreviewBackground” defines the outer color and “PreviewBackgroundClear” defines the inner color of the background.
  • Restart Programmer after changing the file!

Hope that helps,

Cuelist Property editing



With LAS V7.0 a new e:script command was introduced: CuelistSetProperty(). Now what is the point for you? You can save a lot of programming time by setting a Cuelist Property (say SpeedMaster) for many cuelists in one go.

“What does that help me – I’m no scripting guy!” Well, just import the attached macro and the Action Pad page into your own show. You’ll get an Action Pad page that allows you to alter a Cuelist Property of numerous cuelists with just a few clicks.

Just click the image to download the macro and the Action Pad page!

Emotion FX with DMX Output enabled

As periodic questions arise how to setup Emotion FX with DMX Output enabled, I’ll try to summarize the most important information here.

In the “System Manual LAS” in chapter “Emotion FX DMX Output” this is explained with more details for a RDM enabled installation. That requires two systems. In contrast this post handles the same setup without RDM (just DMX Output through Emotion FX), which is able to run on one machine.

Please note, that it will not be possible to have the same Butlers online in Programmer at the same time.

First, some preconditions have to be met:

  • Emotion FX must be able to run in Fullscreen mode (LCE dongle needed!)
  • you need two distinct network cards
  • they need an IP address assigned, so cable needs to be plugged in
  • the IP addresses of both network cards have to be on different subnets! (e.g. one on 192.168.123.* and the other on 172.22.122.*)
    As example lets say we have and
  • the network card with IP address 192.168.123.* has to be connected to the e:cue Butlers
  • of course the Butlers IP address have to be in the same subnet, so in this example something in 192.168.123.* and have to be connected to the network card
  • you need a patch (*.patx) where the Butlers universes are mapped (in Patchelor, Butlers checked online and Universe set, then save/export)
  • be sure that Programmer and Emotion FX are of the same version.
    A Programmer V6.1.* only works with an Emotion FX V6.1.*
    A Programmer V6.0.* will not work with Emotion FX V6.1.*

First, we set up Emotion FX:

  • go to Options > Network Setup > set “e:net Network Interface” to the IP address that connects to the Butlers, in this example it is the
  • go to Options > Network Setup > set “Discovery Service Network Interface” to the other IP address, we had chosen
  • machine restart required!

Next, Programmer:

  • go to Application Options > Advanced > set “e:net” to one of the IP addresses, as example we choose
  • in Seqeuncer, create an Emotion FX sequence. In the IP Address field, the “…” Button will show your – use it.
  • Emotion FX will be started and your Sequence connects to it. Content will already be shown on Emotion FX windows.
  • open the Sequence Properties > DMX Output Settings > Patch File and choose the .patx you previously created. Also tick the “Enable DMX Output” checkbox.
  • optionally also tick the “Show Mapped Pixels”. It will show a grid on top of the content of the Emotion FX fullscreen signal, that marks the pixels that are used to generate the DMX Output (according to your patch).

That’s it, the Butler should be online now and DMX output should be as the patched pixels grab it from the content that Emotion FX shows.

If you have problems with this, please state which steps are unclear or where you get stuck!

Here is a sketch that may help for quick reference.


Ramp Intensity Start / Stop actions

Today I realized that the Ramp Intensity Start and Ramp Intensity Stop actions are not intuitively understandable. The idea was to mimic the “Intesity Up” and “Intensity Down” actions from the Butler XT Stand Alone Mode triggers. That is, while holding a button, the corresponding fader will move up (or down) until the button is released.

To do so, create an Action Pad button with Toggle State = Push
As Action#1 use Ramp Intensity Start for the desired fader and a delta of 1.
As Action#2 use Ramp Intensity Stop for the same fader.

Here is an example Action Pad page:
Action Pad page - Ramp Intensity example (934)

A delta of 1 means that the fader changes by 1% per frame, so it takes 3 seconds to go from 0% to 100% (or vice versa).

Programmer > e:script Macro Editor > keyboard shortcuts

For an internal training, I was writing down a few keyboard shortcuts for the Macro Editor.
I wondered if there are more and remembered that the Scintilla engine was used. Searching the web led me to http://www.scintilla.org/SciTEDoc.html#Keyboard which shows all possible keyboard shortcuts.

Here’s a list of those available and useful in the Macro Editor – enjoy   ; )

Magnify text size. Ctrl+Keypad+
Reduce text size. Ctrl+Keypad-
Restore text size to normal. Ctrl+Keypad/
Indent block. Tab
Dedent block. Shift+Tab
Delete to start of word. Ctrl+BackSpace
Delete to end of word. Ctrl+Delete
Delete to start of line. Ctrl+Shift+BackSpace
Delete to end of line. Ctrl+Shift+Delete
Go to start of document. Ctrl+Home
Extend selection to start of document. Ctrl+Shift+Home
Go to end of document. Ctrl+End
Extend selection to end of document. Ctrl+Shift+End
Scroll up. Ctrl+Up
Scroll down. Ctrl+Down
Line cut. Ctrl+L
Line copy. Ctrl+Shift+T
Line delete. Ctrl+Shift+L
Line transpose with previous. Ctrl+T
Selection duplicate. Ctrl+D
Previous word. Shift extends selection. Ctrl+Left
Next word. Shift extends selection. Ctrl+Right

Upcoming blog posts

Hi all,

these are some ideas/topics where I think useful blog posts can be derived of:

  • bug 390 – tips and hints for using the video wizard (Bartek can give good inputs)
  • kiosk mode with supervisor mode (with help of AutoHotkey) (kiosk_supervisor.zip)
  • moxa e:script commands need DIGITAL_INPUT_0 (instead of INPUT_0) since 5.5
  • “import another patch”, behavior of FX in this situaion:
    A side effect is also that after an import of a new patch the FX won’t be editable.Both issues are fixed with this bug fix.
    The first situation (deleted fixtures) gives a warning in the logbook. The FX still won’t be editable. Use templates to save and reapply the template to keep the FX.
    The second issue (additional fixtures) won’t be a problem.
  • Done. [Rainer]
    blog post for Programmer<->Powerpoint (see LAS System Manual S. 173)
  • Moved to existing post [Rainer]
    Triggers supported in standalone mode
    Initialization – parameter context ignored
    Cuelists – only start/stop supported
    Hourly – seconds are ignored, only hour/minute
    Label – fully supported
    Periodic – fully supported
    Sunrise Timer – fully supported
    Supported Actions
    Cuelist – supported except parameter Choose
    Mutual Exclude Group – fully supported
    Ramp Intensity Start – fully supported
    Ramp Intensity Stop – fully supported
    Reset All – fully supported
    Step Intensity – fully supported
    Stop all cuelists -fully supported
    Trigger Label -fully supported
    Hibernate – fully supported
    Freeze – fully supported
    blog post for triggers supported in Butler XT2 Stand Alone Mode:

    [email von Jens, Di 03.07.2012 15:47]
    Triggers supported in standalone mode
    Initialization – parameter context ignored
    Cuelists – only start/stop supported
    Hourly – seconds are ignored, only hour/minute
    Label – fully supported
    Periodic – fully supported
    Sunrise Timer – fully supported
    Supported Actions
    Cuelist – supported except parameter Choose
    Mutual Exclude Group – fully supported
    Ramp Intensity Start – fully supported
    Ramp Intensity Stop – fully supported
    Reset All – fully supported
    Step Intensity – fully supported
    Stop all cuelists -fully supported
    Trigger Label -fully supported
    Hibernate – fully supported
    Freeze – fully supported
  • macro “toggle XT2 enable/disable” on AP button
  • “Action Pad connection problems” – suggestions
    switch to WPA2 (if not yet)
    turn off Auto-Brightness and make sure brightness is NOT set to the minimum (no joke!)
    turn off bluetooth
    use a current router (best an apple router)
    reset the iPads network settings (General > Reset > Reset Network Settings)
  • preview_updates (how to set them correclty, -1 vs 50000, trade off)
  • bpm master, bpm-crossfade-master (AP > cuelist control)
  • cuelist view, doubleclick on different rows leads to different functions
  • create an “e:cue programming cheat sheet”, which contains (at least) the following tables: “Trigger -> Call Macro”, “RegisterEvent(…) parameters”, “DMX Input Remote Control channels”, tbc
  • Done by Björn. [Rainer]
    channels behaving like inverted, but they are not
  • How To create an “On Exit Online Mode” Trigger (XT2), which runs ONLY in Offline Mode, not in Programmer online?
    (when I load a show, nothing should happen. Wenn I take the XT2 offline, QL1 should play)
    workaround: Play Cuelist, that stops itself via CallMacro. Call Macro does not work offline, so the Play Cuelist remains. Online the QL will immediately be stopped.
  • Programmer Action Pad vs remote (Browser/iOS) Action Pad – what does work, what does not?
    Cuelist Control
    Trigger Rules with Action Pad Event
    Page switch not forwardable to clients
    execute macro -> Programmer ActionPad MUST show the page that contains the button with the CallMacro action
  • working with the Action Pad: how to use the “Assimilation”, keyboard shortcuts (arrow keys = move; shift+arrow keys = duplicate; ctrl+enter = properties; etc)
  • explain that the FX Templates (Live Fx dialog) can be edited, deleted, organized by manually handling the files in C:\ProgramData\ecue\Programmer V6.0\FxTemplates
    One level of subfolders is allowed for structuring. The files will be read instantly on opening the menu in Live Fx dialog (no need to restart, etc.)
  • Done by Rainer. [Björn]
    Butler S2/XT2, how to behave like the old Butler Classic? On initialization trigger, put all QLs in same mutual exclude group 1 and action mutual exclude group > 1 > next
  • XT2 Standalone(!): on an input (dry contact) a cuelist is played. How to make this a cuelist different for workdays/weekend? Idea:
    On trigger, play all cuelists.
    All cuelists have a VMaster.
    On monday, set VMasters accordingly; on weekend vice versa.
    Example show: Damian Gale, LSV 13-6-13 for PB.shw
  • In a macro, wait for something (e.g. until device online). How to do it best?
    Cut your original macro into 3 pieces: before-wait, wait, after-wait
    QL a contains 3 cues: cue 1 calls before-wait, cue 2 calls QL x, cue 3 calls after-wait)
    QL a has Auto release on end!
    cue 1 and 3 have Control = 1.0s (or similar)
    cue 2 has Control= End QL x
    QL x contains 1 cue, which calls wait every 0.1s
    wait stops QL x, if device online
    Now everything is in place and by playing QL a you start the whole thing.
  • describe how to trigger something (e.g. play a QL) from a received TCP message, see http://www.ecue.com/forum-test.html?tx_mmforum_pi1%5Baction%5D=list_post&tx_mmforum_pi1%5Btid%5D=2408&tx_mmforum_pi1%5Bfid%5D=10
  • Color Picker pitfalls: 1) set CP to full white before export! 2) user trigger label to start (do NOT user actions within the QLs!)
  • password for remote (browser) ActionPads. Seems not possible via macro. See remoteActionPad_password.shw for example
  • Some Library channel names have a special meaning. Explain those and how you can get around it. See http://www.ecue.de/bugs/view.php?id=2380#c3772 for some infos.
  • HowTo enable Programmer Webserver (for remote ActionPad) to listen on all NICs, see http://www.ecue.com/forum-test.html?tx_mmforum_pi1%5Baction%5D=list_post&tx_mmforum_pi1%5Btid%5D=2920&tx_mmforum_pi1%5Bfid%5D=13
  • Scrolltext (wizard) with unicode letters and seamless wrap-around in Bitmap Wizard
    see http://www.ecue.com/forum-test.html?tx_mmforum_pi1%5Baction%5D=list_post&tx_mmforum_pi1%5Btid%5D=2948&tx_mmforum_pi1%5Bfid%5D=5
  • to be continued…

Channels behaving like “inverted”, but they are not

Due to a customer complaint, I came across the following issue, which caused the customer and myself half a day to detect the real cause and to configure the LAS to work as expected.

Hopefully this blog post helps some of you out there finding a solution more quickly.

A Future Light > PHS-260 was patched in Programmer V5.3. The Intensity channel has a mistake in the Main Library (Inverted=true), so the customer copied this fixture to the User Library and set Inverted=false.
But then patching a PHS-260 in the Programmer, setting Intensity to x% and playing with the GrandMaster still causes an inverted behaviour (pulling the GrandMaster down makes the Intensity channel go up and vice versa).

Reason: the GrandMaster at 0% is not simply setting all channels to 0%.
The closer the GrandMaster comes to 0%, the closer the channels go to their Default value.

In this case, the Default of the PHS-260 had also a mistake in the Main Library, it was set to 255. So pulling the GrandMaster down set the Intensity channel up (closer to 255).

The quick solution was clear: setting Default=0 in the User Library solved the behavior.
The Main Library will of course be corrected in the next LAS release. So keep in mind taking a look at both, Default and Inverted, when you work with these settings in the Library   ; )