It's about time. Duration does what Creative Coding environments have, previously, required you to build yourself. Image courtesy the developers.

It’s about time. Duration does what Creative Coding environments have, previously, required you to build yourself. Image courtesy the developers.

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-logo

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

Here’s a video of Duration integrated into a beautiful multi-sensory system called Blaus, created by Playmodes and Alex Posada:

(jump to 2:22 to see Duration + Output)

Super-Adaptability

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!

  • http://www.kasperkamperman.com/ Kasper Kamperman

    Duration seems really cool. I while ago I came across another tool that has the same concept , called OSCseq: http://oscseq.com/manual/

    Seems to be from the same guy that is involved in the software for the FeedMe show: http://arttech.nl/project.html?project=17

    • http://twitter.com/momothemonster Momo the Monster

      Nice find, Kasper! I especially love the ‘Playback Anticipation Time’ feature described in OSCseq.

  • Kassen

    “Yet time itself
    is oddly absent in any useful way from many creative coding
    environments.” It is there in each and every one I know, in some it is even fundamentally impossible to make a sound without referencing time (ChucK, for example). There were also CSound environments with timelines at least a decade back. I’m sure this is a cool system, but I can’t agree with these claims.

    • http://pkirn.com/ Peter Kirn

      There is some reference to time, of course. But scheduling of the sort that performers might want generally means constructing something from those building blocks. ChucK is an outside case. Csound deserves special mention for having the Score as an integral element. (And I said “many,” not “most.”) But time is more primitive in other popular environments – the most popular being, in my mind, Max, Pd, Processing, Quartz Composer, SuperCollider, and – clearly in need of something, or this wouldn’t have had appeal – OpenFrameworks.

    • Kassen

      Hmmm, for your claim here to be true I think it should be impossible to implement the functionality of “Period” in those systems. I think the reverse is true; that that would be quite do-able. I know I could in Fluxus. Another interesting counter-example is Flash, which also combines a timeline with creative code. Mind you; I think this looks very nice and useful for a hybrid workflow. I just disagree with your claim that the issue of time is underdeveloped elsewhere; a lot of really good work was done on the topic and continues to be done. For example Andrew Sorensen’s work on “temporal recursion”, which follows more or less on the non-realtime implementation of the same idea in ACToolbox which in turn seems to borrow from CSound’s score-parsing ideas. You could also look at Nick Collins’s work on analyzing Breakbeats, then procedurally restructuring those in SC. Fluxa’s “(seq )”, while not on its own “advanced” does invite and facilitate arbitrarily complex statements on the topic. The list goes on. I don’t think you can say Duration is more advanced than that kind of thing, though clearly it is a nice new look at the topic.

  • marccanter

    Congrats to you dude – and to the entire Duration community. This is exactly the tool we imagined – back in the 80′s – when we developed VideoWorks->which evolved into Director. We also had a Three-D timeline and an “easy to use” timeline – as well.

    Sencha is a “nice” HTML5/CSS timeline – but I bet you folks could add animation and effects channels – and rock the house. Maybe a Ruby Framework around creating APIs?

  • http://twitter.com/_vade vade

    No mention of Iannix at all here? Shame.

    http://www.iannix.org/en/index.php

    • http://twitter.com/momothemonster Momo the Monster

      Iannix looks very cool! Do you have experience with it that you could share?

    • http://twitter.com/_vade vade

      hey Momo, sorry I just noticed this. Not a lot of experience – ive toyed with it, but it seemed really robust, modular and had some really interesting features. Ive not used it with any “production” though, to be fair.

    • http://twitter.com/momothemonster Momo the Monster

      Sorry for the double-post – I tried to delete one and instead it just turned into a ‘Guest’. By ‘production’ I just meant anything you worked on that we could check out. It sounds like Peter is going to cover it sometime soon, I’m sure he’d love your input! Cheers.

    • http://www.facebook.com/VMNexus Chris Patrick

      I like that it is super easy to script it using javascript… there are some quirks to the interface that make it annoying at times though, like how the saving and loading of scenes (or whatever they call them). It does include syphon output integration though, so you can use the controls as a layer of content if you want… mainly a novelty in my experience so far.

    • http://twitter.com/abadona Igor Molochevski

      Vade my sentiment exactly!

  • hc gilje

    there is also i-score, “an intermedia sequencer for the precise and flexible scripting of interactive scenarios.”

    http://i-score.org/

  • http://twitter.com/kotakmakan Adityo Pratomo

    I recently did light sequencing for an installation with another artist, where we want to sync light with audio and video. I realized that i had several options for this, including DMX, before Indiscovered that I can go with ofxTimeline and Arduino for a more cost efficient setup. Gotta say I’m very impressed with ofxTimeline and I should try Duration.

    Curiously though, ofxTimeline didn’t work (in my experience) didn’t work out with a 1080p and 720p video. Hope this is fine with Duration now.

  • http://twitter.com/abadona Igor Molochevski

    I had used it on many different occasions, as a nerve center of the installation, to be exact and for parallel computing of the components