20Concepts Lesson 02 - Vizzie Part 2
(Needed: Example Video)
In lesson #1, we will extend the Vizzie system by creating switching networks, managing user interface and recording our work.
Now that we are developing more complicated video systems, we may find that we only want some of the effects/videos active at any given time. We could repatch on the fly, but that would be more difficult than it has to be. What would be a better choice? It would be better if we could make multiple effects streams and switch between them.
We can accomplish this with modules found in the Vizzie CTL subfolder. Two useful devices are the 2SWITCHR and 2ROUTR. These are very similar devices: the 2SWITCHR takes two video inputs and switches them to one output; the 2ROUTR is the opposite, accepting one video input and sending it to one of two outputs. Either will allow us to create video streams and switch between them - so how do we decide which one to use?
This is where it helps to understand how Jitter (the technology behind Vizzie) works. The video patch cords pass a message every time a video frame changes. The modules are expected to do their processing, then send a message to the video modules connected to their outputs. Processing occurs (and CPU is used) every time a module receives a frame message - so it is helpful to limit the number of messages any module receives.
If we create this simple Vizzie patch:
we can see that all of the modules are connect to a PLAYR device, process frames, then we switch between the video streams with a 2SWITCHR. The problem is that the effects will receive frame messages even when their output is not being displayed! That's a lot of wasted CPU, and limits our ability to effectively use the Vizzie system. Replacing this arrangement with a 2ROUTR gives us a patch that looks like this:
Now, modules only get messages when they are switched in, and we are using CPU as efficiently as possible.
Centralized Control with User Interfaces
Controlling our switcher manually might be useful - especially if we can consolidate our work to a few user controls. In order to do this, we have to look at some more of the Vizzie CTL options. There are a class of modules - CLICKR, TWISTR and FADR - that exist for one purpose: to control other functions in your patch. These modules are hooked into your patch using the same module inlets as the GEN modules, but give you manual control of these devices. They are a great way to create a custom user interface for the rest of your system.
One of the important things to remember about all Max objects (not just the Vizzie modules) is that you can route any outlet to multiple inlets (as long as they expect the same type of data). So, for example, you could use a FADR module to simultaneously control the speed of a movie, the saturation level of a BRCOSR and the slide rate of a SLIDR module with a single control:
This allow you to focus on fewer on-screen controls when you are trying to perform with a Vizzie-based system.
Turning Processes On and Off
Sometimes you want to build a large network of Vizzie objects but you only need a few on at a time. There are several ways of turning off the processing without having to dismantle your patch - let's take a look at a few of them.
First, and easiest, you can turn off any one Vizzie module by clicking on the preview image.
When you do this, the preview image says "Effect Bypassed", and the module no longer processes the incoming video frames - reducing processing load, and also removing the processing from the effects stream.
Another option is to use a CLICKR object connected to the first (video) input of a module. When you turn the CLICKR on, it turns on the module processing; when turned off, it turns off the connected module.
As with clicking the preview image, the display will show "Effect Bypassed" in the display to show that the module is not processing video.
Finally, you may sometimes just want to turn off a modulation rather than turning off the entire effect. You can turn off a modulation using the colored buttons next to the inlets, or you can use the CLICKR object connected to the modulation inlet.
Using the CLICKR object allows you to be explicit about processing management, and you can also drop the CLICKR into Presentation mode so you can adjust the processing without having to expose the modules within your user interface.
Creating Video of the Output
Working with Vizzie is fun, and live interaction is also fun. But sometimes you want to capture the work to disk: you may want to incorporate it as part of an edited video project (done with Premiere or Final Cut), or you may want to use the video as part of further live processing (with another Vizzie patch). In either case, we need to be able to capture the video stream and stash it on disk in a way that is usable by other software.
There's a module for that! In the PVR folder, there is a Vizzie object called RECORDR; this is the equivalent of a video recorder that accepts a Vizzie stream. Add it to your patch to prepare for video capture.
You have the ability to capture either still images (by pressing the "Image" button) or a video stream (by pressing the "Record" button). When you select one of these options, you will be presented with a file dialog that allows you to select a location and filename for the resultant file. There are two options to select: the video codec to use, and the quality of output (meaning, what level of compression is used). The default settings - Video JPEG ("jpeg") and Normal (standard compression) are good choices for most uses; if you have a specific purpose in mind, you also probably know what codec and quality you'll need.
Once you begin a video stream recording, it will grab the video stream output and store it in the selected file. To stop recording, just hit the "Record" button again.
- Create a video patch that switches between video effects stream, but uses a simplified user interface (using CLICKR, FADR and TWISTR) to control the whole patch. Practice performing with this patch so that you can reliably create interesting results with as few clicks/moves as possible.
- Create a video streaming setup that captures live video input and combines it with live effects. Store the file, then use it as a video file for a second Vizzie patch that further applies effects.