Tempo based time for MIDI regions

Hi all; I’ve recently done a lot of work on MIDI support (and many other things) in 3.0, and thought it might be time for an update.

One often requested thing that’s been missing in 3.0 is flexible tempo-based time for MIDI regions. Until recently, MIDI (like everything else in Ardour) was based on audio time. This has been reworked so the time of MIDI events is stored in tempo units everywhere, which is much nicer for working ‘musically’.

As usual, a picture is worth a thousand words (see attached image or this copy). Notice the MIDI region(s) on the left and the MIDI region(s) on the right are copies of the same region. When you drag a MIDI region from one tempo zone to another, it is (conceptually, not destructively) ‘stretched’ to match the new tempo. Currently tempo changes part-way through a region are not supported, but that’s coming soon…

Aside from a metric ton of bugfixes and overhauls too long to mention here, another key piece of functionality recently fixed is MIDI control/learn/feedback, which is now working well.

The more adventurous of you might want to give 3.0 another shot now. Note that session compatibility is not set in stone right now, but testing would be much appreciated - filed bugs even more appreciated - and filed bugs with attached bounties the most appreciated of all :slight_smile:



Well, thank you for answers, I don’t think I’m able to compile by myself…

So I’ll wait !

Thank again for your work


From my personal experience, it’s really not all that difficult to compile ardour. Scons is one of the best build systems going, and ardour is one of the smoothest programs I’ve compiled…

Then again, I’m here on Linux, so most of the required tools come pre-installed. If you’re using OSX it’ll take longer and you’ll possibly get stuck if one of the libraries won’t compile for whatever reason…

Still, I think you should try it, make sure you download anything you need, like scons for instance, and any external libraries. Remember you can type scons --help for info about compiling options.

As long as you try with the expectation that you probably won’t be able to do it, but don’t give up too easily, you’re covered… Come on, there’s a first time for everything… :stuck_out_tongue: I remember when I tried to compile a program for the first time - of course, it never even made it through the build configuration step, but I’m all the wiser for it. I’ve come a long way since then. I started a job doing programming this month, funny old world eh?.. :stuck_out_tongue:

Admittedly, it’s more towards the web-design front, (aka, mainly interpreted languages rather than compiled)… But you gotta start somewhere, and web-based technologies are the future…

Just try it… :stuck_out_tongue:

“Wisdom is what’s left after we’ve run out of personal opinions.”

  • Cullen Hightower

That’s very good news! But just one question - will the previous audio-based method of storing MIDI times remain? I mean, will there be a switch? You know, like in Cubase, there is a button that looks like a watch, that means that everything on this track is linked to the time and you can freely change tempo without affecting anything on this track. Then if you push this button, it looks like musical note, that means that everything is linked to musical time and if you change the tempo, notes are stretched (and audio clip onsets are moved, but audio not stretched, yuck). Sometimes this becomes a very crucial feature, I hope to see it in Ardour also.


Actually, MIDI time was never really entirely audio time based, it was sort of an amalgamation of the two (I admit it was not a very sensible design, it just evolved as an artifact of adding MIDI to an extremely audio centric program, and some characteristics of the standard MIDI file format).

We do plan on having such a mode though, both for region positions (which is kind of there but not quite in this form) and region contents. The implications of such a feature on audio tracks are interesting…


I read with many interest about MIDI in Ardour !

At this time, I’m just occasional user, at home, and have plan to donate after the first song made with Ardour. But this very first song is delayed because MIDI tracks are hard to realise, especially drum tracks, and of course it’s the first ones…

I like to test Ardour and MIDI, but don’t know how to. Is it only for developpers ? As an user, is it possible to help ? (I means : testing functions, compatibilities, routines, anything somebody like me with his 20 years of work in sound can do)

Thank you for answers.


To test the MIDI stuff you need to use the 3.0 branch, which you can get from SVN. See this page:


To clarify Dave’s comment: we do not offer prebuilt versions of Ardour 3.0. People who wish to test it are required to build it themselves, and must do so using our source code repository. We do this because 3.0 changes many, many times per week, sometimes even per day, and we want testers to be able to rapidly update their source code and rebuild as improvements and fixes are added.

All I can say, at this point is you rock!!!..

As mentioned elsewhere, I will test the bugfixes I had bounties on and pay up when succesful… this will probably be in a couple of days.

Will try and do some more adventurous testing of 3.0 MIDI functionality some time late next week or weekend.

Thanks a lot for your job! I want to usee 3.0.
Cheers, Carla Fertzez