Quartz Composer

From VidvoxWiki

Contents

About Quartz Composer

Quartz Composer is a groundbreaking graphics development environment that allows you to explore the incredible power of the graphics stack of Mac OS X Tiger. With Quartz Composer, you can easily combine the capabilities of Cocoa, Quartz 2D, Core Image, OpenGL, and QuickTime, all using an approachable visual programming paradigm. Quartz Composer can be used to prototype Core Image filters, make data-driven visual effects, and create live performance animations.

Quartz Composer and VDMX5

We at Vidvox really like Quartz Composer: it's free, easy to pick up, and offers people with absolutely no programming experience a comfortable way to create stunning interactive pieces. As such, we do our best to support the aspects of it that we think are most advantageous- its ease of use and interactivity. There are 3 different ways to use Quartz Composer with VDMX:

  • QC patches as clips

The quickest way to get your Quartz Composer patches doing something in VDMX is to simply drag them into a media bin, or choose "Import Media" from the file menu. Your QC patch may then be trigger just like any other movie.

  • QC patches as FX

If you add an image input to your Quartz Composer patch (and name it appropriately), VDMX can use it as an effect: video will be passed to the image input, your patch will be rendered, and the final image will be sent to the next effect in the chain.

  • QC patches as a Fontsynth

If you add a string input to your Quartz Composer patch (and name it appropriately), VDMX can use it to trigger text files: text will be passed to your patch, rendered, and the final image will be send through your FX chain.


Sample Quartz Composer patches, FX, and text patches

  • To use: save a file to disk by option-clicking on a link, drag the saved file into VDMX's "qcFX" folder, and then relaunch VDMX. The new fx will be available in the "QuartzComposer" category in your Video FX Palette


QCDocIcon_sm.jpg VDMX QCFX Template Info_circle.png Template Quartz Composer document containing the standard VDMX inputs and control-types, to get you started creating your own FX creations.

QCDocIcon_sm.jpg SpinZoomEdgesFeedback Info_circle.png Applies an 'edges' effect, then zooms, rotates, and feeds back the resulting image.

QCDocIcon_sm.jpg Presence Info_circle.png Similar to GridPro's Presence effect- highlights the difference between the video and an accumulated image of the video's past frames.

QCDocIcon_sm.jpg Motion Blur Info_circle.png A motion blur that's somewhat different from VVMotionBlur.

QCDocIcon_sm.jpg tb zoomEcho 1.1 Info_circle.png Another motion blur/frame-echo effect, this time with added zoom-blur fun. Quite processor-hungry, sadly.

QCDocIcon_sm.jpg tb compmodeEcho 1.0 Info_circle.png Yet another motion blur/frame-echo effect, featuring different compositing modes for the echoed frames.

QCDocIcon_sm.jpg tb channelRemove 1.0 Info_circle.png Removes the selected RGB channel from the video input. In mode 1, a stillframe of the selected colour channel at the current frame is overlaid on top of the video input.

QCDocIcon_sm.jpg tb easyFreezeFrame 1.0 Info_circle.png Creates an instant freezeframe, with adjustable mix of freezeframe and live video.

QCDocIcon_sm.jpg tb weirdDistort 1.0 Info_circle.png A weird distortion effect. Works particularly well on faces (I scared myself, testing it with my laptops iSight).

QCDocIcon_sm.jpg tb pixelGlitch 1.0 Info_circle.png A glitch effect that freezes areas of the screen. Hook up the Freeze Video and Freeze Pixels buttons to a Waveform plugin set to random or to audio levels at different bands to get the full effect.

QCDocIcon_sm.jpg tb thresholdStretch 1.2 Info_circle.png Updated: now stretches pixels above/below or to the left/right of an adjustable threshold line. Controls for Axis, Flip and threshold Position, Standard (0) and Infinite (1) modes.

QCDocIcon_sm.jpg tb thresholdStretch mix 1.0 Info_circle.png Variation on thresholdStretch. Stretches pixels at Edge 1 towards Edge 2. Stretches pixels at Edge 2 towards Edge 1 and cross-fades the results. Vertical and Horizontal modes.

QCDocIcon_sm.jpg tb cutNshut 1.1 Info_circle.png Updated: now removes a vertical or horizontal strip from the frame and closes the gap. Controls for width and position of removed area, axis of operation and flip.

QCDocIcon_sm.jpg tb frameRoll 1.0 Info_circle.png Simulates vertical and/or horizontal hold errors on CRT displays/TVs. Adapted from Msa_ChannelShift.

QCDocIcon_sm.jpg tb scanProcessor 1.0 Info_circle.png Inspired by analogue 'scan-processor' video generators. Can be used as a strange transition, or just to generate odd contoured landscapes and squiggly lines. Now updated with vertical and horizontal modes.

QCDocIcon_sm.jpg tb sphereIterator 1.0 Info_circle.png Maps the input onto the surface of multiple nested spheres. Works best with material with a black background, as dark areas become transparent.

QCDocIcon_sm.jpg tb cubeIterator 1.0 Info_circle.png Same as sphereIterator, but maps input video onto the surface of multiple cubes. Works best with material with a black background.

QCDocIcon_sm.jpg tb slitScan 1.0 Info_circle.png Implementation of the classic 'Stargate' slit-scan effect. Now with vertical and horizontal modes, Flip, Freeze, manual Scan, Rate and Angle controls.

QCDocIcon_sm.jpg tb colourFuck01 1.0 Info_circle.png F*cks up your video's colour in various different, completely uncontrollable ways. Pointless really, but you might find a use for it... Thanks to memo once again for the offset mode CIKernel code.

QCDocIcon_sm.jpg tb thresholdPosterize 1.0 Info_circle.png Posterize effect. Cuts colour channels when their value falls below a threshold value. Controls for threshold level for Red Green and Blue channels.

QCDocIcon_sm.jpg tb chromaZoom 1.0.qtz Info_circle.png Independent zooms for Red, Green and Blue colour channels. Controls for RGB zoom levels and master zoom.

QCDocIcon_sm.jpg ImpossibleTunnel Info_circle.png The incoming video is replicated-in-place, but the rendering order is reversed, giving the illusion of an impossible tunnel.

QCDocIcon_sm.jpg Motion Isolater Info_circle.png Samples an incoming video stream while the button is down- on releasing the button, only displays differences greater than the threshold between the current frame and the last sampled frame. Works on the alpha channel; it's basically a motion mask.

QCDocIcon_sm.jpg msa_RockyBalboa Info_circle.png Distorts images by exploding edges, resulting in people looking like Rocky Balboa.

QCDocIcon_sm.jpg msa_ChannelShiftSimple Info_circle.png A simple RGBA channel shift effect.

QCDocIcon_sm.jpg msa_ChannelShift Info_circle.png An RGBA channel shift effect with a few different modes: 0: simple shift, 1: repeat edge pixels, 2: wrap around edge pixel pixels, 3: mirror edge pixels

QCDocIcon_sm.jpg msa_badtv Info_circle.png Creates a bad tv effect with scanlines, distortion, line sync, vertical hold problems etc.

QCDocIcon_sm.jpg msa_FrostedGlass.qtz Info_circle.png Frosted Glass effect. Pretty simple really.

QCDocIcon_sm.jpg msa_DiffMatteAuto.qtz Info_circle.png Allows recording of a clean plate and creates a difference matte.

QCDocIcon_sm.jpg msa_SmartThreshold.qtz Info_circle.png Applies a threshold with upper and lower limits.

QCDocIcon_sm.jpg aen_shakycamera 0.3 Info_circle.png A shaky camera effect. The amount of shake could be controlled.

Using Quartz Composer patches with VDMX5

Quartz composer consists of objects which are connected together with patch cords. The "Input Splitter" object lets you make inputs in patches; data may be passed to objects through these inputs. If you make an input splitter in the top level of your patch and publish it, VDMX will attempt to make an interface item for your input; different types of inputs (numbers, toggles, colors, etc.) get different types of interface items. Here's instructions on how to add a published input to a Quartz Composer document so it can be used with VDMX5.

If you want to use a Quartz Composer patch as an effect or as a fontsynth patch, it has special requirements. Specifically, fx patches need to have an image-type input splitter published as "inputImage" (images that the fx is applied to will come through this input), and fontsynth patches need to have a string-type input splitter published as "FileInput" (letters, words, sentences, etc. will be passed through this input).


Other Quartz Composer resources

Apple's Quartz Composer Guide

Quartonian QC blog, FAQ

QuartzComps.com Examples and discussion

QuartzCompositions.com Examples, Discussion, Wiki

Futurismo Zugakousaku Examples

Sam Kass Blog Examples

Memo.tv Keyword-searchable qcFX and VDMX set archive from VDMX forum member

Kineme Interactive Media QC custom patch and discussion forum