If you’re not interested in the Vixid mixer or 3L, then I apologize for my posts over the last couple of weeks, but after a year of touring and creating on someone else’s schedule, I’m very excited to be able to set my own agenda and focus on the things I’m interested in.
Disclaimers aside, I’ve been working with my cheapie security cameras, feeding them power and conducting their video to somewhere it can be useful. Once wired, the challenge was to get the correct doses of midi to the Vixid, and thus motivate it to output The Crazy.
But now The Crazy is out of the box, so I’ll show you what it looks like, then explain how it came to be.
In putting together this effect I tried both Ableton Live and VDMX to no avail. Both programs were able to send the correct values over the right midi channels, but the VJX control I’m trying to achieve requires sending of distinct CC messages for very precise, quick switching. If I’m aiming for “proper” one-camera-per-frame bullet time, that’s one input every 40 milliseconds. To use 8 cameras I also have to switch inputs for each layer. This switching causes a 2-3 frame freeze on the input – as it puts the video stream in sync – so layer inputs need to be switched when that layer isn’t “active” and currently visible.
These constraints led me to Max/MSP, mostly because I had a review copy already installed on my machine. I’d read through some of the tutorials, but never actually attempted to program anything with Max. So this afternoon was spent traipsing through documentation, patching, and testing. After several near-misses and a realization that I wouldn’t be able to achieve an elegant solution without wasting time studying, I went back and created a brute-force solution using the modules I understood.
(Possibly NSFW due to excessively hacky code)
I know, it’s frightening, but it’s my first, and it most definitely works. The controls being sent go like this:
Put Track 1 on top, Select Input 1 on Track 4.
Put Track 2 on top, Select Input 2 on Track 1.
Put Track 3 on top, Select Input 2 on Track 2.
Put Track 4 on top, Select Input 2 on Track 3.
Put Track 1 on top, Select Input 2 on Track 4.
Put Track 2 on top, Select Input 1 on Track 1.
Put Track 3 on top, Select Input 1 on Track 2.
Put Track 4 on top, Select Input 1 on Track 3.
(To learn how the VJX Tracks and Inputs work, watch Vixid101)
The input switching happens immediately after the track has been hidden. This is to give as much time as possible for the new input to sync. The top slider is used to set the metronome time, which controls the interval between messages. For initial setup and coding I put cards numbered 1-8 in front of the cameras, so I could quickly see if things were happening in the correct order. Decreasing the metronome time to output a blur of images, I recorded the video through my Blackmagic Intensity Pro so I could step through frame by frame.
(Download the original file to be able to step through frame-by-frame)
At this stage, the fastest consistent switching I can achieve is around 100ms (3 frames) per camera. Below this speed I start to get duplicate frames, skipped inputs and other unfortunate glitches. I’m not sure if this is due to latency in Max, the midi coming from my battered BCR2000, or the security cameras’ dodgy signals, but I have it on good authority that the VJX should technically be able to do frame-by-frame switching, so we’ll see what happens with some more decent gear, setup time, and patching prowess.
Roughness aside, this really is a powerful technique, both for live and studio use, and it’s not just relevant to Vixid-owners. The Edirol V8 – while considerably less flexible – has midi capabilities, and should be able to achieve something similar. I’ll be trying some more variations on this theme, and expanding to the full 16 cameras as well.