I'd love to have the input of the Quartz Composer development
community on how it's been implemented, to see if there might be
improvements before I put this thing out.
Here are some details of how I put it together [with questions in
brackets]:
* A/B bus: I created a 2-channel mixer; to access each bus, you
alternate keyboard input using caps lock keys (lowercase is bus A,
uppercase is bus B)
* Mapping keys & automatically importing clips: I used the Folder
Images / Structure Index Member / Structure Key Member trick, so
you need a folder full of movies with JPG extension in a folder
called /Vid. [Q: I map keys to numbers using JavaScript -- curious
if there's a better way?]
* A/B dissolve: I mapped the mouse Y-axis to the cross-fader,
though it could be easily mapped to a MIDI input if need be. [Q:
Any way to use the scroll ball; e.g., on a Mighty Mouse?]
* Speed / scratching: I mapped speeds to keyboard shortcuts, and
"scratch" by mapping mouse X-axis to frame (again, makes sense for
reassignment to MIDI, etc.)
* FX "bus": (may clean up the patch so even this is encapsulated in
the Hierarchy) For the heck of it, I added some demo effects,
selected by the keyboard via a Multiplexer -- particle effect, Edge
Work, Bloom, and Rotating Cube [Q: Any input on this, making this
more flexible?]
Some comments:
* Folder Images path in File Selection A/B should be made an input of
the parent macro so that it's easy to find - unless you intend to
remove File Selection A / B from the final composition
* you should "type" your splitters (Settings pane in the Inspector)
to what they're supposed to receive. This prevents users to connect
wrong stuff and also allows in-place editing of values on the input
port of the splitter
* it's better to avoid JavaScript just to do a "outputs[0] = inputs
[0] + 1" and use a Math patch instead