The article below has been moved. This page will no longer be maintained.
- An Overview of Vizzie
- Max takes a different approach to programming.
- You program using visible connections between objects rather than textual editing.
- The basic paradigm is: create objects, then connect them with patchcords.
- One way this changes things: You can run the program while editing it!
- Another way it changes things: It preferences iterative (on-the-fly) programming.
- One important aspect of Max is the creation of reusable systems based on existing objects.
- Vizzie is a system of these "reusable modules", and is the system we will be using for our work.
- How You Select Vizzie Modules
- Vizzie is built with Max, and uses all of the strategies of Max programming.
- Vizzie has a specific purpose: to allow us to have fun manipulating visuals while learning the Max development system.
- You get to Vizzie modules in two ways:
- You can use the contextual menu (my favorite).
- You can select modules off the File Browser.
Create a Basic Movie Player
- We will find all the modules in the PVR section (which stands for "Player/Viewer/Recorder")
- The names of modules are "funny" - this is an attempt to avoid naming collisions.
- Loading and manipulating the PLAYR
- Load a PLAYR, and see how it reacts to clicks. (Editing Mode)
- Lock the patcher and see how it now reacts to clicks. (Performance Mode)
- Drag a movie file from your computer onto the PLAYR and see how it operates.
- Run through the controls on the PLAYR, how to set them, and how to reset them.
- Add a VIEWR to get a window
- Unlock the patch and add a VIEWR. Connect the PLAYR to the VIEWR, lock the patch, and see how it operates.
- Click on the FULL SCREEN button to see what happens, and how to return to the patch.
- Save the patch, close the patch and reopen it. Discuss the state into which the patch return.
Adding Effects to the Movie Player
- Add a ROTATR between the PLAYR and VIEWR
- Unlock the patch and add a ROTATR module from the EFX menu section
- Click on the patchcord connecting the PLAYR and VIEWR, note the handles on each end.
- Use one of the handles to place the ROTATR between the previous two modules
- Create another patchcord to connect the rest.
- Start the PLAYR, move the controls of the ROTATR to see the activity.
- Note the ability to disable the effect by clicking on the image.
- Next, add a SLIDR after the ROTATR
- Add another effect - the SLIDR - after the ROTATR.
- Note the change to the image based on rotation and SLIDR settings.
- Describe the serial nature of the data flow.
Using Generators to Alter the Effects
- Creating an effects chain is fun, but it is even more fun if we have the system generate parameter changes for us!
- This is done using "Generator" modules.
- Add a TWIDDLR to the patch from the GEN folder.
- The output of the TWIDDLR can be used on non-video input to control (or modulate) the control values.
- You can tell which value will be controlled by hovering over the input - the modulation parameter will be displayed.
- Connect the TWIDDLR output to one of the parameters and see how it modifies the controls on-the-fly.
- There are several ways to temporarily turn off control of any of the Generator modules.
- First, you can "mute" the output by clicking on the dot near the module outlet.
- You can also "mute" any of the inputs by clicking on the dots near a connected input.
- You can also turn off the Generator by turning its "power switch" off.
- There are many different Generator modules available.
- Try the WANDR for creating random effects changes.
- Try the BIPOLR to swing between high and low values.
- Try the STEPPR to create a stepped, sequenced set of value changes.
Create a Webcam Viewer as an alternative test system
- A lot of time, it's more interesting to work with live video rather than movies.
- Replace the PLAYR with a GRABR (found in PVR) to get live video from your webcam.
- Connect it to the rest of your processing stream, then turn it on.
- Assuming that your system is set up correctly, you should see live video processed through your effects chain.
- Making the visuals more abstract means using some new effects.
- The SKETCHR turns your video into line drawing-like video.
- Smearing the SKETCHR output with the SLIDR, ROTATR, DELAYR and other effects provides complex, but abstract, results.
- We can make an even more interesting display by generating a lot of on/off changes to the effects chain.
- Use a TOGGLR on the SKETCHR, first, to turn the module on and off.
- Add more TOGGLR modules to other effects, and have them change at different rates to create a generative flashy output.
Create a Video Mixer
- If you've tried to have two effects or video streams running simultaneously, you will probably have found some problems (flashing).
- In order to get multiple video streams running, we need to "mix" them.
- The simplest mixer is the XFADR (found in EFX); it does a crossfade between any two video streams.
- Add an XFADR from the EFX menu, then connect both a GRABR and PLAYR. Load the PLAYR with a movie, turn on the GRABR, then mix the two streams to see it in action.
- You can create a generative mix by using a TWIDDLR to automate a fading system.
- If you need to mix more than two streams, you can add another XFADR and PLAYR to make a more complex system
- One of the downsides of the XFADR is that bringing up one video automatically reduces the other. What if you want to have more control?
- Try a 4MIXR for more complexity and less "black out"
- Each of the channels can be automated (WANDR or TWIDDLR again...) for generative results.
- If you have "masked" video, you can combine them with the 4MIXR as well.
Create an Effects Switcher
- Sometimes, we will want to actually make a system where we can alternate between effects streams.
- Create a new patch, and start with a single PLAYR and VIEWR
- Drop in a 2ROUTR to create parallel effects paths.
- Now, for each path, create an effects stream that contains one or more EFX modules.
- Use the 2ROUTR to choose which stream is active, or connect a WANDR/TOGGLR to automate the switching. (Make sure you use the data, rather than the logic, output!)
- You can also use a CLICKR to make it easier to switch between the streams in the heat of a show!
- Note that you can have both of the effects streams go into a single VIEWR. Why doesn't this cause flashing?
- The 2ROUTR only sends video frames down one of the effects paths.
- The effects that are not in the "active" path never receive video frames, so they never output anything.
- Since only one of the paths is generating frames, no collisions occur - therefore, there is no flashing!
Recording the Output
- We don't really have a simple way of "piping" the video to some recorded form, but it sure would be nice!
- Add a RECORDR from the PVR section of the menu - this is our video recorder.
- Connect it just like you would connect a VIEWR; it is just a tool to capture video frames that would otherwise be displayed.
- You can play around with different codec and compression settings, but the defaults actually work pretty well.
- When you are ready to record, just hit Record. When you are done, turn it off.
- Where's the file? It's wherever you pointed (when you hit record), but by default is in the Cycling74 folder.
- Now that you have a file, you can use it in a video editing program, or use it as new material for more Vizzie manipulation.
- One of the limitations of the Vizzie system (current) is the lack of state saving.
- In order to have the patch be usable when we restore the patch, we need to know what the settings should be.
- The easiest way to do this is to document the patch. To do this, we will use the comment object.
- You can select the comment by taking it off the standard Max Object Explorer, but it is probably easier to just type a "C".
- This gives you a blank area to edit text. Use comment objects to place information anywhere that you might need it.
- A well-documented patch will give you all the information necessary to have the patch be effective when you reload it.
This concludes the workshop. I hope that you've enjoyed working with Vizzie, and that you find it useful enough to dig in deeper, learning more about the standard Max objects, and create great work!
Based on a workshop given at the MediaLive Festival in 2013 by Darwin Grosse