VDMX Tutorial

Edit: Vidvox team took their time to browse this tutorial and pointed out several things that might be improved, so the text has been slightly updated to reflect the suggested additions and corrections.

Ok, so VDMX.

VDMX5 is Mac only, currently in beta and already on sale. The demo is fully functional but save-disabled. The documentation is half-done, but what’s already there is very thorough — most of possible questions are covered, and Vidvox people are quite willing to respond to every reasonable request you might come with. That, however, doesn’t answer the question of how to work with VDMX. And that is because (and Vidvox team likes to point that out) VDMX5 isn’t a VJ tool of sorts, it’s more of a framework for creating visual tools that you want — you might set up once and reuse that setup every now and then, or you might build your dream VJ app every time you need something different (and fine-tune it for the specific tasks you come across). But enough of this rant.

Meet the dragon.

VDMX main screen

This is what it looks like when you initialize it. If you click on the screencap, you’ll see a bigger version with captions of what’s what.

The features are listed on the developers’ site, the details are in Wiki, for now let’s do something simple and meaningful with VDMX so you could get your head around it.

But before we start you need something to work with. I suggest you bear with me so you might want to go and grab two movies I made, they are quite simple and are enough for what we’ll do:
Example files [ZIP, 270 kb]

1. Setting up

First, we need to import those files into VDMX. But… where? Aha, here comes the Plugin Manager. Select Media Bin from its list and click Create. In fact, you might just double-click a name in the Plugin Manager list to create it’s window:

Plugin Manager

In fact, half of the VDMX’s power is hidden inside Plugin Manager. You might create as many Media Bins and other useful contraptions as you like, and quite soon you’ll realise why you’d want to do that. For now just reposition the Media Bin somewhere comfortable and drag-drop those two MOVs onto the grid. You may also select Import Media in the File menu if you’re not comfortable with dragging and dropping (or your media is buried somewhere deep). The previews are quite small, but we have only two images to work with — drag the # columns slider to its leftmost position. Better now:

Media Bin

Now let’s add shortcuts to the two cells with MOVs we just added. Click Trigger Setup in the upper part of the Media Bin and then click Add Shortcut twice. Two new lines should appear. Click DETECT in each of them and then press a key on your keyboard that you want to bind to that cell. I chose q and w:

Key Binding

Click close and you’re done. Now we’d probably like to trigger our clips to route them to the output, but how? Here comes the Layer Manager palette. Click Create Layer. Ouch, you just got quite big Layer Window. Reposition it somewhere nice and now rename the layer. Double click on its name and type in “Dots” (or whatever you like). Now notice two boxes on the right side of the Media Bin. The lower box contains all the layers you have in your composition, the upper box contains only the layers that you chose to be in the display queue. If the Auto-Add Layers toggle in the upper-right corner of Media Bin isn’t toggled, toggle it and drag the Dots layer from lower to the upper box. Now press q or whatever letter you bound to the first cell:

First Layer

Notice the Main Output window. Whoa, instant image! Now type q and w to your heart’s content to see the image changing. Neat! But profoundly, awfully boring. Let’s sex it up a bit. But before we do that, let’s save what we have done so far. Preset Manager stores snapshots of certain parts of VDMX. We’d want a Full snapshot so click that under Create New Preset and rename it to something meaningful. Now save your set and you’re good to go.

2. Getting some action

A bit of theory now. Cells are triggered inside layers, and visual effects are applied to each layer (but not to the cell). If you’ve worked with Adobe Photoshop, you already understand the concept. Even if you haven’t, you’ll get it quite soon. The idea is: we apply some effects to the layer, we display our images inside that layer, the image gets distorted. Simple as that.

Open Video FX Palette, select Quartz Composer FX under FX Category and then select 3D Rotate.qtz on the right and drag it to the empty area in the lower part of the Layer Window:

Layer FX

If you don’t like dragging, you might just as well click a small symbol to the right of effect’s name and a pulldown menu would present you with a list of available layers — you could now assign that particular effect to a layer of your choice without having to drag around.

Good. The effect is created and you see its controls. Wiggle the z_rot slider and notice what’s happening inside Main Output. See, it rotates! Amazing. Now let’s automate the rotation. From the Plugin Manager create an Oscillator contraption. Wow, it… well, oscillates:

Oscillator

If you don’t own a huge 30″ Apple Studio Display you oughtta be running out of screen estate by now so, as usual, reposition your new shiny Oscillator somewhere nice. Now here goes the magic. In the bottom of the Layer Window, where you got that 3D Rotate.qtz effect running, right-click (or Ctrl-click) while your mouse pointer is over that z_rot slider we already wiggled together, and from a huge drop-down list that appears select Oscillator 1 under Oscillators:

Binding

Now watch the Main Output. And the slider. Kingdom come. Immense, ain’t it? Well whatever. This is called data synching (or something like that) — you asked Oscillator 1 to feed its “position” data to your z_rot. Now let’s slow down Osc1 a bit (move the Frequency slider to the left so it reads around 0.30) and we’re ready to continue our quest.

3. Getting some more action

Now we’d do something truly interactive and magical. If you’re on a desktop Mac, use something like Soundflower to route your audio output to your audio input, then launch your iTunes and set it to play something rhythmic. Techno is ideal, but if you prefer rock, go for it. Just make sure it has some drums. If you’re like me and you sit behind a MacBook Pro or any MacIntel portable, this is even simpler — MacBooks have a built-in microphone so just turn up the volume if you use built-in speakers, your mic should respond to that. Anyway, get some rhythmic sound coming into your computer. This is very important to continue.

Now from the Plugin Manager create AudioAnalysis contraption and set it to Analysis On. If you have some sound coming in, you’ll see something like this:

AudioAnalysis

If you don’t, tweak gain or check your sound setup. When you have it running, things get even more interesting. Yes, it’s an audio analyzer, so you could beatmatch your visuals to incoming audio even if you don’t have a MIDI feed coming in. Move band-3 (the rightmost) of AudioAnalysis a bit to the right so you’d catch hi-hats and snares more precisely. Now we’re ready to bind it with our already rotating image.

In the lower part of the Layer Window collapse 3D Rotate palette by clicking a triangle (it’s to the right of palette’s name) and drag a second instance of 3D Rotate from Video FX Palette. Now bind it’s z-rot using the same method — right-click the slider and choose band-1 of AudioAnalysis as a data source. Yay, it responds to the music, but somehow jittery. Now you’d like to change the way band-1 affects circular motion. Let’s use Behaviors for that. They are accessed from Behavior Chains and while the concept of behaviors might seem a bit vague at first look, actually it’s quite simple. Think of behaviors as of math processors — you input some numbers, the numbers get transformed, you have something different at the output. Create a new behavior, rename it to “divide” and click Multiply in Behavior Effects box:

Behavior Chains

Behavior Chains are named such because they’re in fact chains — if you click another Behavior Effect now, it will add to the bottom of the existing Multiply effect. Chains are processed top-down, the order is of course important and they are auto-saved inside the selected preset (“divide” for now). Move the only slider of Multiply effect to the amount of about 0.25 — that way you’ll actually divide the incoming value by 4. Now again right-click the z-rot that is already receiving its value from AudioAnalysis and select divide under Use This Behavior Chain:

Adding a Behavior

Now the value read from band-1 is divided by 4 so the animation becomes more slight. Still boring. Lets add more effects. Select Distortion Effect and drag Zoom (VV) (it’s the last one) below two 3D Rotate effects, now bind it to band-2. Nice but a bit strong, however, that could be easily fixed the other way. Every slider in VDMX has it’s minumum and maximum positions that could be dragged from both ends of the slider. Restrict the level slider between 1.0 and 1.7 and move both x position and y position to 0.50:

Fine-tuning The Zoom Effect

The zoom effect just got a lot nicer, but we’re still black and white. Let’s add color. Drag False Color from Color Effect folder inside the Video FX Palette to the effect stack. Set sliders under inputColor 0 to their rightmost position so the background would remain black, and tune inputColor 1 to something fancy, just like this:

False Color

Just as with rotation and zooming, let’s change the color of this thing along the incoming music. For that, drag Hue Adjust (it’s under Color Adjustment) and bind its inputAngle to band-3. Again, you’d probably like to restrict the slider a bit:

Hue Adjust

Looks nice. Now if only could we beef this up a bit. We surely could. Add VVMotion Blur from Blur and set its amount to about 0.20, now add another copy of it and synch it to AudioAnalysis band of your choice, restricting the slider to its upper part. Here, look:

VVMotion Blur

Now this is good (although more fitting for some psy-trance than techno. But hey, we’re just trying things out). We still have another movie cell, yet unused, so let’s make use of that one. Right now, if you toggle your cells with q and w only one will play at a time. That’s because only one cell could play inside a layer at the same time. Now what do we need to do? Yes, you’re right.

4. More layers

Create a new layer and rename it to “Dashes”. Notice that your Layer Window now has two tabs. You could change each layer’s properties by clicking those tabs:

Layer Tabs

Now let’s toggle our movie clips with q and w… Something’s wrong, eh? Nothing happens yet. Well, that’s because VDMX has layer system that’s a bit tricky at a first glance. But bear with me. Look at the upper right corner of Media Bin, under Trigger Order:

Trigger Order

The topmost layer is “Dots” (because it was the first that we created), the bottommost is “Dashes” (because it was the second). All (I mean all) triggering happens only in the topmost layer. How could you change the layer order? Well, lots of ways. First, you could notice the Trigger In drop-down menu with yellow letters in the bottom-left corner of Media Bin. Change that with mouse and note what happens in Trigger Order box. The other way is to click that double arrow button (to the right of layer name) so the layer would jump right to the top. But that’s all too tedious. Layers could be triggered with keys, just like cells. But how? Oh, right now we don’t see something very important. Pick a divider to the left of the Trigger Order box and drag it to the left:

Layer Key Binding

See those play buttons appear? With these you bind your layers to your keyboard. Now set “Dots” to a and “Dashes” to s and try them out. Neat, huh? Now when you want to change your clip inside a layer, just trigger the necessary layer from your keyboard, then trigger the clip — all is done with just two swift keystrokes. Of course, you could change the way a layer behaves after a clip was triggered inside it, just try out the pull-down menu right above the layer names, right now it reads normal but change it to rotate and see what happens.

This layer triggering stuff was probably the hardest part for me to understand, so if you’re like me and you still don’t get it, either re-read the above or be sure to refer to the wonderful VDMX wiki page that covers Media Bin.

And we’re almost through this tutorial. Set the movie with thick dashes to play inside the “Dashes” layer, and the other, with lots of dots, to play inside the “Dots” layer. As you see, the “Dots” gets all the animation, while the “Dashes” looks rather bland. We could fix that quite simply. Switch to “Dots” layer via tabs on the top of the Layer Window, then click the Save/Delete Preset button that is right above the effect stack:

Layer Presets

A new window will appear. Type in something like “rotozoom” and click Save:

Layer Preset Save

What you just did is you saved the entire layer effects stack that you meticulously crafted in the previous section of this tutorial to a — yes, to a simple preset. Now select “Dashes” tab and under Load Preset pull-down menu that now reads B/W select “rotozoom”. Whoa, look at the Main Output now. Quite cool. But not really, cause right now both layers are synched to the very same parameters. Well the solution is quite simple: go through one of the effect stacks and tweak the effects here and there to offset the second stack. I recommend doing the following:

First 3D Rotate effect that is bound to Oscillator, bind it to the Invert behavior as well, so the clip will start turning in the other direction. Tweak level boundaries in the Zoom (VV) effect and re-bind it to another band of AudioAnalysis. Adjust inputAngle boundaries in Hue Adjust and tweak the second copy of VVMotion Blur. Looks even greater now, right?

At this point, your composition could get quite CPU-intensive. If it is so, turn something off, change something — in fact, the very idea of tweaking two still images to death with tons of effects is not quite productive, but remember, we were just trying out various things of what VDMX can do for you (or, put it other way, what you could do with VDMX). Now as a last exercise, let’s get some very basic video mixing.

5. Mixing it up

Create a new contraption called TwoChannelMixer from the Plugin Manager Palette. From the two provided pull-downs select one and then the other layer out of the ones that we have:

TwoChannelMixer

Try moving the slider. What it really does is that it increases the opacity of one layer while decreasing the other. No layer gets hidden or moved, it’s just the opacity that is changed (while moving the slider, look at the Source Type & Composition block inside the layer window). By creating other mixer contraptions and stacking them together you could make a very powerful mixing setup. If you want to bind that slider to a midi knob or fader — no problem, right click it, select Start MIDI Detect from atop and wiggle your MIDI controller knob. Now you could even set the limits of how much you control the mixer slider from your hardware by moving it ends. If you’ll narrow it down pretty much, you’ll find that only the part of your hardware knob motion controls the software slider. Don’t worry and just tell the slider to use scale behavior, and the active range of your slider would auto-map to the entirety of your hardware knob or fader. Again — simple and neat.

If you did everything right (and close to what I’ve asked you to do), by now you should probably be seeing something like this:

Music is courtesy of Kausto, a promising young techno producer from St. Petersburg, Russia. Kausto is currently signed to Moscow-based btwn.us netlabel. Be sure to check out those guys, they are great.

And the interface should look like this (clickable):

VDMX main screen, revised

And of course you could get the set files so you could open them up and look for yourself. There are five Preset Manager presets included, they correspond to the end of each chapter of this tutorial:
Tutorial set [ZIP, 300 kb]

6. Final thoughts

As I already pointed out, we barely scratched the surface of what VDMX is. Hope this one was informative to you. I welcome your corrections, comments and suggestions — leave them here (OpenID is supported) or drop me a mail. And at all times be sure to check out VDMX documentation and visit the oh-so-wonderful Vidvox forums.

18 Comments to “VDMX Tutorial”

  1. David Resnick said...
    May 1, 2007

    Thank you SO MUCH for this tutorial. It was very very helpful for getting a headstart with VDMX 5, and I hope that the Vidvox guys are paying attention to how clearly written, laid out, and complete with screenshot graphics your tutorial was. Truly, thank you, and I hope you find the time to make some more tutorials!

  2. aienn said...
    May 1, 2007

    David, glad to know the tutorial proved to be helpful. You can’t imagine how much I learned myself while writing it — figuring stuff, trying out various things etc.

  3. silentBoom said...
    May 2, 2007

    super tutorial… kick started me using vdmx … hope u do more :)

  4. alx said...
    May 2, 2007

    Thanks very much for the tutorial! I’ve been toying with VDMX for a while now, but never done any serious work with it. It’s great to see such a well thought-out and presented tutorial, that’s left me inspired to explore the program more.

    Good luck with the new VJing career, and thanks again!

    alx

    PS
    I’d be intrigued to know how far you got with your Quartz Composer experiments. I’ve been messing around with it myself a little. I think there’s probably a lot of potential fun to be had with the Replicate in Space and Lines patches, especially when you feed them from VDMX data sources.

  5. aienn said...
    May 2, 2007

    alx, thanks for your comment. Quartz Composer is pretty new stuff to me; I don’t like random visuals or random clips of old movies colorized as a rainbow — lots of VJays go that route. I like everything to look neat, responsive to audio and MIDI, even interactive — so right now I’m figuring out how to program shaders in GLSL (already into it, took an algebra book to remember my high school linear algebra) and looking into wonderful Quartz Compositions by Futurismo Zugakousaku — they are neat, they are smart, they are simply very well done. So I’m looking inside the code and learning various QC contraptions. It’s quite refreshing to work with video layers, objects and particles in realtime after all those years of working with studio tools.

    Lack of undo in QC (and it’s cryptic über-modularity) doesn’t help either but still I plan to do some in-depth QC tutorial on basic animations, shader programming and VDMX integration. I’m trying to pull that off with an ambitious project of making a realtime video for my own music (though that wouldn’t be too hard to do), when I’m done, I’ll be more than willing to post the results (and most of sources) here — as a tutorial.

  6. alx said...
    May 3, 2007

    Hi aienn,

    thanks for you reply! The Zugakousaka stuff looks nice, though I suspect that’s mainly down to the nice-looking graphics. Oddly-enough, it reminds me of the kind of things people used to do years ago with 2D graphics in programs like Director.

    I’m glad to hear you’re getting into shader programming. That kind of stuff is unfortunately way over my head, as I don’t have any formal background in programming, and have always been a bit rubbish at maths. The kind of thing that really interests me is this kind of stuff
    http://www.sanchtv.com/?page_id=8
    This was all done in a PC-only application called VVVV, but I’d love to know if it’s possible to do something similar with custom shaders, running inside Quartz Composer. I love the realtime mesh-generation and distortion stuff…

    alx

  7. aienn said...
    May 3, 2007

    alx,
    personally, I don’t really care if it’s simple Director-like 2D cause if it looks good, it’s good. You may try to open Zugakousaku’s stuff in QC and look for yourself, it’s pretty complicated (lots of grouping and tons of modulations).

    I wasn’t quite in love with algebra at school and never bothered with college so I took a book on linear algebra and I’m figuring out what I was missing all these years :) With GLSL shaders, most of time you’ll be dealing either with matrices or vectors, and these aren’t complicated.

    VVVV is no go on a Mac (and I don’t miss it), but you may try Max/MSP + Jitter (never bought a license so I can only tell what other people told me about it).

    Mesh-generation and distortion is only available on very very recent Nvidia GPUs so you won’t be able to achieve that in Quartz Composer as of yet. I suppose that at some point in the future VDMX would be able to capture video from other applications (say, Processing), and with that one you’re free to do all sorts of wonderful things (not to mention that there are quite a lot of resources and tutorials covering Processing).

    Can’t open that SanchTV page, maybe it’s not accessible from when I am. I’m very much into Flight404’s stuff. I believe that’s Processing and it looks just amazing.

    a.

  8. alx said...
    May 4, 2007

    Flight404- verrry nice. And all done in Processing! I’m really impressed, as the only 3D stuff I’ve seen done in Processing looked much more ‘basic’ than that. I didn’t realise you could do all that particle stuff in it…

    alx

  9. deb said...
    May 9, 2007

    hey, thanks a lot!
    i was thinking about another modular video app but now perhaps i will go with this one—there is a lot more that can be done, i think, for when i expand my horizons. vidvox, this guy just made you a sale! give him some commi$$ion!

  10. dRfxmovement said...
    May 25, 2007

    Ole!!
    It’s ok!!
    Thanks for the tutorial, is very simply for learn a basic use of the soft.

  11. William said...
    June 4, 2007

    Thanks for this tutorial. Please let us encourage you to make more as you learn the program. Many of us are interested in what you discover along the way.

  12. Andrew said...
    November 14, 2007

    Sick! Thanks man!

  13. Frederik said...
    May 6, 2008

    Hey

    This was excellent!!!

    I have been using VDMX for quite a while, but I have never considered still graphics. Thanks for opening my eyes.

    Hope to see more in the future. Bloody geniues.

  14. antonia said...
    October 30, 2008

    thanks a lot, very useful and well done tutorial. I’m rethinking about the human being…

  15. Otto said...
    January 8, 2009

    Thanks a lot, I got a really big leap foreward with your tutorial.
    Great stuff!!

Trackbacks & Pingbacks

  1. { { { { - - Sky Noise — >>> » Document » Eyeball Snippets For May

  2. Hybrid Visuals » Archive » Other QC and VDMX tutorial sites

  3. Create Digital Motion » VDMX + Quartz Composer, in Free Video Tutorials

Leave a Comment

*

*