20Concepts Lesson 01 - Vizzie Part 1

From Cycling '74 Wiki
Revision as of 07:27, 17 January 2013 by ddgcycling74com (Talk | contribs)

Jump to: navigation, search

(Needed: Example Video)


Introduction to Vizzie


  • It engages visual-spacial interaction with the code.
  • It combines the user-interface with the program logic.
  • It is often more approachable for non-programmers.


  1. Create objects
  2. Connect these objects to other objects
  3. Repeat!



  • It has limited means for saving state and reloading content.


Create a Basic Movie Player











Add a Movie Viewer to the Player





One of the important things about the VIEWR is its ability to display video full-screen. If you click on the "Full Screen" button on the interface of the VIEWR module (after you've locked the patch, of course), the video will fill the entire display where the window is currently located. This is cool on your laptop screen, but it's even better if you move the display to a projector or second screen before you move into full-screen mode.

To leave full-screen mode, all you have to do is to hit the escape key.

Add Effects to the Movie Player

The next thing we will want to do is to add an effect to the Movie Player that we've created. From the contextual menu (or from the File Browser, if that is what you prefer), look at the contents of the VIZZIE EFX sub-folder. This is the location of most of the visual effects that we'll be using, and the heart of the fun in Vizzie.

Let's start with the ROTATR effect. Drop this into your patch - moving the PLAYR and VIEWR if necessary - so that it sits between the two previous modules. As we've learned so far, you activate modules by connecting them using patch cords. Click on the existing patch cord (the one that is connecting the PLAYR to the VIEWR) to select it. When selected, you will notice that the patch cord gets "handles" on it. If you grab one of the handles, you can detach it from its existing connection and move it to a new on. Let's start by dragging the handle connected to the PLAYR and reconnect it to the output of the ROTATR module. Then, create a new patch cord from the left outlet of the PLAYR and move it to the Video In of the ROTATR module. You'll see the ROTATR come to life with a slightly rotated version of the original video content.

Now you can move the controls of the ROTATR to change the rotation and anchor points of the video. You can also change the "mode" value to see what happens when the edge of one of the video displays is visible. You can clear the background, fold or wrap the video content, or even use the clip mode - which extends the last scan line of the edge into infinity. This one effects module provides an extensive amount of control in a single module package.

We can add a second effect to the stream; let's try the SLIDR module (again, from the VIZZIE EFX sub-folder). This slides pixel values from one frame to the next, and provides a smeary quality to everything that runs through it. Connect it between the ROTATR and VIEWR, creating an "effects chain" of two modules. Now, when you rotate the visuals in the ROTATR module, the result takes a moment to catch up, sliding the contents to their new values.

Again, play with the controls of the SLIDR module, and intuit what the "Slide Up" and "Slide Down" controls do. Additionally, you might want to try some of the presets (these are the little buttons underneath the preview display) to see what the developers came up with. EXERCISE: Using the ROTATR, SLIDR and other modules that you might find in the VIZZIE EFX sub-folder, create a combination of effects that make something interesting from a single video stream. Note: Some EFX modules, like the CHROMAKEYR, require two video inputs, so you might want to wait to use those for a bit!

Add Generators to Alter Effects

While using the controls of the Vizzie modules can give good results, part of what makes Max interesting is the development of generative (or self-modifying) systems. When done right, a generative system can surprise you with results you might never have produced through more traditional, thought-out means. The Vizzie modules set has a number of tools for creating generative systems - they are found in the VIZZIE GEN sub-folder.

Let start by creating an instance of the TWIDDLR module. You will immediately notice a few things:

  • It does not have a display screen.
  • It does have an on/off switch.
  • It does not have any video input or output.

Without any of the trappings of video processing, we are obviously in new territory. What exactly does TWIDDLR (and any other Vizzie GEN module) do to help us create generative systems?

It generates numbers.

Now, it may not seems like it on the surface, but the Vizzie system is a heavily number-based system. We aren't confronted with numbers very often, but they are there, right below the user interface, controlling the rest of the system. What the GEN modules do is to great numbers that can be used to alter the controls of any module, simulating our movement of the sliders without requiring our intervention.

The use of GEN modules is based on the non-video inputs - the inlets that have small circles below them. If you hover your mouse over these circles (which are actually small buttons), you will get a description of the use of the inlet. If we connect the left outlet of TWIDDLR to an inlet (for example, the first input of a PLAYR, which will control the playback rate), nothing happens. This is because a generator is waiting to be run in order to generate numeric data. If you click on the checkbox (at the left side of the device), you will see the slider start to move - and you will also see that the playback rate of the PLAYR starts to move too! It is emulating your movement of the rate slider, but you don't even have to be in the room to make it go!

The TWIDDLR simple ramps from one value to another in linear fashion, and you can set the direction (up, down or up & down), ramp speed and min/max range, and see that the automation of the connected value will follow suit. You can connect the output of one GEN module to many different inputs, or have a large number of GEN modules controlling your entire video system. TWIDDLR and other VIZZIE GEN modules (along with the controlling inlets of the effects and PVR modules) give you the tools necessary to create a full-fledged generative video system.

This is a work in progress...

Replace Movies with a Webcam

(Needed: text)

Mix Movie Streams

(Needed: text)

Web Links

(Needed: text and links)


(Needed: text and exercises)

by Darwin Grosse and Cory Metcalf