Stage Lighting Design with Max MSP, EOS and Capture

I have recently worked on two interactive stage lighting design projects for concert music. Whereas stage lighting is well explored in popular music, it’s still not very common in concert music. Of course, a light show must convey some meaning and adding flashing lights to concert music can be out of context, especially in music composed before the 20th century. However, on some occasions, a light show can add up to the concept of the music and make it multisensory, not to mention that new music can be composed specifically to be performed along with lights (see my compositions Future Lights and Intersidereal).

In these two recent projects (March 22 and April 22), I worked with the music of Scriabin, the first composer to notate light colours in the score (Prometheus), and the music of Messiaen, who also explored ideas of synesthesia and provided annotations in his score related to colours. Both concerts were held at the Tung Auditorium, a new venue in Liverpool hosted by the University of Liverpool. Initially, I thought it would be easy to explore its lighting console, the Ion XE 20, and fixtures (16x D60XTI and 4x SolaFrame Theatre + many house lights). However, the venue launched with a busy schedule, hosting not only performances but lectures and graduation events. There was little time reserved for me to connect equipment and test, so designing anything on the spot was impossible. Therefore, my only solution was to create a 3D simulation system, in a way that the same interface could be connected directly to the auditorium’s console.

A nice free software (student version) for simulation is Capture. I have used this for many of my virtual performances, including a 3D virtual stage I created to be used with chromakey, multiple cameras and other special effects for the online performance of Intersidereal. This time though, I used it only for simulating the stage and designing the light shows. If you know the basics of Capture, it’s not hard to recreate a stage. My references were only photos of the Tung Auditorium, so it wasn’t super precise, but enough for the job.

Tung Auditorium 3D simulation on Capture

Connectivity and Mapping Fixtures

The Max interface connects to the lighting console and to Capture.

The way I control Capture is through Cycling ’74s Max (Max MSP), via Art-Net, using the imp.artnet.controller object (Max external). To make this work, Capture’s Art-Net IP (Option/Connectivity) must match the IP in the Max object. This is usually the WiFi address you are using, but if there is no WiFi router (as happened to me during a rehearsal), it’s also possible to use a Npcap Loopback Adapter (in Windows).

The light show cues were all programmed in Max, sometimes receiving Serial (e.g. from an Arduino sensor) and MIDI (e.g., keyboard controller). Javascript within the js object was also used, especially for mapping fixtures and creating for loops. This allowed the quick implementation of light chasers, etc.

The ETC Ion XE 20 lighting console runs the EOS system. The way I connected Max to the console was via OSC (with an Ethernet cable), by using the Max object udpsend and sending messages like: /eos/chan/1/param/blue 31 . Note that the ping test message didn’t seem to work, and for successful connection it was required to restart the console sometimes (I posted the settings I used in the Max forum).

Max MSP sending messages to Capture (via Art-Net) and to EOS (via OSC), in addition to Javascript mapping systems.

The free (student version) of Capture doesn’t provide many choices of light fixtures, and so the Tung Auditorium’s fixtures were not available for simulation. Therefore, to create a system that worked simultaneously with the EOS (performance console) and Capture (3D simulation), I was required to do some mapping via Javascript. The fixtures I used in Capture were Idea Color Changer 575 and ColorWash 1200E AT. The house lights were not controlled in the performance and therefore not mapped, but in Capture, I had them designed with Par 64. In summary:

D60XTI (Auditorium Fixtures) > Idea Color Changer 575 (Capture 3D simulation fixtures)
SolaFrame Theatre (Auditorium Fixtures) > ColorWash 1200E AT (Capture 3D simulation fixtures)

Mapping was needed because different fixtures have different channels (for example, the red colour for fixture 1 is channel 3 on Capture, while the OSC message for the EOS would be /eos/chan/1/param/red 31). In addition to channel mapping, values also needed to be mapped. Capture receives values from 0 to 255, whereas the EOS receives 0 to 100. Conversions from RGB to CMY were also required. Capture’s fixtures were all CMY, but the D60XTI on EOS received RGB.

Control and Cues

For the Scriabin’s light show, a simple system of cues was set, as most changes were controlled by a MIDI keyboard that operated as a light organ, in addition to real-time light effects that were triggered from the audio input (microphone). The light organ was polyphonic, meaning it could control up to 6 different colours (coming from lights in different places) at once. Aside to the stage lighting, it also controlled the Insekta sculptures.

Max interface used in Scriabin’s Sonata No. 10.

There were 3 pieces to be designed for the Messiaen concert, and each piece required many annotated cues. Score images with cues were prepared in Photoshop, then implemented in Max via the fpic object. The preset object was used to store colours and fixture positions, while the radiogroup object indicated cues for triggering a variety of effects. The keyboard commands set were z/x for changing score pages, left/right arrows for changing cues, and the space bar for other interactive commands.

Interface on Max for following the score and to trigger cues.

There are many more details I could mention, but I think this explains the basics of the technology used in these two concerts.


Scriabin’s colours were translated through an analysis system invented by Professor Kenneth Smith and the sculptures represented insects as the Sonata No 10 is known as the Insect Sonata.

Messiaen’s pieces were also analysed, following colour indications annotated on the pieces along with other ideas related to birds (the theme of the pieces). For example, in Abîme des Oiseaux, lights on the stage floor represented feathers. In Le Merle Noir, moving heads suggested birds moving around the stage, and in Le Merle Bleu, the blue and green tones were used to represent the sea, and distinct colours were assigned to every harmonic change.

This video shows a rehearsal simulation of Messiaen’s pieces on Capture:

This video shows excerpts of the performance:

You can watch the full performances on YouTube:

Olivier Messiaen, Birds and Colours – Performing Nature
Le Merle Noir, Messiaen, for Flute and Piano
Le Merle Bleu, Messiaen, for Piano
Abîme des Oiseaux, Messiaen, for Clarinet

James Kreiling plays Late Scriabin
Sonata n.10
click here more information about the Insekta sculptures used in this concert.