Return to Main Overview Page

Jitter Overview

Jitter extends the Max/MSP programming environment to support realtime manipulation of video, 3D graphics and other data sets within a unified processing architecture. And Jitter 1.7 has been updated to work with Max 5, which includes support for "probing" to visually debug your creations, automated inspectors for viewing object attributes, integrated documentation, unicode text, and more.

Because Jitter, like Max/MSP, is generic in nature, it offers unlimited possibilities for creative exploration. Whether you are interested in video processing, interactive art, teaching new media, or data visualization, Jitter offers both high and low level tools for working in exciting new ways.

Jitter abstracts all data as multidimensional matrices, so objects that process images can also process audio, volumetric data, 3d vertices, or any numerical information you can get into the computer. Jitter's common representation simplifies the reinterpretation and transformation of media. And with Jitter, many types of data can be processed on the GPU, leveraging the massively parallel computing power of today's latest graphics cards.


Video

Although the Jitter architecture is general, it is highly optimized for use with video data, and performs with breathtaking speed. A robust set of mathematical operators, keying/compositing, analysis, colorspace conversion and color correction, alpha channel processing, spatial warping, convolution-based filters, and special effects deliver the building blocks for your own custom video treatments.

Jitter includes extensive support for Apple's QuickTime architecture, such as the playback of all QT supported file formats, real- or nonreal-time file creation, editing operations, import/export capabilities, integrated real-time QT effects, video digitizing, QTVR, file format conversion, and more. QuickTime audio may be routed into MSP to exploit MSP's powerful audio processing capabilities. For the production environment, Jitter provides support for digital video (DV) camera control as well as input and output via FireWire, and multiple monitor support for performance situations.

2D/3D Graphics

Jitter's integrated 2D/3D graphics support provides the tools to use hardware accellerated OpenGL graphics together with video, including the ability to texture 3D geometry with video streams in real-time, convert audio and video streams directly into geometry data, and render models, NURBS, 2D/3D text, and other common shapes. There is even low level access to geometry data and the majority of the OpenGL API for those who need to be closer to the machine.

Ease of Use

Jitter is tightly integrated with Cycling '74's Max/MSP graphical programming environment which lets you visually connect data processing objects together with patchcords to create custom applications in a similar manner to analog modular synthesizers.

This visual framework provides the power to build your own unique video effects, realtime video mixers, audio visualizers, image to audio synthesizers, algorithmic image generators, batch converter/processor programs, or whatever your heart desires. You can share the programs you develop with other Max/MSP users and create standalone applications just as is currently possible with Max/MSP. A free Runtime version is available that runs any application created with Max/MSP/Jitter.

Jitter includes interactive help files for each of its objects, detailed documentation, 37 tutorials, and a bounty of useful examples.


Matrices

Jitter's strength and flexibility comes from the use of a single generalized matrix data format when working with video, 3D geometry, audio, text, or any other kind of data. Jitter matrices may be composed of one of four data types: char (8 bit unsigned int), long (32 bit signed int), float32 (32 bit floating point), or float64 (64 bit floating point). Matrices may have up to 32 dimensions, and may have up to 32 planes.

This common representation makes the transcoding of information effortless. You can experiment with intpreting text as an image, converting video images to 3D geometry, turning audio into a particle system, or playing video data as audio. The possibilities are unlimited.

Jitter has all the fundamental mathematical tools required to work with this numerical representation. The jit.op object alone provides over 60 arithmetic, bitwise, exponential, logical, and trigonometric operators. The multitude of operators in jit.op are particularly useful for experimenting with video compositing. And Jitter's support for linear algebra, particle systems, Fourier analysis and resynthesis, string processing, cellular automata, and Lindenmeyer systems allows for even further experimental possibilities.

More Details

Jitter objects also make available many aspects of their internal state in ways which will be new to even the most seasoned Max/MSP veterans. Jitter introduces the notion of attributes, internal variables which may be set and queried, thus permitting easier management of object state. As a means of convenience, Jitter objects can be created with attribute arguments of the form "@ "--greatly reducing the need for excessive use of the loadbang object.

Jitter objects can work with matrices of arbitrary size and are designed so that they can adapt to the type and size of data that they receive. A single program may have many objects working with different types and sizes of data at once, and there are tools to easily convert from one type or size to another.

All matrices that are passed between objects are named entities similar to the buffer~ object in MSP. Referenced by name, a single matrix may be accessed by multiple objects, allowing for creative feedback networks, in-place processing, and memory conservation.

There is a publicly available Jitter SDK with the source code of over 30 objects taken directly from the Jitter object set, so third party developers can extend the already overwhelming possibilities Jitter provides. This kind of extensibility is one of the strength's Max/MSP is already known for.

Performance

  • Cross platform architecture for GPU hardware acceleration. This fundamental shift in processing offers a dramatic increase in performance for image processing and general purpose computation, as well as material shaders and other GPU effects.
  • Fast YUV 4:2:2 (UYVY) video transfer to the GPU. Using the half bandwidth, half chroma data representation common in many of today's video formats, Jitter is able to more rapidly decompress and transfer YUV 4:2:2 data to the graphics card in real time. Together with GPU processing, this permits processing of up to HD resolution video footage in real time.
  • Multiprocessor support. Many CPU based Jitter objects exploit multi-processor and multi-core systems to take advantage of all the resources available to today's systems.

Networking

  • Compressed RTSP streams. Jitter 1.7 uses either the cross platform LiveMedia architecture, or the QT Broadcasting architecture on Macintosh to stream a variety of video codecs in real time.
  • Uncompressed Jitter matrix streams. For lossless transmission of Jitter matrices of arbitrary type, plane count, and dimensionality, Jitter 1.7 allows direct network communication in a Jitter native matrix format.

Programmability

  • Java and JavaScript support. Instantiate and control Jitter objects directly from text based programming languages that offer greater control of complex tasks.
  • Expressions. Succinctly define mathematical expressions for calculating matrix data.

Interoperability

  • Direct X video input and output support. Native Windows video input and output offers higher performance and more reliable I/O, without the need for third party Quicktime bridges.
  • FreeFrame plugin support. An open standard for video processing, FreeFrame plugins provide a rich set of options for building custom networks of effects.
  • MSP audio integration. Treat MSP buffer objects as Jitter matrix data, and convert audio vectors to and from Jitter matrices for frame based processing and audio visualization.

Key Features

  • Procedural texturing and geometry. Synthesize textures and geometry with a diverse set of noise and pattern basis functions.
  • Volume visualization. View volume data sets either as 3d textures or geometry obtained through surface reconstruction.
  • High Dynamic Range image support. Read and write floating point images using the industry standard OpenEXR file format.

Jitter in Education

Max/MSP/Jitter is in daily use at hundreds of universities around the world. The software's flexibility means it can be used to teach a wide range of subjects, from gestural interface design to mathematics for artists. Students learn a common visual programming approach which can be applied to any problem or subject area, allowing educators to focus on concepts instead software skills.

Max/MSP/Jitter handles the system-level software and hardware integration necessary for researchers to concentrate on a specific problem of interest. Max/MSP/Jitter is a common framework in which artists and researchers from varied disciplines can collaborate and cross-pollinate, building upon their respective specialties, all within the same flexible architecture. Recent artistic and research projects that have used Max/MSP/Jitter range from evolutionary systems for generating video filters to a computer controlled paint gun printer, and from music driven by the movement of ballet dancers to a robotic labyrinth that changes form as the participant walks through it.

Whether you are driving a cutting-edge project or demonstrating the basic principles of digital image or audio processing, Max/MSP/Jitter has the power and flexibility to let you focus on ideas rather than just technical issues. To top it all off, the open-ended nature of Max/MSP/Jitter has fostered a supportive community of developers and users who are sharing their code and insight on a continual basis.

System Requirements

Visit the download page for a current list.

Next Steps

Purchase a product directly through our online store.

Download a product demo or update.

Explore our vast support and community resources.

Events Calendar

October 2008

M T W T F S S
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Submit Your Event