Create a simple audio-reactive visual with Quartz Composer and VDMX

This Tutorial will give you a glimpse into the audio-reactive possibilities of Quartz Composer patches in VDMX.

Create a simple kaleidoscope effect in Quartz Composer

If you don’t have Quartz Composer, this tutorial can help you get set up.

  1. Open Quartz Composer and create a Basic Composition
  2. Drag an image or video file into the composition
     Drag in an image or video fileInitial output view
  3. Drag in a Billboard patch from the Patch Library.
    In the Patch Inspector adjust the Width value to 2 (making it full width in the Quartz Composer coordinate system)
    Change the Pixel Aligned value to 1 to ensure pixel aligned output.
    Add a billboard patch and adjust the width and pixel aligned values
  4. Delete the Layer patch connected to the image input and drag in a Kaleidoscope patch from the Patch Library.
    Connect the image output to the Kaleidoscope image input and the Kaleidoscope image output to the Billboard image input.
    In the Viewer you will see the effect applied.
    Added the Kaleidoscope effect

Adjust the patch to take video input from VDMX

Quartz Composer allows you to publish inputs so they can receive values or data from other software. In this case we want to control the kaleidoscope count and angle and apply the effect to a video clip from VDMX. In order to do that we will insert input splitters for each of the effect values and will publish their inputs.

  1. Right-click on the Kaleidoscope patch and select “Insert Input Splitter > Angle”
     insert an input splitter for the angle value
  2. Select the input splitter “Angle” and hit ⌘+I to open the patch inspector. 
    Under “Settings” select Type: “Number” and set the minimal and maximal values to -90 and 90 respectively.
    set up the values in the patch inspector
  3. Right-click on the input splitter input and select “Publish Inputs > Input”
    Rename the input to “Angle”
     publish the input
    Published inputs appear green.
    published inputs appear green
  4. Repeat the same procedure for the “count” and “image” values
  5. Set the “count” settings to “Number” with minimal and maximal values of 6 and 40
    count settings
  6. Set the “image” settings to “Image”
  7. Delete the original image input we dragged in.
    published image input
  8. Save your composition as a patch “Kaleidoscope patch.qtz”.

Screen recording of the previous steps 

KaleidoscopeTutorial 01 QuartzComposer from Tobias Treppmann on Vimeo.

Add the patch to VDMX’s Effects Library

  1. In Finder locate the file you just saved and copy it to the clipboard.
  2. Hit ⇧⌘G to open the “Go To Folder” dialog and navigate to “~/Library/Application Support/VDMX/qcFX/“
  3. Paste the file into the qcFX folder.

Load the patch into VDMX

  1. Start VDMX and play a video clip. 
  2. In the Workspace Inspector under “Layers” select “Layer 1” and under “Layer 1 Composition” set the Sizing Mode to “Fill”.
  3. Under Layer FX select “Load Asset > Misc. QC > Kaleidoscope patch.qtz”.
     Select the patch as a layer effect
  4. See the effect applied and notice the Count and Angle controls.
     Our quartz patch applied 

Screen Recording of the previous steps

KaleidoscopeTutorial 03 VDMX setup from Tobias Treppmann on Vimeo.

Let the music play

  1. create a second layer in VDMX and call it “Audio”
  2. Add a Media Bin ⌘B, assign it to the “Audio” layer and play the audio file
    Audio Layer
  3. In the Workspace Inspector’s  “Plugins” tab click the “+” button and select “Audio Analysis”
    Add Audio Analysis Plugin
  4. Click the Recycling Icon to activate the audio input.
    The Audio Analysis Plugin

Hook up the Audio Analysis to our effects

  1. Set the Filter 2 in the Audio Analysis plugin to a spot where it get’s some input, but not the main action or rhythm. 
  2. Right-click on the Angle control under Layer 1 FX and select “Use Data Source > Audio Analysis 1 > Filter 2″
    Use Data Sources
  3. Then adjust the input range to something that makes for a gentle effect.
    Adjusted Range
  4. Let’s support this effect by creating a continuous visual rhythm by moving Filter 3 in the Audio Analysis plugin to a spot where it captures the beat of the song. 
  5. Then assign “Audio Analysis 1 > Filter 3” as a Data Source for the Width and Height of Layer 1.
  6. Limit both ranges to 1.0 – 1.50 or something that feels good. 
    Visual Rhythm

Screen Recording (with Audio) of the previous steps and the final result

KaleidoscopeTutorial 04 VDMX AudioAnalysis from Tobias Treppmann on Vimeo.