Archive for the 'Tech' Category

QuickTime 7.0.1: Security enhancements

QuickTime 7.0.1: Security enhancements

This sucks. QT 7.0.1 no longer lets you access remote web locations from within a Quartz Composition when played using Quicktime Player. No more playing such compositions from the Quicktime Plugin in a web page either. This means no RSS feeds unless you run the composition in Quartz Composer itself or in a custom app.

This is the direction I’m heading anyway (making custom apps) but it means you can no longer distribute a .qtz file or a composition in a .mov which accesses network data and expect it to work on machine running Tiger unless the user has Quartz Composer installed.

These were some of the coolest features of Quartz which I was only just starting to explore before the plug was pulled. Hopefully these features will return some time soon.

Update 18/7/05

I don’t think I made this clear enough but the change was made in response to the potential security issue whereby network access from within a composition wrapped in a .mov file to be used to leak information to a malicious third party when used in combination with Quartz Composer’s ability to access sensitive information about the host computer (computer name, local ip address, current username, results of spotlight searches etc). See the original security report from David Remahl here:

Full-Disclosure: [Full-disclosure] [DR018] Quartz Composer / QuickTime 7 information leakage

Regular (non Quartz Composer) wired Quicktime movies have had the potential to expose some information about the host computer via network access for many years, however it was never to this level and I guess never seen as a security issue. As much as I hope to see things like RSS access return to Quartz Compositions when wrapped in .movs I don’t think it is likely.

It would be virtually impossible to modify Quicktime’s handling of QCs to differentiate between allowing nice, friendly information to be sent (get me links to all the recent images of “x” from flickr.com) and preventing nasty information such as (here is my username and ip address, please start trying to hack into my machine).

Using Quartz Compositions as screen savers expose the same potential risks but I guess in this case you are making a conscious decision to install a piece of software, as opposed to playing a .mov file unaware of its hidden code.

Technorati Tags: ,

Quartonian

Roger Bolton from eskatonia has put together a great Quartz Composer VJ patch complete with on screen previews and keystroke triggering of clips.

Quartonian screen shot

Quartonian is designed to be run in Quartz Composer at full screen and thus has very few on screen controls, in fact with a press of the “~” key you can toggle the whole onscreen display on and off. This makes for a fairly steep initial learning curve for users but, you soon get a feel for using the keyboard and mouse.

Clips (up to 24) must be loaded into ‘Image with movie’ nodes from within a macro patch using Quartz Composer’s editor window to begin. *Hint* it’s the little blue one at the top :-)

Quartonian patch editor screen shot

Also on the eskatonia site is a guide to Quartz Composer for VJ’s with lots of useful links and examples.

Until visiting this page I didn’t realise that you could load .qtz files into ‘Image with movie’ nodes. For example, the ‘Audio Barcode’ .qtz file from the site which reacts to audio input can be loaded into a patch and used as a mask on another clip.

Both Quartonian and the other examples on the site are released under attribution - non commercial - share alike creative commons licenses so users are free to modify and create derivative works.

Technorati Tags:

Quartz Composer TV

QCTV, a sample application and source code from Apple's WWDC 05

Quartz Composer QCTV is an application and related source code which demonstrates how to use QC and Xcode to create a TV news style system complete with bluescreen keying and a scrolling text crawl via a RSS feed. It is really good stuff, allowing the user to display either a live camera feed or Quicktime movie over a background. QCTV also features the ability to record the ‘TV show’ to a movie file or stream it out via DV (not while the live camera feed is in operation though).

Pol and the Quartz Composer people at Apple have done an excellent job with their developers documentation and examples. In particular I have found the Quartz Composer Programming Guide: Introduction to Quartz Composer Programming Guide to be most helpful.

Technorati Tags:

MIAF - LA 6: a Quartz Vidget

Screen shot showing the MIAF - LA6 Vidget controls and output

This is the next version of my live video performance (VJ) application. It is an updated version of the program I used for my recent performances at MIAF: Remains To Be Seen and Liquid Architecture 6.

Like the previous version, Bikelights: a Quartz vidget, MIAF-LA6 features one window with controls on the left hand side and a display on the right. It is designed so that I can have the controls on my laptop screen while sending the video from my second monitor output at 640 * 480 to a projector by arranging my monitors like so and dragging the window across.

Screen shot showing monitor arrangement

At some stage I’ll work out how to do two separate windows but this works well for the moment :-)
Screen shot showing controls

Where the previous version only allowed the display of one source image at a time, this version lets the user layer two separate images through a number of effects and outputs. The left hand side of the control area is split two (Source Clip A and Source Clip B). Each area contains four empty text fields where Quicktime movies may be dragged and dropped from the Finder (click in the field to activate it, drag and drop, then hit Enter to set).

Below the four movie path fields is a fifth path field which allows the user to specify a local path to a folder of still images. Again folder paths may also be either typed in manually or dragged from the Finder. After pressing Enter the “# of Images” field should update, letting you know how many images are in the folder you specified. To the left of this field is the “Sequence Duration”, this lets you specify how long (in seconds) it should take to cycle through all of the images in the folder. For example, if you have 8 images and want them to play through at four frames per second second you should set the duration to 2 seconds.

To the right of these fields is a large vertical slider, this lets the user select any one of the four Quicktime Movies or the folder image sequence to process and display.

To control the playback speed of the Quicktime movies, check the “Clip Speed Control” box and move the horizontal slider below. If unchecked the movie will play out at normal speed. If checked the speed will be controlled by a combination of the slider position and live audio analysis (if you have a microphone set up). The far left of the slider is 0 * original speed, the far right is 5 * original speed. If a microphone is connected, the video will jump up to one second forward through the clip with the loudest audio peak.

Below the speed controls are the image controls. These controls allow the user to adjust the saturation, brightness, contrast and colour angle of the clips or image sequences. To leave the Quicktime movie unaffected uncheck the “Image Controls” box.

On the right hand side of the control area is the output stage, the “Renderers”. Each renderer may be switched on and off via a check box and be used to display either source A or source B (or a combination of the two in the case of the “Billboard” and “Inset Image” renderers).

Download miaf2vidget.zip (Mac OS 10.4 required)

Download miaf2quartz.zip (Quartz Composer file)

Download miaf2xcode.zip (Xcode project)

This work is distributed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 licence.

Technorati Tags: ,

Bikelights: a Quartz vidget

One of the coolest things I’ve discovered about Quartz Composer lately is the fact that you can use it (in combination with Xcode) create stand alone applications with custom interfaces all without having to know any ‘proper’ programming. So, here’s one of my first experiments….

This vidget is a simplified version of a larger Quartz Composer patch I have been using to perform with recently. It allows the user to import a number of Quicktime files or still images and apply a number of effects to them.

Bike Lights Vidget Screen Detail

On the left hand side of the window are five text fields which store the local path to each movie file. To add your own clips, simply click in the field and then drag the movie’s icon from the finder into the field and press enter.

Just to the right of these text fields is a selection slider, which is used to select which source clip is to be effected. The arrow will snap to each of the clips as you slide or click it.

Below the and to the left are more sliders which control the clip’s playback speed, saturation, brightness, contrast, and hue angle. All of these work in real time to adjust the display of the clip.

To the right of these image controls are check boxes for the different rendering effects. They are ordered from top to bottom in terms of the layers onto which they are drawn. The top three have optional black ‘clear’ backgrounds which block out the layers below.

Expanding audio renders the clip onto three layers, red, blue and green and uses live audio input to resize the three layers to produce a coloured motion blur effect.

Particle system
renders the clip onto hundreds of small layers which explode out from a randomly selected point on the screen.

Slow moving layers renders the clip onto four layers which crop the image and oscillate in 3d space based on a combination of audio input and low frequency oscillators.

Inset Image produces a ‘picture in picture’ effect which is manipulated by audio input.

Bike Lights Vidget Screen Shot

Download (requires Mac OS X 10.4).
BikeLights Clips (these tiny lo-fi clips of my bike lights were shot with my phone and are the reason for the name, try them out)
Quartz Composer file
Xcode Project

This work is distributed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 licence.

Technorati Tags: ,

Compostition in a composition

For the past few weeks I’ve been playing with Quartz Composer live at Plug ‘n Play on Thursday nights at the Kent St Café on Smith St in Collingwood (Melbourne). It’s a great place to experiment in a comfortable environment with a projector and sound system and the only place I can imagine that gives you free drinks for sitting in the corner programming!

Last Thursday I attempted to use my QuickTime vj application Vidget 3.5 (I’m actually up to version 3.6 but haven’t got around posting it) to mix Quartz compositions saved as .mov files. This produced some interesting (unstable) results. The way the vidget works is to layer up to three Quicktime movies (movies in a movie) over the top of each other with different transparency/opacity graphics modes - like video Photoshop layers which are rendered in real time by Quicktime. With the standard ‘Dither Copy’ mode my compositions played reasonably well but whenever I switched to some other modes the video flickered very fast and bright and whenever I resized the window to go to full screen Quicktime unexpectedly quit.

Since I couldn’t use the vidget I decided to see what happened when I dropped Quartz compositions saved as .mov files into the composition workspace of a new file, to my surprise rather than appearing as ‘image with movie’ nodes (as QuickTime movies usually do), they were added as ‘macro patches’ meaning I could double click and manipulate their inner workings, excellent!

Here’s an image of my original composition space with the new macro patch highlighted:

A composition in a composition 1

Double clicking on the macro patch reveals the composition within:

A composition in a composition 2

Technorati Tags:

Quartz Composer

For me, the coolest new feature of Mac OS 10.4 “Tiger” is an application called Quartz Composer included with ‘Developers Tools’. It allows the user/developer to create patches for the real time generation and manipulation of images using the new Core Image engine via a visual patch based interface.

Quartz Composer shares much of its interface style and function with its predecessor PixelShox, an OpenGL based real time video application a mate of mine Khalid has been using for vj work for a while now. While it is no longer being actively developed (its developer has taken a full time position in the computer graphics field *cough* at apple *cough*), it’s worth a look if you have a Mac and have not moved to 10.4 yet.

Like PixelShox, Quartz Composer has a wide array of live inputs such as mouse and keyboard tracking, MIDI, audio and video inputs. One new input featured in Quartz Composer which has caught my eye is RSS processing using the new Safari RSS engine. While a more generic XML parser would have been preferable I’m sure I can have a lot of fun with RSS alone :-)

Quartz compositions may be incorporated in ‘real’ programs with Cocoa bindings and interfaces built with the ‘inteface builder’ application, used as screen savers (one of the default screen savers included with 10.4 displays the current Apple News RSS feed in an ‘eye candy’ 3d flythrough) and, drumroll…. played in QuickTime Player in 10.4!

QuartzComps has popped up as a blog for sharing and discussing Quartz Composer patches, as has the Apple Quartzcomposer-dev Info Page mail list (see the Mailing List Archives too).

For more info on Core Image, Core Video and Quicktime 7 see this page of ArsTechnica’s excellent and in-depth review of 10.4 - Mac OS X 10.4 Tiger : Page 16

CocoaMySQL

Another very handy little Cocoa program I came across recently is CocoaMySQL. Its basically a graphical user interface (GUI) for accessing MySQL databases. I recently installed WordPress (which stores user account information and more in MySQL) locally on my laptop as an experiment and CocoaMySQL helped demystify the installation process completely. Initially I didn’t really know how such a database worked but after examining it using this program it all started to make sense.

I’m a big fan of these applications which make UNIXy command line processes accessible to the lay-person.

Cocoal.icio.us a del.icio.us client for Mac OS X

del.icio.us is a free social bookmarking site which lets you log in, post a URL, a brief description and use ‘tags’ to organise and categorise your links and browse those submitted by others. It even generates RSS feeds of bookmarks for each user. On its own this is very cool, and a good way to keep track of bookmarks across multiple computers / operating systems / locations.

If you happen to be using Mac OS X, Cocoal.icio.us allows you to access and manage your del.icio.us bookmarks, descriptions and tags without having to use a web browser by talking directly to the del.icio.us API (once you’ve told it your username and password). It also features a built in browser preview window, so you can click on a bookmark and to check that you got the URL right etc.

via http://del.icio.us/cnwb/

Google 2004 Zeitgeist Interactive Edition

2004 Year-End Google Zeitgeist - Interactive Edition