Skip to content

Tempo smooting

Jean Bresson edited this page Mar 12, 2019 · 1 revision

RQ performs tempo estimation on each segment independently, in order to find for each segment the tempo that gives the best solution. As a result, the tempo is likely to change tremendously from one measure to another, which is not satisfactory in many cases. In order to solve this problem, a tempo-smoothing algorithm finds solutions that keep an approximately constant tempo over all segments, or at least over sequences of segments that are as long as possible.

The fitness of a sequence of tempi is assessed according to two criteria :

  • The sum of absolute differences between successive tempi
  • The sum of the weights (as defined in the k-best parsing algorithm) of the chosen solutions

The balance between these two criteria can be set with the Smoothing parameter.

For each segment, the algorithm determines if there is a tempo that is close to that of the previous segment. If, in the current segment, no tempo is close enough to the previous, the algorithm can change the tempo and start a new sequence of tempi: we call that a "tempo jump". The Tempo jump penalty parameter allows to set how frequent one wants these tempo jumps to be. The higher it is, the less frequent tempo jumps are going to be.

Clone this wiki locally