A Reflection on Quartz Composer

26Jun09

Today I managed to join up with the Urban Screens workshop, run by Morgan Barnard. I was running around before hand, so I missed the intro, although I am sure it went peachy.

The intro I did gather was all about Quartz. So for this little post I plan to recap the topics covered, hopefully provide a rough step-by-step. I suppose this is to stand as a small review and a reference for those who wish to recall some Quartz basics.

The first discussion revolved around the accessibility and scope of Quartz Composer. The distribution, although limited to Mac Os X, is included directly on the OS install disc. The integration with the OS is quite tight, especially when you look at the simplicity behind things like screen saver settings. The libraries required to run the core Quartz compiled files are all right there on your Mac Os, waiting for you to use them.

We kicked pretty much straight into a tutorial here, so following will be a small pointed list of most of the primary steps taken:

  • First we started up a blank composition, after taking a peek at an RSS template
  • Brief overview of the layout, and within the patch creator panel we briefly looked over some common components. Some categories of patches to recall are:

Filters – Image processing
Environment – OpenGL related utilities
Modifiers – Data manipulation
Programming – More advanced rendering techniques
Renderer – Display primitives

  • Add a clear patch, set to desired colour
  • Add a Sprite from the renderer group
  • Briefed over the coordinate system, which is a grid centered on (0,0) the upper right would be (1,1) and the lower left would be (-1,-1) (re: Cartesian Coordinate System)
  • To play with this & see results quickly, we added a Mouse controller, and linked the x/y to the x/y on the sprite, and we could move the sprite around with our mouse
  • Remove the mouse controller
  • Now add in a Image with String generator patch, piping the image to the image on the Sprite patch – however the text looks funny, so we use the display width/height from the Image with String and pipe that to the width/height of the Sprite
  • We quickly took a peak at the font setting, this allowed us to take a look at the different panels on the patch inspector
  • Movement! The Interpolation patch was used (with a start of -2 and end of +2) with the result piped into the x position of our sprite
  • The Image Downloader was then added, for this the URL pointed to our picture on the web, feeding the Image result into a new sprite. We used the (yellow) numbers in the top right of the display type patches to change their layers, this allows us to have our text sprite, above the image sprite that we just added. Using the Image Dimensions patch, you can ensure your image has the correct width/height (pipe the image from the downloader into the dimension, then pipe the width/height into the width/height for the sprite)
  • I went a small step further here and used the aspect ratio, in combo with the Math patch to create a “full screen” version (would stretch to the container)

About here is when we had a small break for coffee. The session had gone quite smoothly up till now, and with the fun tweets everyone happen to be reading throughout the session. it proved to be quite an interesting morning to be presenting stuff based on live feeds.

  • Morgan briefed over the usage of Yahoo! Pipes which quickly fed into a new patch, RSS Downloader
  • The RSS feed comes back as a “structure” in Quartz, and for this we used the Structure Index Member to select one item from our list of results. We had to then chain this result down to another Structure Key Member which chose a particular section to list, in our case it would be the tweet. The Structure * Member patches simply select smaller sections of a structure, so depending on the feed you may need more of these
  • Our first entry was displaying so we added an Interpolation patch that takes the result from a Structure Count patch (which was attached to our rss feed) as it’s end point (minus 1 via the Math patch). The result was then piped to the first Structure Index Member patch as the index. This allowed the tweets to get cycled through, starting with 0 up to n-1 (re: 0 based indexing)

This is about when everyone broke out into small groups to see if they could either make something cool happen, or just to simply get the rest of theirs working.

Overall, I think it was a helpful workshop. The issues covered were enough of the basics to allow anyone to really quickly jump in and see how the system works. The library of patches to use is huge, and will obviously take lots of time to know them all, let alone how to use them all. The scope of the presentation was urban screen, and although we may not have touched heavily on that during the part of the workshop I was attending; I think showing how to quickly use an application, that is readily available to anyone with access to a Mac, to push out live media, either for personal use (re: screensaver) or for a public environment.

Advertisements


No Responses Yet to “A Reflection on Quartz Composer”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: