So you’ve always wanted to know how to video and sync to music in 2 clicks.
Here’s the tutorial !
This is the end result you gonna get when finished:
(scroll to the end of the tutorial for a video)
The idea behing this tutorial is to use Ableton Live as a sequencer to drive realtime Quartz Composer graphics, mapped using MadMapper.
For this tutorial, we’ll pass some information between different applications.
Since we’ll be using audio to automatically sync the mapping, we’ll use the MIDI protocol,
which is widespread and hopefully free with every Mac.
On the Mac, there’s a loopback allowing to share Midi data internally. It is called the IAC bus. And you’ll have to enable it.
Go to your /Applications/Utilities folder, and launch the “Audio Midi Setup.app”.
In the menu, select Window / Show Midi Window.
Then select and double click the IAC box and enable the bus (check “Device is Online)
as shown here:
Great, you just have an IAC loopback bus configured.
Now launch Ableton Live.
By default when creating a new Live project, you have 2 tracks, one Audio track and one Midi track:
We won’t need the audio track, so select it (click on its title) and get rid of it (press delete).
Rename the Midi track to “Midi to QC” – with this track we’ll send midi data to QuartzComposer.
Create an extra Midi track (CMD + SHIFT + T) and rename it to “Midi to Audio”.
This track will use the first midi track to get its data from and generate some sounds.
Let’s configure the Midi so that everything works.
Just to be sure, go to the Preferences (in the menu), then select Midi, then set your midi ports to enable IAC bus:
Now we have to set the correct midi inputs/outputs for the tracks.
In the track IO settings:
- set the “Midi to QC” track:
______MIDI from: NO Input
______MIDI to : IAC bus | Channel 1
- set the “Midi to Audio” track:
______MIDI from: “Midi to QC”
Congratulations, the boring part is done.
Now the fun:
Create a new midi pattern in the ‘Midi to QC” track
(right click, insert midi clip), like that:
Select that box, and expand its content
(the black arrow at the very bottom right of the Live window).
Now we’ll make some notes to drive the visuals.
We’ll use 4 notes for this tutorial (but you can use more of course),
starting at C5 (then C#5, D5, D#5).
I’ve made a sample rhythm:
Drag an instrument (I’ve used a Bassline from the analog library) on the “Midi to Audio” track. This instrument will actually produce the sound of our project.
Here are the settings (shown when clicking the black arrow at the very right bottom of Live window):
Click the play buttom and you should have some sound magically coming from your speakers, since we dropped an instrument on the “Midi to Audio” track, namely a bassline. Note that you can put any other synth you want …
Wow, the Ableton Live part is over ! Keep the app open and playing.
Locate quartzComposer, make sure it runs in 32bit, by right-clicking the app, select “Show Info”, then select “Open in 32 bit”.
Then start Quartz Composer and make a blank project. This sounds over complicated, but apparently it was causing problems in 64bit (see comments).
Drop a Clear Patch (bule) and a MIDI Note Receiver Patch (purple).
QC defaults the middle note to C5, but Ableton Live is C3. So for both apps to be on the same page, we’ll have to configure the MIDI Notes Receiver patch to Middle C3, just like that:
Middle note is now C3 in QC, and we listen to the C5 note range.
The next step is to add 4 sprites whose brightness will respond to the velocity of the midi notes sent by Ableton. Zuper-easy.
Drag 4 sprites, position them in each corner of the QC viewer.
I made them sized 1 by 1 unit, positioned at
x: 0.5 y:-0.5
x:-0.5 y: 0.5
x: 0.5 y: 0.5
Then connect the notes receivers to the color pins of the sprites, like that:
Since QC is working with normalized floats (0.0->1.0), the Midi velocity (range 0->127) is automatically scaled to the sprite’s color (range 0->1).
If Ableton Live is still running and playing, the sprites should blink according to the rhythm you just made. Bravo, you’re now officially an Audio-Visual Performer.
Save your QC file and close QC.
Launch MadMapper (version 1.4 minimum), import your freshly saved QC file, and select it to activate it in the input view.
Modify the parameters like that (no need for a huge resolution):
Width = 512 pixels, Height = 512 pixels.
We’ll be working with squares – original isn’t it ? -
Now make 4 quad surfaces, each selecting a different portion of the input, like that:
Finally, you can work on your mapping and modify the perspective of each quad.
Since the QC content is white, we can use MadMapper to modulate the color of each quad.
Voila, it’s almost finished.
The principle is here, now hook up your projector and start mapping.
Here’s what we did at the office, on a 3d-printed object, using only these 4 notes, and some masks…
This is the neutral object:
The MadMapper setup:
And the video result, using exactly the same file we did in this tutorial: