Quartz Composer for VJ’s FAQ
Posted by roger on July 29th, 2005What is Quartz Composer?
Quartz Composer is a new realtime graphics technology provided by Apple in Mac OS X 10.4 (Tiger). It allows "movie files" to be constructed that render 3d effects on the fly and has user interaction and scripting capabilities. These quartz composer compositions (qcc) can be played back just like normal quicktimes in any VJ mixing program or they can be embedded within an application. Think of it as a hardware accelerated 3D version of flash movies. It includes a graphical authoring environment similar to MAX/MSP or Visual Jockey. It’s also free and included with every copy of Tiger.
Why is it good for VJ’s?
Using Quartz Composer you can construct interactive loops that react to audio, keypresses or midi signals and that render very fast on the fly using your graphics card. These loops can be played back just like any other quicktime movie in current VJ apps. Beyond that you can make a complete standalone app that animates text, mixes quicktimes, applies hardware accelerated effects to live camera input or many other uses, without writing any actual c code.
Quartz Composer vs Flash
Flash and Quartz Composer both let you construct interactive movies that render on the fly. The main difference is that Quartz Composer is fully hardware accelerated and can do some things like audio reaction and midi control input more easily than flash can. Flash has better tools for people used to conventional keyframe animation. If your style of VJ’ing suits the 2D vector graphic style of flash and you already know flash then it might be a better solution for you.
Quartz Composer vs PixelShox
PixelShox was written by the same primary author as Quartz Composer (Pierre-Olivier Latour or Pol). It’s a similar modular programming environment but more limited in that compositions can only be played back inside Pixelshox. It was also never finished so it is missing some essential features (like copy/paste in the editor). It does have some effects and tools that are missing in the current version of QC like importing 3d models and warp/ripple geometry distortion effects.
You can still download the last beta version at www.pixelshox.com
Quartz Composer vs MAX/MSP/Jitter
Quartz Composer is much faster than MAX/MSP for video processing, it’s also free with Tiger and applications made with Quartz Composer can be sold without paying any license fee. However Quartz Composer does not do audio processing, is mac only and it’s harder to build and connect interface widgets to a composition than it is in MAX/MSP. Future versions of MAX/MSP will probably add support for playback of Quartz Compositions and use of core image filters which will allow the best of both worlds.
How do I get it?
The Quartz Composer editor application is shipped with every copy of Tiger but is not installed in a default Tiger install. Go to the Developer tools (XCode) installer on the Tiger DVD and install XCode and you get Quartz Composer placed in your "Developer / Applications / Graphics Tools " folder. Quartz Composer compositions will still playback on machines without this installed as the QC playback engine is part of Quicktime 7.0 on Tiger.
What machines will it run on?
Any Mac that runs Tiger with a 16MB graphics card. For good performance Core image filters require a graphics card with a programmable GPU such as a Radeon 9600. I’ve run QC on a 550Mhz G4 powerbook with a 16MB Radeon 7000 and can get decent performance on simple compositions. If you run with dual displays in monitor spanning you need 16MB per display, so a 32MB card is required.
Whats the relation between Quartz Composer, Core Image and OpenGL?
Quartz Composer is a high level modular authoring environment that uses Core Image and OpenGL to render a scene. You can still do many effects such as particles, mapping video to geometry etc without using Core Image. If your computers grahics card does not support accelerated Core Image filters then QC will render them in an altivec fallback mode but it will probably be too slow for realtime video performance.
What about Windows? What about Panther?
Even though QC is part of Quicktime 7.0 you cannot playback QC comps on windows machines or macs running panther. The CoreImage libraries that QC uses have not been ported to windows or panther and it’s highly unlikely they ever will be.
What about the change to Intel processors in Macs?
Quartz Composer compositions are essentially interpreted scripts, so a composition will run at full native speed either on a PPC mac or an Intel mac. XCode projects that use compositions will compile to Intel native binaries just by checking the “build for intel” architecture box. My Quartonian VSM cocoa application is already availableas a universal binary.
The cracked version of Mac OS X 10.4.4 or 10.4.5 will probably run Quartz Composer compositions on generic pc hardware but many people have problems getting full core image acceleration and multiple display outputs working. Running OS X on non Apple hardware may be illegal and will not be officially supported by Apple. Overall, you’re far better off buying a genuine Mac to build a stable live performance box.
Summary, don’t steal Mac OS X.Does a VJ program have to specifically support Quartz Composer to play QC compositions?
Yes and no. Any application that plays Quicktimes will play back a QC comp but at a reduced framerate and with reduced functionality. VJ Application developers need to change their app to use new QT7 API’s to get the best performance out of Quartz Composer comps. Then in addition once a VJ app adds support for direct playback of QC comps rather than as a quicktime we will be able to map controllers and sliders to functions inside a QC comp using published inputs. This is where the fun really starts…. See this Apple technote for exactly what changes you should make if you are a VJ app developer:
http://developer.apple.com/technotes/tn2005/tn2145.html
Could I make a complete VJ Mixing application with Quartz Composer?
Yes, in fact I already did and you can find it here: www.quartonian.net
The downside is you have to drive it blind or control it from a sequencer via midi. Both options are definately workable. Creating a full gui interface with multiple outputs etc requires using Interface Builder and XCode and some knowledge of Objective C and Cocoa but it’s still a hell of lot simpler than trying to write a VJ app from scratch.
What was that about using a midi sequencer with Quartz Composer?
Quartz Composer can read incoming midi notes or controller values to control a composition. Using a sequencer like Ableton Live (www.ableton.com) or Numerology (www.five12.com) you could build a very powerful custom visuals environment without a single line of code. Use the sequencer to trigger clips and control effects on a timeline and QC as a 3d accelerated rendering engine. I am currently in the process of building this exact setup for a future AVSet. Some information and tricks I’ve learnt can be found in a series of articles on AVSync that I’ve written for quartonian.net.
Software
- Quartonian is a simple free VJ mixer created in Quartz Composer that allows native playback and triggering of QC comps.
- Edo is a modular VJ/Compositing tool that allows playback of Quartz Compositions and has deck with thumbnails for clip assignment. Very powerful and worth a look.
- Arkaos VJ Midi 3.5.1 latest version of Arkaos has core image hardware effects and should run Quartz Composer files at full native speeds.
- Modul8 2.5 due for release very soon will include full core image acceleration and support for native speed playback of Quartz Composer compositions.
- Grid Pro version 1.2 from Vidvox will feature GPU and core image accelerated fx but is still several months away from release.
There is still a lot that can be done with other VJ apps with non native support, if you have at least a 1 Ghz G4 with a 32MB graphics card you should have enough power to mix QC comps in with your other footage in current VJ apps as long as you keep them simple.
As Mac OS X VJ applications are updated to offer full support for Quartz Composer I will update this page and list them here.