Humanization function for the track tempo

I imagine that this questioning is already existing on this forum, but I ask again anyway.

Is it possible to develop a feature for the track tempo of Cubase which, according to certain criteria and predefined or user-definable parameters, would make it possible to humanize the development of a piece over time for a definitive or partial duration?

I know that we can do it manually using the Tempo Recording Panel of the tempo track by manipulating the slider provided for this purpose.

Wouldn’t it be nice to be able to establish the intricacies of tempo variations with the click of a button?

What do you think of such a possibility? Would it be useful or of no interest?

What I’ve done on occasion is create a Tempo Track with a Tempo Automation Point on every beat (or whatever) at the current Tempo. Then use the PLE to randomize their values by a small amount relative to their current value.


Thanks Raino for the tip. I never thought of doing this. PLE is not a tool that I use a lot, I will investigate this tool a bit more.

It would still be interesting to be able to extract the tempo of an audio track from a recording (orchestra or band) and simply insert this extraction into the tempo track in the form of MIDI data.

For now, I’m trying this stuff. Thanks again!


I’m doing it the exactly the same way @raino described.

1 Like

There is a Greg Ondo video out there on how to extract the tempo from a recording. I’d think it would work better to extract it into a new Project and then build on that rather than trying to extract the tempo into an existing Project.

I’ll watch about this Greg Ondo video. I will be able to see later which option is the most suitable to use according to the needs. Thanks @Raino for the possible solutions.

Exactly right! You can’t get a whole lot of benefit from just randomization, but small amounts can help. If more than that when using MIDI, you’ll start losing note-on events due to overlapping MIDI notes.

I have used Raino’s technique extensively, and it’s hard work, but it totally gets the job done. I start with quantized MIDI notes, often step entered, and manually construct a tempo track. In most measures, the downbeat is usually the longest (slowest), and the final beat is also very slightly slow. We’re not talking about a lot of tempo variation for most measures. I have used spacing as close as one tempo event per eighth note. Throw in a little note start and note length randomization, and your track will no longer sound like it’s being performed by a computer but by an actual musician.

1 Like

@Raino, would it be too much to ask you to share your PLE programming? Being a little lazy by nature, I admit that it would save me the headache of finding the right commands…

Normally I’m more than happy to share stuff like this. However when I looked at my PLE Presets it seems I never saved one to do this. And now I’m not sure how I did it. Below is one of the Factory Presets that comes with Cubase. It sets Tempo Events to half their current value by multiplying the current value by half in the Actions section. To do what we want you’d need to change the Operation from Multiply by to Set Relative Random Values Between like you can for Position. But Trim doesn’t have that, so I’m a bit puzzled by how I did it before.

OK, thanks!

I’ll see what I can do from this.

I’ve never been inclined to use this tool, probably because of the programming dimension, but maybe a lot of requests would be avoided if we had a better understanding of it.

I have noticed that there are many tutorials available on the net, so I will take the time to learn a little more about PLE and LE.

Thanks again @Raino.


A little late to the party. But I’ve been playing with this and i can get the PLE to move the tempo track points in random positions. Like shown above.

However, i can only move the tempo randomly from Left to Right (off beat). But it stays on the given tempo (in my case 120). I’d love to be able to also randomly add randomness in the actual tempo.

Instead of having every beat (or measure) to be 120 120 120 120, i need to have it like this 121 120 118 122, etc… (See screenshots)

Any way to do this ? It could be done manually but… well… quite time consuming, and to be able to randomly change data could help testing the best combination for a given track.



Yes, the PLE is possible:

( Media Type Is | Equal | Tempo | And
Container Type Is | Equal | Event)
Position | Set Relative Random Values Between | -100 | 100

But, this is not really the task. What we would need is:

( Media Type Is | Equal | Tempo | And
Container Type Is | Equal | Event)
Trim | Set Relative Random Values Between | 100 | 110 // BPM

To create several Tempo nodes is simple. Just use the Draw tool, disable Snap to Grid and draw as a curve with lots of nodes.


I stand by my request for a predefined feature with specific criteria related to this track; she would be welcome.

However for now, your suggestion of using the drawing tool without the grid is interesting if we combine this with some PLE presets to perform a form of compression on the nodes and eliminate unwanted values in order to avoid unnecessary deviations that may occur during handling is an alternative solution that could prove interesting.

Thanks for the idea!


What could also bring an interesting result is, if you use Ramp instead of Jump. Then the tempo doesn’t jump (every bar), but it’s rather like a short and small ritardandoand accelerando. What could feel more human.

1 Like

Hi Martin,
Thanks for jumping in. I see you’ve added “// BPM”. But i cannot seem to find where to insert this in the PLE…


This is not in the LPE. It’s behind the // marks, which is meant to be a comment in lots of programming languages. Just to let you know, what kind of values do I mean.

Ok, sorry. I thought it was an actual command to be inserted in the PLE.

I do hope this could be added in the future. PLE is such a formidable tool, but it could use a little 2.0 update. :wink:

Hi Martin,
I have only these commands for Trim. Will Set Relative Random Values be added in future?


I have the same on my side. That’s the reason, why I wrote, that we would need the Set Relative Random Values Between for the Trim action.

Sorry for my poor English language, my condition might be wrong in this case.


Is it still impossible to randomize the values of automation points in Cubase 13 ?