Content

tagged: code

developing

its a strange day when you look at what you and your lady are reading for fun… and find they’re both developers books. suffice to say, programming in objective-c isn’t quite as much fun as the developer’s bible, but then again when the summer has included bulgakov’s the master and margarita nothing can quite compare… satan kicking up a ruckus in atheist 1930’s moscow. with a talking, cigar smoking black cat. and historical passages involving pontius pilate.

diary | 25 jul 2006 | tagged: errata of life · code

sheep music » pun me this

the latest visuals technology development to come off the *spark anvil is a mac-native titler application, made by wrapping a quartz composer patch with some fullscreen code and interface builder bindings. props to roger bolton of quartonian for the guts of the fullscreen xcode project, shared under gpl so expect to see the titler soon once it’s been tidied up.

truly came into its own during the ups and downs of the first day of the festival, where a huge rainfall threatened to wash away half the site. we could upload videos and images taken moments before, and pun the titles out till they got beyond baaaaaaaad. ‘shave yourself’ still my favourite.

diary | 20 jul 2007 | tagged: quartz composer · titler · vj · sheep music · code · mac os

*spark titler redux and release

as shown in the ‘pun me this’ entry, the *spark titler was used in nascent form at sheep music, and the promise to tidy-up and release as open-source software has been followed through. so, please find attached: sparktitler-v1.1.zip.

the titler’s interface allows you to take between two sets of title/subtitle, with the choice of four backgrounds: black / green / a quicktime movie or a folder of images. the output window will automatically go full-screen on the second monitor if it detects one is available at launch, otherwise it will remain a resizable conventional window.

it is released with the intention that it can be reused for other events without changing a single line of code: you can design the animation and incorporate quicktime movies in the design by editing the ‘GFX’ macro in the quartz composer patch, and its a matter of drag and drop replace the logo in the interface.

for those who wish to dig deeper and improve the whole package, the source is released under GPL. the xcode project provides an adequate shell for the patch, implemented with just two cocoa classes and an nib file complete with bindings between the qc patch and the interface window. the classes are required to tell the quartz composer patch where to find the resource directory of the application’s bundle (neccessary for any ‘image with movie’ nodes), and to subclass the output window so it is sent borderless to the second display if appropriate. features apart, there is certainly room for improvement, a ‘open file’ dialog instead of the raw text fields would be good, likewise solving the text field update issue.

if you do use it, let us know: operator@tobyz.net

diary | 30 jul 2007 | tagged: titler · release · *spark · vj · code · mac os · quartz composer | downloads: sparktitler-v1.1.zip

SPK-StringToImageStructure

having worked through the hillegass cocoa book, its time to start putting that to good use. and project number one was always going to be one of the big glaring omissions in quartz composer to my mind: a means of animating a string on a per-character basis.

if you want to compete with after-effects, then you need to be able to produce the various type animations directors are used to, and you need to do so at a decent framerate. to animate say the entry of a character onto the screen, you would create the animation for one character and then iterate that operation along the string. the problem is, rendering each glyph inside the iterator is both massively expensive and massively redundant, but thats the only approach qc allows, hacks on the back of hacks apart. a much better approach would be to have a single patch that takes a string and produces a data glob of rendered characters and their sizing and spacing information, firing off just once at the beginning and feeding the result to the animation iterator: at which point you’re just moving sprites around and the gpu barely notices.

the patch is released under gplv3, and is attached below.

a massive shout to the kineme duo for leading the way with their custom plug-ins and general all-round heroic qualities. in particular their ‘structure tools’ patches were the enabler for those early text sequencing experiments.

diary | 15 feb 2008 | tagged: *spark · quartz composer · vj · code · mac os · release | downloads: SPK-StringToImageStructure-1.0.zip

qc model view controller

being able to code custom plug-ins is really making quartz composer so much better: not just giving the ability to make different types of ‘teh pretty’, but letting qc’s patching world do what its best at - fiddling with views - and leaving the coordination and control aspects to a dedicated lump of code, like a brain sitting in the middle of the patch.
long story short, this kinetxt installation is seeming like a case study in the object-orientated / model-view-controller way.

diary | 25 feb 2008 | tagged: *spark · quartz composer · vj · code · mac os

cocoa, mac minis and 50” plasmas

it might not be the most exciting photo, but this desk has seen three weeks coding a big project for a soho production house. “would you like to make something akin to “front row” to aggregate the content and services at this facility, to fit on all the 50” plasmas we’re about to get in the building?” “yes please.”

diary | 10 oct 2008 | tagged: code · mac os · quartz composer · mpc screen

mpc screen: tick

i’ve been somewhat remiss in not posting up the finished mpc screen, but thanks to a little cover work there i had the chance to go round and take some photos of it out in the wild. so here is the one i’ll always remember most as it was the first screen to be was deployed in the wild.

in its menu it has around thirty 1080P showreels and vfx breakdowns of the various film and commercial work, along with the ability to browse documentation pdfs and the mpc client and public facing web sites, and 15 channels of tv to flick between. for anything that isn’t suited to that branded, full screen environment, the last option flips the screen into a mac desktop with finder etc., complete with apple-store style desktop buttons giving quick access to all the apps that might be wanted in a meeting room. best of all, it will time out back to the full screen carousel menu, and then time out to its own screensaver, so as you walk around the building the screens always showing something visually pleasing and branded into the building.

its been quite a project, and that doesn’t even touch the system administration side.

diary | 21 mar 2009 | tagged: code · mac os · quartz composer · mpc screen

mpc screen: sofa edition

and here’s another, in a slightly less formal environment. suffice to say, the tv feature is used a lot more here!

diary | 21 mar 2009 | tagged: quartz composer · code · mac os · mpc screen

kinetxt handwriting dev

a little sneak peek of a quartz composer plug-in in development: spk-calligraphy, a set of patches for recording and playing back 2d strokes. the basic patch is equivalent to the kineme GL line structure patch, but draws the line as if it were a chisel nib at 45° and with a flow fade-out. the other two are what is going to enable a big part of the next kinetxt development: handwriting to go alongside the rendered text.

diary | 27 mar 2009 | tagged: *spark · quartz composer · live illustration · vj · code · mac os · kinetxt

SPK-Calligraphy v1.0

KineTXT has spurred many custom plug-ins, generally either esoteric or usurped by kineme or the next major release of QC. the latest however probably deserves to see the wider light of day, and so here is a snap-shot of it having just passed a notional ‘v1.0’. its two patches designed to capture and render handwriting and doodles from a tablet, but they should be pretty useful to anyone who wishes for some form of digital graffiti in their QC compositions.

if you want anti-aliasing, you’ll need to leave the QC app behind unfortunately, but if you can run without the patching editor window its just three lines of code to add to the qc player sample application and voila: this plugin and all 3D geometry become anti-aliased. vade worked it all out and outlines the territory here: http://abstrakt.vade.info/?p=186.

if you want different nibs, pen-on-paper-like textures or suchlike… well i have my needs and ideas, but the source is there. share and share alike!

the plug-in is released under gplv3, and is attached below.

diary | 28 apr 2009 | tagged: *spark · quartz composer · mac os · vj · code · release | downloads: SPK-Calligraphy-v1.0.zip

SPK-Calligraphy v1.1

…and here is the bugfix release.

  • fixed purge last object exception
  • removed unused boilerplate methods
  • added zPos to animator
  • ordered ports (arrange in @dynamic line)
  • fixed x,y mis-patch in sample qtz file

diary | 07 may 2009 | tagged: *spark · quartz composer · live illustration · vj · code · mac os · release | downloads: SPK-Calligraphy-v1.1.zip

SPK-Calligraphy v1.2

…and now having used it in anger, here we have

  • Added bounds feature, to give you all the sizing information you need to block out your calligraphy renderers.
  • Fixed a crashing bug triggered by sending a clear all lines signal mid-stroke
  • Added an advanced example derived from KineTXT development. Use space to send chunks of calligraphy to the screen, as if you were writing on a horizontal scroll.

diary | 11 may 2009 | tagged: quartz composer · live illustration · vj · code · mac os · kinetxt · release | downloads: SPK-Calligraphy-v1.2.zip

moving brands » -------------

and if chase & status wasn’t enough to be getting on with, there was also a long awaited project with moving brands, of which neither i nor they can talk about beyond saying i sat behind a mac and xcode for a week.

diary | 22 sep 2009 | tagged: vj · code · mac os · moving brands

vbfest » here+now final compile

tresor backstage, 1am, get to the final compile of here+now for the 3am performance. there is never enough time in this world, and for experimental projects on the side doubly so. the dream of just hanging out at a festival…

diary | 11 jun 2010 | tagged: *spark · quartz composer · vj · code · mac os · video-in · visual berlin · herenow

audience—screens

there is a big d-fuse production in the works, where the brief rather wonderfully was emphasising interaction with and within the audience. as briefs often do, things have changed a lot since the heady time of working on and winning the pitch, but the core of it is still generative graphics and punter control from the club floor. and so here, courtesy of dr.mo’s crack team of coders is an in-development iPad app talking over WiFi to a QC plugin, where my two fingers-as-proxies-for-collaborating-audience-members are sketching locally and that is being incorporated on the club’s screens.

diary | 06 oct 2010 | tagged: quartz composer · liveness · dfuse · vj · code · ios · mac os · engaging audiences

SPK-LEDBall

happiness is twelve hex bytes, generated by a pocketable custom LED fixture on detecting a bounce, transmitting that via xBee, receiving into the computer via RS232, being parsed correctly, outputting into a QC comp, doing a dance, and commanding back to the fixtures via Artnet via DMX via xBee.

diary | 16 oct 2010 | tagged: quartz composer · vj · code · mac os · i/o · dfuse · embedded

DFD [d-fuse/dynamic]

there is now a mac pro in china running DFD, something that has been consuming my time for a while now. the roadshow d-fuse have been developing is our first big foray into automated dynamic content, lighting and audience interaction, and so without us being there for every gig holding it down with a hacked-up vj setup we needed something that you could just power on and the show would start. and so d-fuse/dynamic was hatched, a quicktime and quartz composer sequencer which reads in presets and its input/output functionality from a folder we can remotely update, and essentially just presents a “next” button to the on-site crew.

what i think is particularly novel about DFD is it was designed to output a consistent framerate, rendering slightly ahead of time so the fluctuations in QC and QT frame rendering are buffered out. i’m not sure is the effort/reward of this was worth it, but it will be an interesting code base to come back to and re-evaluate.

for the roadshow, it is playing out any number of four sources at 1280x576, including the generative, controlled by iPads in the audience and LED balls on stage, audio-reactive core of the show, sending the central 1024x576 to the main screen, driving 10 LED 72x1px strips from the remaining 576x128px on either side, and sending DMX back out to the stage lighting and LED balls.

big thanks to vade, luma beamerz, and memo for helping me one way or the other grok anti-aliased framebuffer rendering.

having spent much time i didn’t have trying to get 64bit QTX giving me openGL frames at QuickTime 7 efficiencies, life saving thanks also to vade and tom for v002 movie player 2.0, for which there is patch back with them giving it the ability to play the QT audio to a specific output.

lastly, a perennial thanks to kineme, couldn’t have gone this direction without knowing their DMX, Axis Camera, and audio patches were out there.

i’m not sure what to do with the code at the moment. it was made as a generic platform, but its current state is still very much tied to that specific project. or rather, the inevitable last minute hacking as it hit china needs to be straightened out. it has been made and funded as a tool for d-fuse to build on, so that needs to be taken into account too. in short, if anybody has a concrete need for such a thing, get in touch and we’ll see what could be done.

diary | 27 oct 2010 | tagged: quartz composer · vj · video-out · code · mac os · dfuse

*spark titler v2

and how did those live graphics make it to the screen? i sat down and took the idea of *spark titler from sheep music and remade it as a fully fledged cocoa+quartz composer application. the idea being it can’t muck up: animation designed to gracefully transfer from state to state, participant names pre-filled in a drop-down menu, no mouse cursors on the output, text fields that commit their edits on pressing take… the little details that make-or-break a live application. oh - and it exports its title animations as quicktimes for integration with playback pro.

diary | 04 sep 2011 | tagged: code · mac os · video-out · quartz composer · titler · *spark · just tell the truth · vj

*spark titler v3: live brand video [in]

how did joanna run the screen? with *spark titler v3: no longer a now-and-next titler, more the means for a live brand video. into an animation template go tweets, titles and all sorts of media, and the user is presented with a sane way of wrangling that media and controlling the output.

the app as a whole is mac-native in the best of ways, with the behaviours a naive user might expect. i’m especially proud of the interface, which takes the standard elements and extends them where necessary[1], all to be used without fear of killing the output or screwing up the content.


  1. suffice to say i now know a lot more about subclassing cocoa views than i used to: say hello SPKTableView and SPKArrayController ↩︎

diary | 14 oct 2011 | tagged: code · mac os · quartz composer · titler · *spark · vj · MADE-BY

*spark titler v3: live brand video [out]

sane control of the media and scenography needs to be partnered with the animation mechanics to handle it all gracefully. luckily, thats what i do – and what tools like quartz composer enable – and i had the best materials to work with in the form of made-by’s brand video. it’s great. watch it, and you’ll also see how perfect it was to be remade into a never-ending animation with dynamic content interspersed with the hand-animated elements.

best of all, now i have the interface and back-end largely worked out i can concentrate on creating bespoke animation for future gigs: everybody wins.

diary | 14 oct 2011 | tagged: code · mac os · quartz composer · titler · *spark · vj · MADE-BY

1

2

3

4