Development Update, November 2019

Many people have asked about an update to the post from June 2018. I’m sorry things have been so quiet here regarding development, but be assured that plenty has been going on, at least from a programming perspective.

Development was definitely impacted by Paul’s move to near Santa Fe, New Mexico, but now that is largely done and settling in there is well underway, he is now back in action. Here’s a photo of the current state of the new Ardour HQ, in Galisteo, NM (soon to be radically different due to a new self-built desk/console).

Robin, as usual, has been insanely active working on an almost countless series of features and bug fixes. This summer, he redesigned our processing code to use lock-free queues, an important improvement for our realtime code. In the recent past, he added progress notification for Lua scripts execution and introduced support for new LV2 extensions (backgroundColor, foregroundColor, and scaleFactor) that allow a host to inform plugins on host color theme and UI scale factor to play better with non-default themes and on HiDPI displays. Most recently, Robin has also been nerd-sniped into a very full virtual MIDI keyboard implementation that can be used to deliver complex MIDI to any part of Ardour (it shows up as a port just like a hardware device would, and you can connect it just like a hardware device).

Harrison Consoles sponsored the development of a new plugin manager that provides easy access to favorite plugins and favorite presets. They also collected many more MIDNAM files (used to describe various MIDI equipment and their programs) and tagged hundreds of plugins with semantic information. Ben Loftis at Harrison also made some useful changes to the information presented in the Source list (with more planned for the future).

Since the last update, there have been several significant development branches undertaken. The first two don’t have much impact for users in terms of visible functionality, but make ongoing development easier. The first added a formal design known as a “Finite State Machine” to help manage transport state. Before this, it was more or less impossible to explain or logically reason about the state of the transport (start, stop, locate etc.) We now have a much cleaner implementation here that allows us to think more clearly about how this all works (and it is a lot more complex than you would imagine!).

The second development branch to be worked on was a similar “logic cleanup” of the entire startup process. This too was a huge mess at the code level before, and it was extremely hard to reason about where things happened and why. If you wanted to change them, even in a small way, it was a very daunting task. Even fixing a bug such as “why doesn’t the window close button work with this dialog?” was a deep headscratcher. Although the startup process should be identical to the way it has been for 4.x and 5.x, internally it’s now much cleaner and more understandable, again making future changes easier.

Another branch changed the way that Ardour handles timecode (MTC, LTC etc). This is now done by dedicated objects that run all the time during the life of the program (they can be disabled, of course). This means that you can see the current time data being delivered by an MTC or LTC source at all times, regardless of whether you are actually using it. There’s a much more powerful GUI for presenting this data and choosing (and naming) timecode sources. You can also have multiple timecode sources of the same type - not particular useful for a typical home studio setup, but if you’re working with lots of video gear, quite handy.

Finally, the most recent development has been to completely change how we handle managing MIDI data for playback. We have eventually concluded that although theoretically MIDI data could be as large as audio data, in practice it is never even close in size. Since MIDI was first added, we have used the same design as for audio to move data from disk into a track or bus and then on out of the program (when appropriate). This has turned out to be overly complex and unnecessary. We do still have a data structure model for MIDI that is designed specifically for editing. But for playback, we now “render” a MIDI track into a very simple form whenever it is changed, and use this in-memory representation directly. Although it was not the original intent, this should help various MIDI related issues, because the entire playlist for the track is rendered at once, using a single starting point (zero). We are hopeful it will fix some problems with missing and stuck notes.

Len Ovens has been doing some cool work on “foldback busses”. Foldback is a slightly obscure term for what is more typically called “monitor mixes” - sending performers in-ear or on-stage submixes for them to listen to while performing. You’ll be able to do very sophisticated monitor mix configurations in 6.0.

What You’ve Really Been Waiting For

The big news, however, is that we are now getting very close to an alpha state. There are a few architectural issues still to solve, but we don’t plan to do any more feature development before 6.0.

We expect there to be many, many subtle bugs because of all the changes we’ve made to basic architecture over the last 2 years and more. We will be asking for as much help as possible (though not too much - this is still a very small development group!) to discover, analyze and resolve these bugs. Obviously we test along the way, but our testing is guaranteed not to have the wide coverage that our user community can provide.

If things go well with the remaining architectural issues, we might get to an alpha version within a couple of weeks. From there, it’s hard to say how long until the actual release of 6.0 - that will depend on the magnitude and scope of the bugs discovered during testing. But we are modestly optimistic that at least a beta version of 6.0 might appear before the end of this year.


Acoustic treatment needed…

/me twitches


Adobe, dude ! This not some wood-frame/drywall house. The acoustic properties are totally different. But yes … eventually :slight_smile:

1 Like

Oh I know, remember I spent 5 years out there in Santa Fe:) Stayed in lots of those houses. But yes still needed.

1 Like

Thanks Paul for the update, glad to hear that we getting close a alpha release and see everything you’ve been working on so hard :slight_smile:

Really appreciate all the hard work and innovation that have happened so far and that which is yet to come. Hey, and that’s a nice-looking control surface sitting in front of your two monitors; I don’t recognize it, which one is that?


That is the Mackie Control Universal Pro.

That’s a Mackie MCU Pro. I should mention that I have it courtesy of Harrison Consoles, who purchased it to help facilitate and improve our Mackie Control Protocol support.

1 Like

So Paul you know now I am going to ask for pics of your new console when you have it built as well, I am starting to keep in the back of my head that I need to build a new desk after my last one met an unfortunate end in the move.


Haha, it troubles me that it looked unfamilar because I have come close to buying one several times over the last few years! How soon we forget…

Not sure I would recommend buying one these days honestly, for the price I am not convinced that you couldn’t find a better value.


/me glances over at his MCU Pro gathering dust

Great news! Looking forward to help testing during the alpha phase.

@paul: I’ve never seen those Genelecs. Is this an older model?

You got our support for this project and for the rest of the Ardour Team!

1 Like

Yes, the Genelecs are 1029A’s, from some time back. I picked them up on ebay when we moved here. Added a new 7050C subwoofer which while not perfectly paired with the 1029As (it’s made for the current generation), works quite nicely.

Looking forward to testing the Alpha. Thanks for all of your hard work!

Great to hear about the current status and I am really, really, really looking forward to test the alpha/beta versions. Thanks for all the hard and great work you do and I really appreciate the architectural changes. I am sure this will be a great investment in future features and avoiding a lot of nasty bugs.

Great news!
About debugging the 6.0 alpha version: can this be installed in parallel to the working 5.12?


1 Like

you can have multiple versions of ardour (at least when using the Linux bundle run editions available from the ardour site), as they would each have their separate path installations… Here I’ve dabbled with parallel prealpha release installs along-side Ardour-5.12.0 but they’re not user-ready for feedback just yet…

1 Like

Great update Paul. Sounds like freaking AMAZING work your team has been doing! Since last May, I am no longer working in the broadcasting profession (by choice), but still doing AV work on the side using HMB for audio mixing and BMD DaVinci Resolve for video editing. It’s a nice combo! Blackmagic Designs should really integrate your project into theirs. Would be a nice fit!

On a side note, I am sure you are gonna love NM, and miss PA as well. The land of Yuengling and The Commodore Amiga. I have family there, been up there more times than I can count. I hope to move to Arizona soon. We’ll see. :slight_smile:

1 Like