The Second Cut

X-keys Macro Keyboard for OBSESSION© - Revision 1


(This is about a commercial product with which I have no business connection whatsoever. If you use a lighboard that accepts a PC keyboard as a control surface, it may be useful to you.)

While browsing The Light Network (a "Delphi Forum"), I read several posts by Mark Vlahos, the head electrician on The Producers U.S. tour. He described his use of X-keys to update his ML positions at each tour stop. Although my own control needs are a bit different, I decided to try out the product, and was very pleased with the results.

This might also be useful for any job where a large number of macros need to be accessed and run many times.

P.I. Engineering in Michigan makes several products that facilitate input to PCs. I bought ($149.95 plus shipping) an X-keys Professional 58-key PS/2 (their model number XF-09-PS) to connect to my Obsession 1500. (To be clearer, that's an Obsession I, with the original, slower processor.) Mark uses his with an Obsession II.

I bought direct from P.I. Engineering. I understand that some of their resellers are CDW, Cyber Guys, Dalco, and Tiger Direct.

This unit plugs between a PC keyboard and the machine it's connected to. It must have a keyboard connected for it to work properly. Initially, you use the keyboard to a store a string of keystrokes for each X-keys button. (The X-keys' memory is non-volatile.) It has a huge capacity, which seems to be shared, dynamically, between all of the buttons.

The most important limitation (which will be familiar to Obsession Off-Line users) is that the state of the Scroll Lock key is not included in each individual macro. That means that you must press the <Scroll Lock> key (once) each time you boot up the Obsession. If you use the keyboard to enter Cue Labels for the Obsession, you'll have to press <Scroll Lock> before and after you do the alphabetic typing.

Be sure to buy the "PS/2" model of whichever X-keys you choose. Mine came with a "Keyboard End" adapter, so you could plug in either a DIN (big) keyboard plug, or the newer PS/2 mini-plug. Since my X-keys came with a male DIN output plug (the one that goes into the Obsession), it was perfect for Obsession I. You may need to buy a second adapter for Obsession II. But it would be wise to inquire exactly what plugs your X-keys was manufactured with. Do not buy the X-keys USB model. It's easier to program, but useless for an Obsession!

Here's a HTML-table view of the 58 keys on the X-keys, with the keytop labels installed under the snap-off key caps. This was my first edition, customized for the NY City Center Encores! production of Pardon My English.:

Preheat & Focus

PBIC Record

POS Rec Grp

POS @ Group

GO TO Q Next

Block * Block *

GO TO Page 0

All Home & Mark

CLEAR

FOCUS 16

FOCUS 17

FOCUS 18

FOCUS 19

FOCUS 20

 

 

 

Out Next FL

FOCUS 11

FOCUS 12

FOCUS 13

FOCUS 14

FOCUS 15

 

 

 

 

Low Attribs

P

B

Attribute

Attribute All

L I V E

 

FOCUS 43

High Attribs

I

C

Block All

Intensity Block

V*L STRIKE

FOCUS 33

FOCUS

42

PBIC Update

POS Record

PBIC Record

Record COL Lib

P B I C

V*L DOUSE

FOCUS 32

FOCUS 41

POS Update

POS @ Group

PBIC @ Group

Color Library

ENTER

V*L RESET

FOCUS 31

The ML fixture numbers you see on the keys are laid out to match the light plot: 11-15 on Pipe 2, 16-20 on Pipe 3, and the higher numbers on the SL and SR booms, going upstage from 41 and 31 on the apron. This turns out to be very helpful in calling up an ML quickly.

The keyboard macro stored for each key (in my system, anyway), is almost always "M* xy Enter", where x is the row number of the key, and y is the column number of the key. There are just a few exceptions. These are cases like "OUT NEXT FULL", where you couldn't type "M* 53 <Enter>" on the console itself and get the right result. What happens in that case is that the command line loses its' knowledge of the preceeding fixture or channel number. (Yes, you could, however use the <M1> through <M7> keys. <M*> produces a different result.) The other exception is similar, but has a less drastic remedy. Because there is a macro being typed in with the keystrokes for "<M*><n><n><Enter>", you lose the fixture selection, and "Fixture All" or "Attribute All" appears. I found that you can avoid this by including "<Color><Clear>" in the X-key macro line, before the <M*> command.

Look at Macro 48 for another example of this solution, within the macro itself. The macro reads "COLOR HOME • @ CLEAR CLEAR". That's so that when the (human) user next types, the fixture whose COLOR was sent HOME will still be on the command line. Without the additional keystrokes, the command line will be cleared when live typing resumes.

When you record the X-key macros, make sure you're using the right keyboard template. Do not use the Obsession Off-Line template, it's the wrong one. You can find the chart in your console manual, or display it on the console by keying "<Shift><F1>" on the keyboard.

I included the chart above because it's helpful for someone who uses the same plot and show for weeks at a time. But I found that re-doing the X-keys and the show macros took too long for short-runs. I created a new X-keys layout that I hope will work for most of the short-run shows we do with moving lights. Here's the chart:

Make Int BLK

Make FOHBlk

Make FTB Blk

Make DBO Blk

Make Blk ALL

Attrib All

Low Attribs

All Home &Mark

CLEAR

B-I-C Home

BowPre Label

BOWS Label

BUMP Label

FLASH

Attrib

High Attribs

COLOR Home

Out Next.FL

1

6

11

16

21

P B I C

 

V*L STRIKE

2

7

12

17

22

PBIC Rec Grp

POS Rec Grp

V*L Douse

3

8

13

18

23

PBIC Record

POS Record

V*L Reset

4

9

14

19

24

PBIC Update

POS Update

RecCOL Library

5

10

15

20

25

PBIC @ Grp

POS @ Grp

COL Library

Below is a list of the Obsession macros. I chose to make the top row of X-keys start off with the Macro 31, and each row starts over with 41, 51, and so on. To be specific, the top-left X-keys button contains PC keystrokes <Alt- 8><3><1><Enter>.

Note that I have changed the "Intensity" attribute to be in the "None" class of attributes. That means that "POSITION BEAM IMAGE COLOR RECORD" grabs everything except Intensity.

   31  BLIND-DISPLAY GROUP 899 BLOCK • LABEL *Intens. BLOCK •

   32  GROUP SUB 25 @ 0 • BLIND-DISPLAY GROUP SUB 25 @ 0 • LABEL *FOH Out 
      & *BLK • LIVE-DISPLAY

   33  GROUP 899 @ 0 • LABEL *FTB *BLOCKED • LIVE-DISPLAY

   34  TIME 0 • GROUP 899 @ 0 • LABEL *DBO *BLOCKED • LIVE-DISPLAY

   35  BLOCK • LABEL *BLOCKED ALL •

   36  ATTRIBUTE ALL

   37  DOWN-ARROW  .....SEE NOTE 1!

   38  1 > 18 ATTRIBUTE 1 @ 0 • POSITION BEAM IMAGE COLOR @ GROUP 900 •
       ATTRIBUTE 1 @ 0 •

   39  CLEAR

   41  BEAM IMAGE COLOR HOME • @ CLEAR CLEAR CLEAR CLEAR  .....SEE NOTE 2!

   42  LABEL BOW Preset •

   43  LABEL BOWS •

   44  LABEL !!BUMP •

   45  FLASH •

   46  ATTRIBUTE

   47  UP-ARROW  .....SEE NOTE 1!

   48  COLOR HOME • @ CLEAR CLEAR

   49  OUT NEXT FULL •  .....SEE NOTE 1!

   51  1 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   52  6 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   53  11 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   54  16 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   55  21 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   56  POSITION CLEAR POSITION BEAM IMAGE COLOR  .....SEE NOTE 2!

   58  @ 99 • MACRO-WAIT 3 . 5 • @ 00 • MACRO-WAIT 1 • CLEAR

   61  2 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   62  7 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   63  12 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   64  17 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   65  22 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   66  POSITION BEAM IMAGE COLOR RECORD GROUP  .....SEE NOTE 2!

   67  POSITION RECORD GROUP  .....SEE NOTE 2!

   68  @ 66 • MACRO-WAIT 3 . 5 • @ 00 • MACRO-WAIT 1 • CLEAR

   71  3 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   72  8 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   73  13 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   74  18 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   75  23 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   76  POSITION BEAM IMAGE COLOR RECORD  .....SEE NOTE 2!

   77  POSITION RECORD  .....SEE NOTE 2!

   78  @ 33 • MACRO-WAIT 3 . 5 • @ 00 • MACRO-WAIT 1 • CLEAR

   81  4 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   82  9 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   83  14 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   84  19 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   85  24 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   86  POSITION BEAM IMAGE COLOR UPDATE  .....SEE NOTE 2!

   87  POSITION UPDATE  .....SEE NOTE 2!

   88  COLOR RECORD LIBRARY  .....SEE NOTE 2!

   91  5 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   92  10 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   93  15 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   94  20 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   95  25 ATTRIBUTE ALL @ GROUP 900 • ATTRIBUTE 1 FULL • ENCODER-PAGE-1

   96  POSITION BEAM IMAGE COLOR @ GROUP  .....SEE NOTE 2!

   97  POSITION @ GROUP  .....SEE NOTE 2!

   98  COLOR LIBRARY  .....SEE NOTE 2!

"NOTE 1": These 3 macros have the actual keyboard/facepanel emulation keystrokes recorded in the X-keys. In these few cases, the Obsession command line responds "the wrong way" if you use the <M*> key.

"NOTE 2": This is a more subtle case of NOTE 1. Just typing the <M*> key loses the desired command line contents. Specifically, the user has just selected or edited a Fixture. If the Fixture number goes away, the board supplies <FIXTURE><ALL>, which is not what we want. I found that if the X-keys types <COLOR><CLEAR> before the board macro types our real command, the command line remains on the Fixture (or range of Fixtures) it commanded before.

So in the case of M* 76, after the X-keys types <COLOR><CLEAR>, Macro 76 is then able to type the contents listed above, without changing the selected Fixture(s). That X-keys button contains the PC keystrokes <Alt- C><Bksp><Alt- 8><7><6><Enter>.

Finally, if you want to print key top labels for your X-keys, there are various templates for them on the X-keys site. Here's a Microsoft Word (sorry, that's my word processor) document for my macros above. Click on the next link to download. (Right-Click and chose "Save Target As...." if you have trouble downloading it.)

MS Word Key Top Template Document (pmexkeys.doc   27K bytes)

Thanks again to Mark Vlahos at The Producers.


Copyright © 2004 Timothy H. Buchman
Trademark notices     Privacy statement
Back to Home
 
Published: April 21, 2004
Modified: October 27, 2004