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
VDMX QCFX Template
Template Quartz Composer document containing the standard VDMX inputs and control-types, to get you started creating your own FX creations.
SpinZoomEdgesFeedback
Applies an 'edges' effect, then zooms, rotates, and feeds back the resulting image.
Presence
Similar to GridPro's Presence effect- highlights the difference between the video and an accumulated image of the video's past frames.
Motion Blur
A motion blur that's somewhat different from VVMotionBlur.
tb zoomEcho 1.1
Another motion blur/frame-echo effect, this time with added zoom-blur fun. Quite processor-hungry, sadly.
tb compmodeEcho 1.0
Yet another motion blur/frame-echo effect, featuring different compositing modes for the echoed frames.
tb channelRemove 1.0
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.
tb easyFreezeFrame 1.0
Creates an instant freezeframe, with adjustable mix of freezeframe and live video.
tb weirdDistort 1.0
A weird distortion effect. Works particularly well on faces (I scared myself, testing it with my laptops iSight).
tb pixelGlitch 1.0
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.
tb thresholdStretch 1.2
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.
tb thresholdStretch mix 1.0
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.
tb cutNshut 1.1
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.
tb frameRoll 1.0
Simulates vertical and/or horizontal hold errors on CRT displays/TVs. Adapted from Msa_ChannelShift.
tb scanProcessor 1.0
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.
tb sphereIterator 1.0
Maps the input onto the surface of multiple nested spheres. Works best with material with a black background, as dark areas become transparent.
tb cubeIterator 1.0
Same as sphereIterator, but maps input video onto the surface of multiple cubes. Works best with material with a black background.
tb slitScan 1.0
Implementation of the classic 'Stargate' slit-scan effect. Now with vertical and horizontal modes, Flip, Freeze, manual Scan, Rate and Angle controls.
tb colourFuck01 1.0
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.
tb thresholdPosterize 1.0
Posterize effect. Cuts colour channels when their value falls below a threshold value. Controls for threshold level for Red Green and Blue channels.
tb chromaZoom 1.0.qtz
Independent zooms for Red, Green and Blue colour channels. Controls for RGB zoom levels and master zoom.
ImpossibleTunnel
The incoming video is replicated-in-place, but the rendering order is reversed, giving the illusion of an impossible tunnel.
Motion Isolater
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.
msa_RockyBalboa
Distorts images by exploding edges, resulting in people looking like Rocky Balboa.
msa_ChannelShiftSimple
A simple RGBA channel shift effect.
msa_ChannelShift
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
msa_badtv
Creates a bad tv effect with scanlines, distortion, line sync, vertical hold problems etc.
msa_FrostedGlass.qtz
Frosted Glass effect. Pretty simple really.
msa_DiffMatteAuto.qtz
Allows recording of a clean plate and creates a difference matte.
msa_SmartThreshold.qtz
Applies a threshold with upper and lower limits.
aen_shakycamera 0.3
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