Spectacle (v2.0) by Evan Douglas Peters
Updated August 25, 2020
Spectacle (v2.0) by Evan Douglas Peters
Updated August 25, 2020
With Spectacle, you can control performance visuals from inside your DAW via MIDI messages.
Download the Spectacle dmg and open. Drag Spectacle into your Applications folder. If you'd like to install the Max for Live devices, drag them and drop them on your Max for Live devices folder. To find this folder, go to your Ableton User Library, then Presets/MIDI Effects/Max MIDI Effect (unless you've changed your M4L device directory).
Create a blank MIDI track and route the output to your IAC driver on Channel 1 (tips on setting up your IAC driver here). For Ableton Live users, drop the Spectacle Max for Live device on this channel. This track will control your videos.
Open Spectacle, and load videos into the array by clicking on one of the slots in the scroll menu. You can also drag and drop your videos into Spectacle to add them. Make sure that you've converted your videos to HAP .mov files (see TIPS section below).
In your MIDI track, draw notes into a MIDI clip to trigger the videos.
You can also trigger the videos with the number keys on your keyboard:
The dropdown boxes below the knobs on the M4L device allow users to change the input MIDI CC that the FX are looking for. This only applies to users with hardware controllers that don't allow for CC re-assignment via MIDI mapping; so most users shouldn't change these values.
You can also control the FX values with the sliders in the GUI, however, these changes won't be reflected in your DAW automation or the Spectacle Max for Live device.
FX are manipulated with control messages. With the above track setup, automate the MIDI CC's that correspond to the desired FX from the table below (for all toggle-type controls, MIDI values >63 set the toggle to ON, and MIDI values <=63 set the toggle to OFF) :
For Ableton Live Suite users, there is a Max for Live controller device that accompanies the Spectacle download. This device simply takes the MIDI parameters used by Spectacle and labels them (so that the user doesn't have to worry about matching CC values to corresponding FX using the table above). To install the device, drag the Spectacle.amxd device and drop it on your Max For Live device folder. Then drop it on the track routed to channel 1.
Row 3 has sliders that indicate the DMX value being sent to each light.
To label any of those sliders with a custom label, simply click where it says "Type Parameter Here" and type in the your label. These labels can be saved and recalled later via the SAVE and then the LOAD buttons.
Ableton Live users need to put the Spectacle DMX Max for Live device on a second MIDI track, with its output routed to Channel 2.
NEW PROJECT will clear the video array and any custom names of the DMX sliders that have been typed in.
SAVE will save the paths of the videos in the array, as well as the custom names typed in to the DMX sliders (FX values are not saved, because those should be saved in your session in automation). LOAD loads these values.
The MIDI input port will be set to the first available port by default. The port can be selected through the MIDI PORT dropdown. Refresh the available ports with the REFRESH MIDI PORTS button.
Like the MIDI input ports, the DMX output device will be set to the first available USB port by default. To change, select the USB Port from the DMX INTERFACE dropdown. Refresh the options with the REFRESH USB PORTS button.
To change a video in the array, simply click on it. To delete a video from the array, click the CLEAR toggle and then click the video in the array. To clear the whole array, click the CLEAR ALL button.
Dragging videos into the Spectacle window will cause Spectacle to find the first open video slot and fill it with the selected video (and do the same for any subsequent videos dragged in).
In the VIDEO dropdown, you can control the video speed (VIDEO SPEED slider). If you select the VIDEO SYNC option, then the video will be played back at a speed that coincides with the rhythmic division of the tempo you've selected, regardless of the length of the video. This tempo is read from the MIDI messages.
Spectacle supports .PNG and JPEG image formats and .MOV (Quicktime) video format. All videos MUST be encoded using the HAP codec. To convert your .mov files to HAP, I suggest using the AVF Batch Converter.
Make sure that you export your videos in a format that supports alpha channels (list of these formats and codecs here.
You'll probably notice that HAP videos are huge files. Unfortunately, that's the tradeoff for having fast, smooth, high resolution playback.
Make sure you set up your IAC Driver to allow you to route MIDI to Spectacle. Instructions on setting up IAC driver are here).
The Kaleidoscope and Ripple FX were adapted from Denis Perevalov's books, openFrameworks Essentials and Mastering openFrameworks, respectively. Thanks to Denis for allowing me to use them!
The ASCII FX was adapted from David Scharf's ASCII shader, which can be found here. Thanks to David for allowing me to use it!
Here are the addons and other software that I used to build this project!
ofxDatGui by Stephen Braitsch
ofxMidi by Dan Wilcox
ofxHapPlayer by Tom Butterworth
ofxDmx by Kyle McDonald