streaming mode | Rhythm category


  • beats (vector_real) - list of detected beat ticks [s]


  • rubatoStart (vector_real) - list of timestamps where the start of a rubato region was detected [s]

  • rubatoStop (vector_real) - list of timestamps where the end of a rubato region was detected [s]

  • rubatoNumber (integer) - number of detected rubato regions


  • longRegionsPruningTime (real ∈ [0, ∞), default = 20) :

    time for the longest constant tempo region inside a rubato region [s]

  • shortRegionsMergingTime (real ∈ [0, ∞), default = 4) :

    time for the shortest constant tempo region from one tempo region to another [s]

  • tolerance (real ∈ [0, 1], default = 0.08) :

    minimum tempo deviation to look for


This algorithm extracts the locations of large tempo changes from a list of beat ticks.

An exception is thrown if the input beats are not in ascending order and/or if the input beats contain duplicate values.

Quality: experimental (non-reliable, poor accuracy).


[1] Tempo Rubato - Wikipedia, the free encyclopedia, http://en.wikipedia.org/wiki/Rubato

Source code

See also

BpmRubato (standard)