Midi files and gradual tempo changes (eg, ritardandi)

When exporting a Cubase file as a midi file, to be played on a Yamaha Disklavier, I discovered that Cubase’s “ramp” tempo changes – ritardandos and accelerandos – are not capable of being transmitted by midi file. I didn’t know that midi only carries “jump” tempo changes.

I came upon an older Cubase forum post (https://www.steinberg.net/forums/viewtopic.php?p=205577) that discussed the issue. The general consensus, back then, seemed to be that midi files could only handle tempo changes no smaller than that of a quarter note.

However, I’ve since found that if I fill in those ‘ramps’ with many small ‘jumps’ – jumps much smaller than even a 64th note - I am able to create the same effect as the original ramps, and the resulting midi files (both type “0” and non-type-“0”) preserve them.

I am doing this on Cubase 7.5 (I posted this here because I figure it would be of equal interest to any Cubase user).

Have others successfully used this workaround, when creating midi files?


What is your “resolution” (PPQ) settings? I can imagine, this could affects the result.

Thanks for bringing this up, Martin, because it may have bearing on an issue that I am currently having with this particular .mid file! Perhaps you can help? Here are the particulars:

As stated, I am using ‘jumps’ that are indeed of shorter duration than 64th notes (and my resolution is 480 ticks per quarter note, if that’s what you were asking).

So far, I have had no problem at all getting Cubase to play these, when playing from the original Cubase .cpr file.

However, I have had very sporadic results when importing the .mid file (ie, that I had exported from that original .cpr file): sometimes the mid file loads without any tempo changes (ie, just the default q=120); other times, it loads perfectly, and plays my detailed tempo track without fault.

I have to say that I’ve found the same thing to happen when importing .mid files that have far less tempo information – i.e, with tempo tracks that contain only jumps of a quarter note duration or greater.

Since I will be hiring a studio to render this .mid file onto a Disklavier, it’s important that I figure out the problem beforehand!

If you have any idea why this .mid file is behaving strangely, I would love to know!

Thanks, Martin!

Can you see any rules, when the export/import works, and when it doesn’t?

Do you think it’s on the export side or the import side? Can you see the Tempo events in the MIDI file written?

Thanks for getting back to me, Martin!

No, I can’t make out any pattern – sometimes it works, other times it doesn’t.

However, I can say this: the .mid file always plays all tempo changes when I play it on something like Windows Media Player or QuickTime – which must mean that the .mid file does contain my tempo track. I guess it also means that it is NOT an export problem (otherwise, it would not always play the tempo changes when played on WMP), and IS an import problem.

I don’t know where to find the tempo events in the .mid file – would they be shown in Cubase’s List Editor? If so, in what form?

Thanks for your interest, Martin!

Do you always create a new project? Or do you import the MIDI data to an existing (even empty) project?

I believe I always created a new project, but I could be wrong. I’ll try it again, and let you know. . .

Martin, you are a genius!! That was, indeed, the problem: I must have been importing the .mid file into an existing – tho’ completely empty – project some of the time! Right now, I made sure to allow Cubase to “create a new project” when importing the .mid file – and it was completely successful, every time!

So: is the idea that when we import a .mid file into an existing project – even if that project is completely empty – that project’s tempo track automatically replaces the tempo information contained within the imported .mid file?

If so, thank-you for teaching me this! (I wish such information were contained in the Operations Manual, or even online somewhere!)

Many thanks, Martin!!

Yes, this is the specified behavior in Cubase.

I wonder if you’re still around, Martin? My celebration didn’t last long :blush: : It turned out that I had to correct one note in the .mid file, so I went back to the .cpr file from which I had made that .mid file, and corrected the note. Of course, I then had to export it as a (now corrected) .mid file, which I tried to do (all settings as before); unfortunately, though, the export progress window stopped at the 50% point (the text in that window showing “SysEx”), and froze the program! I used Task Manager to end Cubase, and then re-booted my computer, and tried again: same result. I repeated everything yet again, but with the same result.

Any idea what might be happening to cause this?

Thanks, in advance!


I’m sorry, I have no idea. Do you have a lot of SysEx messages in the project? Did you wait for some time?

Hi, Martin;

The only detail – and I don’t know if it is SysEx data or not – is a a lot re. velocities and many tempo changes.
Yes, I waited for five minutes (!). Steinberg’s excellent tech person here (Lindsay Warner) is attempting to export a midi file from the same .cpr file on his own computer, so I guess I’ll soon learn whether it is the file, something I’ve done, or my Cubase !

Hi again, Martin;

Haven’t figured out why that file wouldn’t export, but I was able to recreate the Cubase file from which that midi file had originally been exported, and there was no problem then exporting that .mid again.

I can only guess that the file in question had become corrupted.

Thanks for all your help!

First of all, you may certainly have tempo events at finer resolutions than quarter notes - I do it all the time. Now, if you have tempo events between MIDI notes, you’re making the host work harder than it needs to, and could even be inviting inaccuracy in playback. So, the notion of a continuous “ramp” for a retard is not the best way to go, even if it looks correct.

The best place to check out what your tempo map looks like is the tempo editor. If you haven’t come across this editor yet, do check it out. It’s indispensable for doing any serious tempo manipulation work.

Thanks for this, dmbaer!

I created ramped tempo events (in the tempo track) even between midi notes, as a way of creating gradual tempo changes, such as ritardandi, accelerandi, and pauses. I had no problem with my computer, tho’; it turned out that the problems I did have – getting the imported .mid file to retain its tempo information – were the result of my own ignorance: I didn’t realize that one should create a new project for any imported midi file, otherwise the existing project’s own tempo track (usually the default q = 120) will over-ride the .mid file’s tempo information. Since Martin helped me with that important information, I’ve been able to import this tempo-laden .mid file with no problems at all.