Posted by smokris on 2007.05.16 @ 17:51
I took Martin Kahr’s Apple Remote Controller Wrapper Class and built a Quartz Composer patch around it.
Leopard (10.5) includes a built-in Apple Remote patch.
Please see also kineme.net for Leopard-compatible patches.
- The events received from the Apple Remote are fairly strange to begin with.. You don’t simply get “key down” / “key up” events as I would have assumed, but instead get cooked events — for many of the buttons, holding the button down generates a different event than tapping it.
- My patch queues events, to ensure that each keypress is visible for at least one frame.
Posted by smokris on 2007.05.13 @ 12:03
In addition to writing the inspector panels for custom Quartz Composer patches tutorial, I spent this weekend writing up some advanced custom-patch-development documentation and posted it on QC Wiki:
Posted by smokris on 2007.05.13 @ 11:52
Posted by smokris on 2007.05.08 @ 14:35
Frustrated with the tedium of going through all the Xcode project files in a text editor and manually replacing all of the identifiers and filenames when creating a new Quartz Composer Patch, I decided to finally figure out how to create a new Xcode template. [more...]
Posted by smokris on 2006.09.22 @ 01:36
This is the second release of the Kineme Quartz Composer Plugins.
New this time:
- MIDI Global In Note :: This patch observes a specified MIDI Note number on a specified MIDI Channel, and outputs the Velocity and a boolean Gate signal.
- MIDI Global Out Note :: This patch, when Gate is rising true, outputs a MIDI note-on message on a specified MIDI Channel with the specified Velocity. When Gate is falling false, a MIDI note-off message is sent.
- Image With Composition :: This patch loads a Quartz Composer Composition (.qtz) file and renders it to an Image. (This is intended to replace functionality that was removed with the Mac OS X 10.4.7 update, as described by Roger Bolton and David Wolf.)
- File Type :: This patch provides the Uniform Type Identifier (UTI) of the specified file. For example, if the path to a QuickTime movie is specified, File Type outputs “com.apple.quicktime-movie”.
Please see kineme.net for Leopard-compatible patches.
Posted by smokris on 2006.09.19 @ 10:03
Posted by smokris on 2006.09.19 @ 09:33
Some further string-hunting in the Quartz Composer framework has revealed an interesting value:
It looks like Quartz Composer is reading a value with this key from the global user defaults repository.
In fact, enabling it by bringing up Terminal and typing
defaults write -g QCShowPrivatePatchSettings 1
causes Quartz Composer to present some additional options for well-known patches. [more...]
Posted by smokris on 2006.08.20 @ 16:45
I wrote a few new patches for Quartz Composer.
MIDI Global Output CC :: This patch, when triggered, outputs a MIDI Custom Controller message on a specified MIDI Channel to all MIDI outputs.
MIDI Global Input CC :: This patch observes a specified MIDI Custom Controller on a specified MIDI Channel, and outputs the Custom Controller Value and a Value-changed trigger. Unlike the “MIDI Controllers” patch that comes with Quartz Composer, this patch doesn’t require the user to manually select the “Observed MIDI Sources” individually for every controller/computer combination - so you’re free to take your composition to a different machine and/or controller and jam without needing to hack the composition.
String With File :: This patch reads a file into a string.
String With URL :: This patch retrieves a URL into a string.
Document Info :: This patch returns some information about the zeroth Cocoa NSDocument.
Please see the latest version.
Posted by smokris on 2006.08.09 @ 20:26
In a famous blogpost from summer 2005, ClockSkew poked around inside Quartz Composer and discovered some fairly-complete-looking patches that aren’t available through the interface. ClockSkew also made a cool patch plugin that made these available through the interface. Unfortunately this plugin was written when Intel Macs didn’t exist, and it isn’t a Universal Binary.
Having myself somewhat of an obscurity-obsession, I decided to investigate how ClockSkew did this, and insodoing discovered a few new hidden patches. [more...]