Timeline Development – 3rd August 2014

Screenshot-2014-08-03-12.13.08It’s been a while since my last update, though not from lack of action, rather I’ve been struggling with my latest project for a the past few months and I felt it’s time to pull back the curtain a bit and show what I’ve been working on.

My original design for the Timeline software was a nice open-ended sequencer that could manipulate all manner of types of data from single values (for MIDI or OSC control of parameters) to colours, audio, and even video, combined with a flexible (possibly too flexible) control over how each track played back with repeating sections and random markers, and all manner of tricks that I was getting really excited about using.

I’d spent almost a year working on it and had a pretty nice media playback engine, and everything seemed to be heading towards a 1.0 release back in June 2014 but then I hit a wall, which I have to say is pretty rare for me in my software development experience as I’ve always had a clear idea about what the role and function of each system I’m developing has been.

The problem was the growing complexity of visually managing the relationship between the different tracks of data and how these related to other applications and devices through the various input and output interfaces.  I was also toying with the idea of being able to apply real-time effects to video and audio (also data) and these did not comfortably fit into the design I had come up with.

I’ve also slowly been working on another application called PatchBox that uses a node based interface to visually build connections between blocks of functionality, so I took a deep breath and ripped the code apart and put in a new interface:

Screenshot-2014-06-25-21.49.30The node interface went some way towards solving the problem of presenting the relationship between tracks and devices, but there was a major problem, in that the core code for the node system (it’s actually the code that drives several of my art installations such as Shadows of Light) was rather incompatible with the core code of the Timeline application, and a hard decision had to be made:

  1. Release Timeline and PatchBox separately and fix the interface issue over time.
  2. Combine the two applications, which would require taking a massive step back equivalent to months of development time.

Not an easy one to make, compounded by the fact that as a freelance artist, until I get a product on sale, I’m basically paying for all the development time out of my own pocket so the latter option was not to be taken lightly.

After a couple of weeks of chin stroking, frantic diagrams scratched in notebooks, thinking about what configuration would be most commercially viable, and false starts, I came to a final thought:

“Make the tool that you need for your art”

It’s not that I don’t want it to be a useful tool that other people will want to use and buy at some point (that would be lovely) but I’m not a software design company, and this is primarily an “art platform” for my own work so I have to listen to what feels right to me.

So, I chose the latter (of course) and I’ve been working on it at least a few hours a day, pretty much every day for the past few months.  The screenshot at the top of this post is the latest showing a colour timeline track feeding into an OpenGL shader.

There is still much to be done and it’s pretty gruelling at times as I’m having to go over old ground repeatedly, but I feel like it’s heading in the right direction, and I’m already creating new artworks using it that wouldn’t have previously been possible.

Realistically a 1.0 release isn’t now going to happen until 2015, though with a long solo project like this it is easy to find yourself on the long slide into a quiet madness of complexity and introspection so I’m planning more regular updates to at least keep my progress in check by “real people”.  To this end, if you have any comments, questions, or general messages of encouragement, I’d be happy to hear them.



Timeline Update

Timeline.2014-02-17I managed to spend a few hours working on my OSC and MIDI sequencer project today and completely rewrote the audio side of it.

It now uses FFMPEG to load audio and PortAudio for playback.

I’m slowly developing the interface into something usable, though the design is pretty simplistic right now.

At some point I’ll get around to doing a release for Windows, OSX, and Linux – probably to coincide with the developing MIDI and OSC support in Painting With Light.

Window Capture Video Streaming


fugScreenCapture is a new utility that allows you to capture all or part the window of an application running on your computer, and send it as a video stream to other applications that support the bigfug video streaming system.

NOTE: fugScreenCapture is currently in development, which means:

  • It’s currently only available for Windows – OSX and Linux versions are planned
  • It uses only the most basic window capture method, so:
    • The speed of capture might not be that fast on your system
    • It might not be able to capture all windows

You can download a demo version to try the capture performance out on your system and see if it meets your requirements.

Download Demo

fugFeedbackGL 1.1 update


Laurent Smadja and Scott Baker informed me of a couple of problems with fugFeedbackGL, namely that alpha wasn’t working quite as expected, and that on some Apple computers, the resulting image was stretched incorrectly.

There is now an 1.1 update for fugFeedbackGL for both Windows and Apple OSX that fixes these issues.

Existing customers can download the update by visiting the My Account page.

Reorganising Websites

It’s been long overdue but I’m slowly getting around to reorganising my various websites to be more focussed on specific topics, so:

www.alexmayarts.co.uk – is now the web site for my art, talks, and workshops.

www.bigfug.com – will now be for my FreeFrame, video streaming, and other software tools

paintingwithlight.bigfug.com – is now pwl.bigfug.com and is the place for my video mapping software Painting With Light

mantis.bigfug.com – is the place to report bugs for any of my software projects

I’m moving these about at the moment so expect pages to come and go.

Eight Years of Video Streaming

Eight years ago I first had the idea for a real-time video streaming system that would enable me to take a live stream from within my VJ software of choice at the time – Visual Jockey – and send it, either locally to another application running on the same computer, or across a network to another application running on a different computer altogether.

The original idea was to externalise not just video, but audio, MIDI, and any other streams of data.  I came up with a piece of software called PatchBox, the idea of which being that it would operate like a patch bay, allowing data to be routed from multiple sources to multiple destinations with some allowance for processing along the way.

Patch Bay

My vision was to leverage the processing abilities of all software on all platforms for the purposes of real-time creativity and art.  Why have such limitations and incompatibilities?

Of course, from testing the initial release, I soon found that streaming live video in real-time was fraught with complications; requiring a fair amount of processing and a complicated arrangement of management of images – especially across a network – to maintain a consistent, high quality stream that would be usable.

Despite initial interest, it seemed too complicated a task to maintain, although I’ve tried several times since then.

The latest release of my real-time video streaming system is the fourth incarnation (that I can remember) and is finally able to be considered as usable.  It is also the first version that has fulfilled my original goal of running on both Windows and OSX.

This new initial release currently focuses on implementing sending and receiving plugins for the FreeFrame specification used now, as it was back then, as a standard for VJ software.

I hope to incorporate the system into more software over time, including my own video mapping software Painting With Light, further pushing ahead to my goal of incorporating real-time improvised video art performance with video mapping.