Tuesday 17 May 2011

Quartz Composer 1 - Learning new software / new language

Quartz Composer is a node-based visual programming language that comes as part of the mac OSX Xcode developer tools. It programs and renders graphics. The first thing about Quartz Composer is that it isn't like most development tools. Instead of writing pages worth of code to directly manipulate the various graphics, you work visually with processing units called patches. These patches are connected into a composition. As you work with a composition, adding patches and connecting them, you can visually see the results in a viewer window. Each and every change you make is immediately reflected in the viewer, no compilation required. This results in a development experience like no other.
Quartz Composer can be used to prototype Core Image filters, build screen savers, create custom user-interface widgets, make data-driven visual effects, and even perform live performance animations.

The Quartz Composer interface:




Quartz Editor Window:


A patch is similar to a subroutine in a traditional programming environment. You can provide inputs to the patch, the patch will then execute and produce some results. Circles on the left side of a patch represent the various inputs the patch will accept. Circles on the right side are the outputs. The kinds of inputs a patch will accept and outputs it will create depend on its functionality.
These are the patches i made for MIDI TEST 2 that will be elaborated on in a later post.


Quartz Viewer Window:


Data inside QC can be one of the following types:

Boolean - a boolean value, 0 or 1
Index - a positive integer between 0 and 2147483647
Number - a double precision floating point number
String - a unicode string
Color - an RGBA or CMYK quartet, or a Grayscale value
Image - a 2D image of arbitrary (possibly infinite) dimensions
Structure - a named or ordered collection of objects, including nested structures
Virtual - any of the above

It is incredibly diverse. Its versatility has enabled me to use MIDI to manipulate graphics real time and create fully syncopated a/v.

This is an entirely new piece of software to me, and its going to be a huge learning curve.
I have no prior experience using it but it is more than capable of producing the results i want.

No comments:

Post a Comment