Performance, and performative arts, are about time. Yet time itself is oddly absent in any useful way from many creative coding environments. Most of the tools for dealing with time and scheduling cover only the basics, and most of the examples tend to adopt an everything-at-once sort of attitude, stymying the efforts of people working with them live. Duration, then, is a breath of fresh air. Momo the Monster (seen last week running shows for deadmau5) returns to CDMotion for an in-depth look at what it does – and some practical, hands-on experience on what it’s meant to him personally as a creative coder.
Duration is an open source project from Creative Coding Pioneer James George (aka obviousjim) that offers a smart solution for changing values over time, and interfacing with any OSC-enabled application. Co-Developed by YCAM Interlab.
The timeline concept has long been a staple of visual exhibition, and the advent of “VJ Software” enabled us to break away from the timeline and control our visuals with the here-and-now immediacy of button pushes, knob twiddles and arm-waving.
Having the ability to trigger keyframed, sequenced actions within a realtime performance opens many avenues, and is lacking from many programs built towards visual performance. Duration could be just the app for that.
Open Source. Cross-Platform. Lives and Breathes OSC.
It’s built with openFrameworks, using a bevy of community addons, especially ofxTimeline, which was also developed by James. The complete source is available via GitHub, so you can make your own tweaks and send them up the chain if you think they’d be useful to others. Here’s a version I’m working on with a special ‘Notes’ track and some preliminary looping features:
I originally came across ofxTimeline when looking at ways to advance the Music Abstraction system I wrote about here on CDM in 2011: Music Abstraction for AV Collaboration. Drums can be described with Bangs, Lyrics with Flags, Pads and FX with Keyframes, and if there is a musical aspect which does not have an existing track, I can create a new type that works for me (as I did with ofxTLNotes).
Duration in Action
(jump to 2:22 to see Duration + Output)
Finally, the way Duration is build is so…freaking…modular. As a programmer, I love the beauty in it. All the tracks can output their data over OSC, and the program itself can be completely controlled over OSC, including creating projects, adding tracks, manipulating the playhead and much more. So you can use it directly or program your own layer on top to work just the way you like, while it happily records and repeats data to your heart’s content.
Others out there working with Duration – or got questions for us? Let us know!