Imported MIDI tempo maps "jump" instead of "ramp" - why?

Ok, somewhat long-winded but simple question. Hopefully someone can school me… want to know the technical reason behind the following:

I’ve been experimenting with importing/exporting tempo data via .mid files - both in and out of Cubase (and into Ableton, which has no other way of importing a tempo track). Typically, I’ll create my detailed tempo map in Cubase (on its wonderfully full-featured tempo track) and then export a song-length MIDI file for import into another program (e.g. Ableton).

I’ve noticed that when I then import this MIDI file into another program (or even back into Cubase), the tempo changes I’ve made are mostly preserved. BUT… wherever I’ve previously ramped a tempo smoothly up or down between two tempo points (e.g. as a straight diagonal line), the imported tempo map instead now shows a series of 1/4 note jumps (that is, the tempo line “jumps” every quarter note, like a staircase or sawtooth).

[I know Cubase has it’s own Import/Export Tempo Map function which preserves tempo ramps. But that functionality isn’t available for importing tempo into non-Steinberg programs.]

So I’m wondering: Is this “one-tempo-ramp-turns-into-multiple-tempo-jumps” behavior a limitation of the original MIDI spec (with respect to how .mid files store tempo data)? If so, is there any way to improve the resolution (jumps every 1/8 note for example)? Or am I stuck with all my smooth tempo ramps turning into jagged 1/4 note jumps whenever I import a MIDI project into a non-Steinberg program (like Ableton)?

Couldn’t find an answer to this with my Google Fu… thanks!


No. Original MIDI spec has no such thing as “tempo”

(with respect to how .mid files store tempo data)?

BINGO! MIDI file (.mid) is a collection of discrete events. One of those is “Set tempo” (ms/quarter note). So no ramps, but steps.

is there any way to improve the resolution (jumps every 1/8 note for example)?

Sorry … have no idea.

Thanks Jarno. I think I get it now. Just spent some time reading the original MIDI file format specs here…

So, since that SET TEMPO data point always happens every 1/4 note, I’m guessing there is no way (via a standard MIDI file) to increase the resolution of tempo data to 1/8th notes (or better). Oh well. It’ll have to do.

Which makes we wonder - is there any better, more precise way AT ALL to transfer tempo maps cross-platform (between Cubase and Ableton; Cubase and Pro Tools; etc)? Or is this all we’ve got?

Quarter-note resolution seems pretty darn imprecise for 2013 tech, even when transferring across different DAWs.

Thing is tempo is only really defined on discrete moments, you can’t make that scale continuous. And tempo changes only really make sense on quarter notes anyway, unless it’s for ramps as you say.

Interesting stuff Strophoid. I’ll try to wrap my head around it, especially the idea that tempo events make the most sense when coded to happen every 1/4 note.

And yes, I am mostly focused on what my up/down tempo ramps (accels/ritards) will sound like when converted from Cubase’s nicely smooth ramps to those “ugly” every-quarter-note staircase jumps. I’ll find out soon enough as I get further along with my current project… maybe it’s not even perceptible to most ears.

In any case, I’d be curious to know if Cubase is really processing its smooth onscreen tempo ramps as true linear tempo changes, or if “under the hood” Cubase is also converting its nice diagonal lines into some sort of staircase of jumps (albeit at a higher resolution, say 32nd notes?). I know it’s all digital anyway, so at some point it must become a kind of staircase - but what’s the true resolution difference between the old-style MIDI tempo way of doing things and Cubase’s proprietary internal tempo maps? Not going to make much difference to my workflow, but I do wonder about these things while puttering around with this stuff.

Also! Still wondering how other DAWs handle import/export of project tempo data, cross-platform (that is, in and out of another DAW). A quick Web search tells me that Pro Tools, Studio One, Logic, etc. are also stuck with using standard format MIDI files for this purpose. This month marks the 30th anniversary of MIDI, and it seems like there would be a better way to do this by now!