eoPHKUJ

Fugio Friday: MIDI Timeline

Happy Fugio Friday!

This week we have a new binary release (2.10.0) that features a new work in progress node called MIDI Timeline.

You can now import .mid files straight into Fugio (via the File Menu) and it will create nodes for each track.  Feed these to a MIDI output and you can start playing about with it.

There’s currently no editing facility, and it can’t record, but it’s a step in the right direction.

Check out the ‘Magical Midi’ example, which comes from one of my favourite arcade games.

Other than that, I’ve tested compiling Fugio on Debian Linux 8 and got it working, and there’s a bunch of fixes of improvements that you can read about in the list below.

I’m now supported both the GUI installer and Homebrew/Cask installers on macOS/OS X so here’s the installer links:

Download Fugio 2.10.0 for Windows (7, 8, 8.1, 10)

Download Fugio 2.10.0 for macOS/OS X (Mavericks 10.9+)

Have a good weekend and see you next week!

NEW

  • Tested compilation on Debian 8
  • Group position and zoom is now saved (also between editing sessions)
  • Added “Import…” entry to file menu
  • MidiTimelineNode supports loading .mid files (via Import) into the editor (no editing yet!)
  • Added Timeline includes

UPDATED

  • More error reporting in FFMPEG
  • Added reset pin to BackgroundSubtractionNode
  • Spanish translation updated
  • GL_PRIMITIVE_RESTART_FIXED_INDEX flag added to OpenGL state
  • Oculus Rift won’t cause the API to open the desktop app until the node is added

FIXED

  • Wasn’t seperating audio and video frames in MediaSegment
  • TextureToImageNode wasn’t using the right image format
  • LuaImage wasn’t using the right image format either
  • Crash during group delete
  • Group breadcrumb trail fixed when deleting groups
  • Adding pins to groups wasn’t immediately shown in editor
  • VST3Node can now handle creating any number of pins
  • Timeline editing fixes

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.