# Teacher
Andrew Benson
email: andrewb [at] cycling74 [dot] com
AIM screen-name: cloudmachine99
#Description:::
Jitter is an extension to Max that allows flexible generation and manipulation of video, matrix, and 3D graphics data. Jitter is all about matrix data -- any data that can be expressed in rows and columns, such as video and still images, multidimensional geometry, as well as text, spreadsheet data, particle systems, voxels, or audio. Jitter is useful to anyone interested in real-time video processing, custom effects, 2D/3D graphics, audio/visual interaction, data visualization, and analysis.
This three-day sequence of evening classes covers Cycling 74's Jitter environment and is designed for students with at least a basic understanding of Max programming. (Graduates of the Max/MSP Day School will be adequately prepared for the Jitter night school.)
#Course Outline:::
##Day 1 :: Intro to Jitter, the Matrix, and Interaction
- Intro to Jitter features
- What is a matrix?
- Using the Jitter documentation (html ref-pages, help files, etc.)
- Jitter data flow
- Matrix as data container
- Audio/Max interaction with Jitter
- Brief intro to Quicktime
##Day 2 :: Focus on Video
- Quicktime in Jitter
- Playing QT movies
- Real-time editing in Jitter
- Grabbing input from external video devices
- Recording to disk
- Compression
- Compositing/Blending
- Crossfades
- Keying/Alpha-channels
- jit.op for mathematical blends (additive,subtractive,difference, etc.)
- Filtering, Blurring, and Feedback
- temporal vs. spatial filters
- creating bit maps from images
- convolution
- intro to feedback (named matrices, jit.wake, etc.)
##Day 3 :: OpenGL, Slabs, and other advanced topics
- OpenGL lesson
- Deconstructing an OpenGL patch
- the OpenGL matrix format
- applying textures
- blending, layering, and depthbuffering
- Using Slabs for Optimized Video Processing
- What is a slab? What is a shader?
- Optimized transfer of video using UYVY color
- Intro to the provided shaders
- Quick look at a shader program?
- Performance and Live-video concerns
- Using a second display (projector)
- Preloading, RAM vs. Disk-access
- Basic Optimization strategies