20Concepts Lesson 01 - Vizzie Part 1

From Cycling '74 Wiki
Revision as of 01:10, 9 January 2013 by Darwin Grosse (Talk | contribs)

Jump to: navigation, search

(Needed: Example Video)

In lesson #1, we use the Vizzie subsystem to allow people to quickly become familiar with the basic functionality of a visual programming language, and to learn some of the functionality of the Max environment. For this to be useful, a current version of Max - along with the Vizzie components (automatically installed with Max) - should be installed on the user's systems.

Introduction to Vizzie

Max takes a different approach to programming: it provides a visual, rather than textual, view of the code-creating process. There are some advantages to vusion programming:

  • It engages visual-spacial interaction with the code.
  • It combines the user-interface with the program logic.
  • Sub-programs are easily - and visibly - integrated in new programs.
  • It is often more approachable for non-programmers.

The basic workflow of Max programming (and other visual programming tools) is:

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

Visual programming works well with an iterative development process, where you create a small working section of code, then add new pieces as required. An important part of this is to create reusable subsystems; for example, it is typical to create a working Microsoft Kinect subsystem, then reuse it every time you need to work with a Kinect. These subsystems are built using Max itself, and are easily made available for future projects.

In this set of lessons, we use a subsystem called "Vizzie" (automatically installed with Max) that is used to manipulate visuals (movies, images and live video). This system is meant to provide an easy introduction to visual programming, and to provide a "fun" way to get started. There are some limits to the Vizzie subsystem:

  • You are limited to the output video resolution (maximum of 640x480).
  • It has limited means for saving state and reloading content.
  • It is a little garish looking - but this is done on purpose, since it makes it easy for an instructor to quickly identify a program's logic.

Some people wonder if working with Vizzie is actually working with Max. We consider it to be so, since it works within the Max environment, can interface with lower-level Max code, it uses standard Max messaging, and the user and programming interfaces are the same.

Create a Basic Movie Player

We are going to start our programming experiments by creating a basic movie player. But first, we have to understand how to instantiate Vizzie objects. Vizzie objects aren't standard Max objects - rather, they are small, self-contained patches that we can include into our patches. There are two places to retrieve Vizzie objects:

- You can get them from the Vizzie search sections in the file browser (which is opened from the File menu in the Max application) and drag them into your patch. - You can paste them directly from the contextual menu (right-click/control-click in the patcher window, then select Paste From->VIZZIE-CLIPPINGS).

In either case, you are confronted with four named subsections - none of which are all that revealing (from a name standpoint). Right now, we are going to focus on the VIZZIE PVR section, where PVR stands for Players-Viewers-Recorders. This is the section of Vizzie modules that give us things like movie players, webcam input and windowed displays.

Using either selection method, create an instance of the PLAYR module. You'll notice that all of the modules are rather oddly named - they seem to have "action" names, but they never end in a proper "er". This is because a limitation of Max is that you cannot have multiple modules with the same name, and many people have already created modules named "Player", so by dropping the "e" we are able to avoid conflicts.

With a PLAYR modules in your patcher, we are ready to see how this operates. Drag a movie file (either from a file folder or from the "movies" section of the File Browser) onto the blank square that says "Drop a Movie Here". You will see the movie in the mini-screen, and it will automatically start playing. You've created your first functional patch! In order to learn more about the PLAYR module, let's make some adjustments to the controls.

This is a work in progress...

Add Effects to the Movie Player

(Needed: text)

Add Generators to Alter Effects

(Needed: text)

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