QLab 3 and Quartz Composer - Syphon and MIDI control


Table of Contents

    Beyond working as an Image Filter, Quartz Composer can integrate very nicely with QLab to provide video options not currently possible in QLab. One of the current limitations in QLab 3 and Quartz Composer is the ability to only use image filter type compositions. This means that anything which employs a rendering context will not work with QLab. The example I'll be using here involves sampling a live video feed and looping segments in order to play back in QLab 3. But this applies to any renderer such as Render In Image, Accumulator, Sprites, Billboards, Replicate In Space, and more.

    Running Quartz Composer outside of QLab requires two essential elements. One, the ability to get the images into QLab (currently only available via Syphon) and two, to control elements of the composition directly from the QLab Cue List. My preferred method is MIDI, but OSC works as well.

    To get your image out of your composition and into QLab you will need to Download the Syphon for Quartz Composer patch here (https://github.com/Syphon/Quartz-Composer/releases/tag/4).

    Once you have the Syphon for Quartz Composer patch it operates like any other patch and functions like a Sprite or Billboard as a rendering context. Give your server a name in the Quartz Composer Inspector then route your final image into the Syphon server and off it goes.

    Below is a screen shot of a Quartz Patch I ran externally to a QLab show recently.

    screen shot 1

    I sent the final image to both a Syphon Server and a Sprite patch. This was so that I could have a preview of the looping image in Quartz Composer to ensure the loop record worked properly. Screen Left you will see a MIDI patch. This allowed me to control various elements of my composition directly from within QLab using a MIDI CC Cue. See the closeup below.

    screen shot 2

    You will see that I have the MIDI patch routing to various inputs including the Record and Clear parameters on my Sampler Patch and a Math Patch that takes information from a Stopwatch. With these three controls I was able to start and stop a loop record as well as clear the video if need be. The Math patch simply multiplied the Stopwatch value times 2 times the MIDI input (Quartz Composer normalizes the 0-127 MIDI values to a range of 0-1) thus allowing me to set the speed of the loop from anywhere between still and 2X.

    The easiest way to set up your MIDI cues is to pick your channels in QLab and then use the "Learn Controller to Observe" button in Quartz Composer (Select the MIDI Controller Receiver Patch and go to Inspector ->Settings). Pick your MIDI CC note in QLab. Switch to QC and click the Learn button then switch back to QLab and click Send Message. Switch back to QC once more and you will see a new Output on the MIDI Controller Receiver Patch. Route that wherever it needs to go. The Modulation Wheel and Pitch Wheel Outputs act a little odd so I suggest skipping those and using alternate Outputs.

    Because I can then send that data back to QLab 3 via the camera cue, any video effects I might want to apply to the image can be done via Custom Composition within QLab. So once I have my external Quartz Patch set up the way I need for the show, all my control and manipulation of the image happens within QLab.

    Because the cues in QLab are just MIDI CCs I would strongly suggest careful labeling of all cues in your QLab file. In the heat of tech you don't want to be thinking too heavily about what note you were sending where, you just want to copy and paste your "Camera 3 Timing" cue, or whatever.

    Have fun!