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

Autumn Update 2012

Three major product updates happened for October 2012.

Mobile Action Pad

Mobile Action Pad

The Lighting Application Suite 6.0 is released. New features are the Color Picker for Action Pad, Emotion FX DMX Output and the Dynamic Scrolltext for Live FX. More to read in the e:cue website.

With the Butler XT2 firmware version 2.0 you now can control the engine with Action Pad in standalone mode. Either with a Flash-enabled PC web browser or with …

The Mobile Action Pad for iOS and Android. Supports the new styles in the Action Pad and the Color Picker. Read more

 

How to configure the Mobile Action Pad

The Mobile Action Pad for iOS and Android is a great tool to control the Programmer or the Butler XT2 with a firmware version 2.x. Here is a short description how to configure the Mobile Action Pad, assumed that there are Action Pages created in the Programmer, and downloaded to the Butler XT2, if it is used with this DMX engine.

Google Play Store

Download the app from the iTunes App Store or from the Google Play Store, search for “e:cue” to find it, install it on your smartphone or better on a tablet. Add the app to your menue to have fast access. Start the app and the following steps are the same for iOS and Android. Here shown for the Android version.

When started the first time the Mobile Action Pad does not have a previous session with a server, so it will display the server selection, there are already two sessions defined: to two test servers at ecue.com. You can use these two entries for a basic test, both are simulations, one for smartphones, one for tablets. If not in the server selection, use the «Back» button to return to it.

Server definition

In the server selection, tap «Edit» in the upper right corner. All available sessions are displayed, delete sessions via the stop symbol, tap the cog wheel to edit an existing session. The cog wheel in the upper left corner are the application options.

 

To enter a new server, tap «Add» in the upper right corner. In the following form enter:

Server data

A symbolic name for the connection, then the address of the server. For a Butler XT2 this would be the IP address, e. g. 192.168.123.220. Use the server address, not the address of a switch or a WLAN router. For the Programmer use the IP address of the server, make sure that the HTTP server in the Programmer is enabled in the Application Options. A symbolic name like “ap.myserver.com” could only be used when a DNX server is available. In most LAS installtions this is not the case.

Default for the port number is 80. «Group» and «Start Page» are not mandatory, they are necessary when you use page groups in the Action Pad and if you want to define a certain page as start page.Server selection

After entering the data, tap «Ok», check your entry and tap «Done», the server selection returns. Tap your server oder use the cog wheel to edit the entry. That’s all. With the application options via the upper left cog wheel you set few display options or you can protect access to the app with a password.

 

Application settings

 

The app remembers the last valid session, so restarting the app later will first try to re-establish the last active session with a server.

Configuring a Butler XT cluster

Get the Flash Player to see this content.

Watch the fullsize video in WMV or in FLV

Programmer HTTP remote control

Via the HTTP server in the LAS you can access functions in the Programmer from a remote system. First, you have to configure and start the HTTP server in the Application options. When the configuration is finished, the HTTP server is ready for access. As there is no webpage in the server home path, you cannot see anything. But you can already trigger actions in the Programmer using a web browser. This is done through special tags inside the URL.

The basic syntax of an HTTP request is

http://ServerAddress/xmlget?RequestType=Request

or

http://ServerAddress/get?RequestType=Request

where ServerAddress is the IP Address or domain name of the HTTP server, RequestType is the type of request you want to send and Request is the request itself. As you can see, the only difference between the lines is the use of get and xmlget respectively. This affects the style of the results that the Programmer sends back to the browser after a request. Using get, the result is in plain text. With xmlget, the result will be sent in XML, with the following layout:

<?xml version=”1.0” encoding=”utf-8” standalone=”yes”?>
<xml_ecue version=”1.0”>
<request value=”…” tag_id=”…”/>
<result value=”1” error=”0” message=”OK”/>
<result_list>
<result_entry value=”the first entry” />
</result_list>
</xml_ecue>

XML-Tag Description

  • <?xml … standard XML header
  • ƒƒ<xml_ecue> protocol version number for e:cue HTML
  • ƒƒ<request> the request like it arrived at the Programmer
  • ƒƒ<result> ‘value’ – an integer value for the result, ‘error’ – nonzero value if an error  occurred, ‘message’ – error description in plain text
  • ƒƒ <result_list> holds a list of <result_entry> – tags
  • ƒƒ <result_entry> holds an attribute ‘value’ with results

Using get requires less result decoding effort but has a worse error handling. With xmlget,
in contrast, decoding is not as simple but you can see more easily what went wrong in case an error occurred. Empty spaces and various special chars are not allowed inside an HTTP request. You will have to transcode the request string to conform with the HTTP protocol. The JavaScript command XmlHttpRequest automatically transcodes forbidden characters into the correct format. You should use this command when you build your own website for remote access.

HTTP Request Types

The CallMacro request will execute a macro in the programmer. The macro must exist inside the show.

http://ServerAddress/xmlget?CallMacro=Name

You can also pass up to five numeric parameters, separated with commas. Examples:

http://ServerAddress/xmlget?CallMacro=MyMacro or http://ServerAddress/get?CallMacro=MyMacro,2,4,6

The ExecCommand request will execute a single line e:cript command in the  Programmer:

http://ServerAddress/xmlget?ExecCommand=CommandString

http://ServerAddress/get?ExecCommand=CommandString

In CommandString you can add any valid e:script command (or command sequence) like you would use inside the Programmer. You can also define global variables. Examples:

http://ServerAddress/xmlget?ExecCommand=StartCueList(QL(1));
http://ServerAddress/get?ExecCommand=if (undefined(_x)) int _x;_x=10;

http://ServerAddress/xmlget?ExecCommand=printf(“%d\n”,_x);

The AutoText request sends e:cue autotext to the Programmer. The Programmer sends back decoded autotext to the web browser as a result.

http://ServerAddress/xmlget?AutoText=AutoTextString

http://ServerAddress/get?AutoText=AutoTextString

Example:

http://ServerAddress/xmlget?AutoText=<cuelist 1 status>

Using the HTTP requests by typing them directly into the browser’s address bar is too complicated for real practical applications. It is of course possible to embed the requests into a website. This is what it’s all about: create your own website with your own control elements and put it online using the Programmer’s integrated HTTP server. You can also refresh any status displays or control elements without having to reload the entire page. This is typically realized using the AJAX web development techniques.

KiNET configuration

KiNet is a protocol used by Color Kinetics to control their LED fixtures and power supplies. It is a lightweight Ethernet-based protocol and uses UDP on port 6038. Be sure that no
hardware or software firewall blocks this port. As said for e:net a separate network segment should be used, at least a separate segment for all fixture communication.

There are two protocol generations over time, KiNET v1 and KiNET v2. KiNET v1 is also called DMXOUT and v2 is PORTOUT. The various products of Color Kinetics support one or both protocol versions. To use KiNET components there are two steps necessary: configuration of the KiNET power supplies including the control functions, and setup of the Programmer for KiNET communication.

For the first step you have to use Color Kinetics programs, these programs are available
from the Philips/Color Kinetics homepage. Note: as I dont have CK products at hand, this is a kind of dry run.

  • Visit www.colorkinetics.com and follow Support, then Downloads from the main and left navigation.
  • Download the Light System Composer, unzip it and start the installer. The LCS installer places a folder on your desktop, this contains links to several tools, one is the  Management Tool, this program is used to configure the KiNET power supplies.
  • Use Light View | Discover Interfaces to allocate the power supplies, assign a unique IP address.
KiNET Manager

KiNET Manager

The next step is to configure the Programmer. The KiNET devices are used with a special
driver available in the Device Manager. So in Programmer, open the Device Manager, select Add Driverand add a driver for DMX Output, use the KiNET DMX-Node and click Add.

After the driver was added the configuration dialog for the KiNET node opens automatically.

KiNET DMX device

KiNET DMX device

  • Assign a unique name for the device.
  • Enter the assigned IP address, the output universe in Programmer.
  • Select the correct KiNET protocol version, see the following table for the protocol versions supported by the CK devices.
  • DMX Start Channel allows a DMX address shift if any other DMX addresses are placed before the target fixture. ChromASIC is autoadressing mode, usually not used.

Click OK to enable the driver as DMX output device.

Product KiNET v1 (DMXOUT) KiNET v2 (PORTOUT)
PDS-150e Yes No
PDS-500e Yes No
PDS-60 24V Ethernet Yes No
PDS-60 24V DMX/Ethernet Yes Yes
PDS-60ca 12V Ethernet Yes No
PDS-60ca 7.5V Ethernet Yes No
PDS-60ca 7.5V DMX/Ethernet Yes Yes
PDS-70mr 24V Ethernet Yes No
sPDS-60ca 24V DMX/Ethernet Yes Yes
sPDS-480ca (7.5V, 12V, 24V) No Yes
Data Enabler Ethernet Yes No
Data Enabler EO/iColor Accent Powercore No Yes

Control the Programmer with MS Powerpoint

PPT2Programmer

PPT2Programmer

No joke, it is possible to control the Programmer via Microsoft Powerpoint. This works via the web server interface in the Programmer and the HTTP methods in Powerpoint. Do it like this:

  • ƒIn Powerpoint options | Popular enable the Developer Ribbon.
  • Place an object in your presentation, e. g. a square like a button.
  • Right-click the object, select Hyperlink.
  • In the Action Settings dialog, select Run macro and define a macro name,
    e. g. StartShow1.
  • In the Ribbon, select Macro in the PP Ribbon, create a macro, here StartShow1, go to Edit mode and enter this code:
    Sub StartShow1()
    Set objHTTP = CreateObject(“MSXML2.ServerXMLHTTP”)

    URL = “http://192.168.123.123/xmlget?ExecCommand=StartCuelist(QL(1));”       objHTTP.Open “POST”, URL, False

    objHTTP.setRequestHeader “User-Agent”, “Mozilla/4.0 (compatible;MSIE6.0;Windows NT 5.0)”

    objHTTP.send (“”)

    End Sub

Click Ok, close macro view. ƒƒ Dont forget to enable the Webserver in the Programmer!

Defining triggers for Butler XT2 standalone

Butler XT setup online/standalone

Butler XT2 setup online/standalone

For the e:cue Butler XT the definition of Triggers and Actions was quite clear. There were separated tabs for online and standalone mode, for Triggers and Actions. You could assign different Triggers and connected Actions for standalone mode and for online mode.

Butler XT2 setup

Butler XT setup

This has changed for the Butler XT2. The configuration of the Butler XT2′s Actions and Triggers in the Device Manager makes no difference between online and standalone mode. You will define all properties in one single dialog, as you can see on the left. No tabs, only one selection is possible. Define all Triggers and Actions here. When later exporting the show to the Butler XT2 and running a Quick Update, all Triggers not supported in standalone mode are not transferred to the Butler XT2, they are ignored. This seems a little bit confusing. The idea behind is to allow a simpler configuration and to harmonize the standalone and online configuration.

Triggers supported in standalone mode

Initialization Parameter context ignored
Cuelists Only stop/end supported
Hourly Seconds are ignored, only hour/minute
Label Fully supported
Periodic Fully supported
Sunrise Fully supported


Supported Actions in standalone mode

Cuelists Supported except parameter Choose
Mutual Exclude Group Fully supported
Set Intensity 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
Goto Page Fully supported

See the LAS System Manual, Chapter »Managing devices«, »Configuring a Butler XT2« for details.