The Untold Truth About Octatrack Tempo

If you don’t use natural numbers but numbers with decimals, the tempo display is truncated.
Example : 100.1 bpm is actually 100.125 bpm

Can be problematic if you import loops having their tempo with decimals, or export OT recordings to edit in a DAW.

Thanks a lot to @tnussb for chiming in with a great explanation below

Tempo/BPM is calculated by counting MIDI clock pulses within the period of one minute.

The MIDI clock has a resolution of 24 pulses per quarter note (=beat). So tempo/BPM changes are quantized to increments/decrements of 1/24 beat (=0,041666666…).

Thanks to @darenager for the ideal thread title. :content:

Attributes Tempo values

0,0416666667 (1/24)
0,0833333333 (2/24)
0.125 (3/24)
0,1666666667 (4/24)
0,2083333333 (5/24)
0.25 (6/24)
0,2916666667 (7/24)
0,3333333333 (8/24)
0,375 (9/24)
0,4166666667 (10/24)
0,4583333333 (11/24)
0,5 (12/24)
0,5416666667 (13/24)
0,5833333333 (14/24)
0,625 (15/24)
0,6666666667 (16/24)
0,7083333333 (17/24)
0,75 (18/24)
0,7916666667 (19/24)
0,8333333333 (20/24)
0,875 (21/24)
0,9166666667 (22/24)
0,9583333333 (23/24)

21 Likes

Math \o/

3 Likes

What is the formula?
The tempos I noticed with recordings match tempos you can set with Fn + arrows.
Not linear. +0.04 increments from 0 then from 0.25, 0.50, 0.75.

Potentially problematic if I record / export at 101 bpm, and play one shot looped at 50.5, wich seems to be 50.54 or so. Inevitable offset.

2 Likes

I guess one of the reasons why this looks so odd is that internally these decimal fractions are represented by binary fractions. Depending on how many bits are available only a small subset of decimal fractions can be represented exactly.

For example take the simple decimal fraction 0.1. A binary representation of this would be:

.000110011001100110011001100110011001100110011001100110011001

which is still not exactly 0.1, but 0.09999999999999999947.

Example of fractions which translate exactly with just a few bits:

0.25 = 1/4 => 0.01
0.5 = 1/2 => 0.10
0.75 = 1/2 + 1/4 => 0.11

Of course this is not the only reason why these numbers look so odd. But I haven’t found an answer yet.

https://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

7 Likes

Binary is not fun! :smile:

Thanks to shime in, but I’d like to know if my observations are true, like 50.5 bpm is not 50.50 but 50.54 or so.

Sometimes I calculate my slices lengths really precisely with samples values, depending on tempo for instance.

I also choose tempo depending on the root note I want for Retrig sometimes. Funnily, as A440 tuning corresponds to 103.125 bpm, this weird tempo difference match it much more precisely (103.12472).
Edit, in fact it seems that the tempo is perfect for A440 tuning.

1 Like

About the 0.4 increments with 0.5 increments inbetween: maybe that’s just a display issue, because only 2 fractional digits gets displayed?

What if the real increment isn’t varying between 0.4 and 0.5 but is exactly 0.04166666…?

0.00
0.04166666…
0.08333333…
0.125
0.16666666…
0.20833333…
0.25

… and so on … (linear)

(0.04166666… == 0.25/6)

2 Likes

Yes, that’s what I thought temporarily seeing 24 values instead of 25, not a perfect 0.04 increment.
Then I saw 0.25, 0.50, 0.75 coinciding with values you can get with arrows without Func.
I left that idea but that is probably true!

1/24=0,041666666
At least it is possible to know what the right tempo precisely…:neutral_face:

The “strange looking” increment stems from the MIDI clock which is based on discrete pulses per quarter note (24 pulses per quarter note to be exact).

Increasing the BPM just so slightly in MIDI terms means sending 1 additional pulse per minute.

30 BPM: 30 quarter notes / min => 720 pulses / min
increased to: 721 pulses / min => 30*721/720 = 30.041666 BPM

100 BPM: 100 quarter notes / min => 2400 pulses / min
increased to: 2401 pulses / min => 100*2401/2400 => 100,041666 BPM

So the formula simply is:

min_incremented_bpm = (24*bpm+1)/24 = bpm + 1/24

If the tempo wouldn’t be displayed as BPM, but as pulses/min you would see just natural numbers increasing by 1 with each step … :wink:

13 Likes

Ah bravo, thanks! :thup:
I’ll edit my first post to make it tidier. A short title idea?

Hmmmm … something along “Decimal tempo/BPM explained”?

I’ve simplified the explanation a little bit.


Summary/Conclusion:

Tempo/BPM is calculated by counting MIDI clock pulses within the period of one minute.

The MIDI clock has a resolution of 24 pulses per quarter note (=beat). So tempo/BPM changes are quantized to increments/decrements of 1/24 beat (=0,041666666…).


BTW: I’m quite sure that internally the tempo attribute value is stored as pulses/min in the “.ot” file, because the global tempo in the project file is also stored as “TEMPOx24=<integer>”.

It’s just for display reasons that these decimals gets calculated.

2 Likes

:thinking:
The great decimal tempo swindle
All the truth about decimal tempo
Decipher decimal tempo
Hidden tempo values
Tempo mystery
Tempi

2 Likes

My favorite is:

:rofl: :rofl: :rofl:

1 Like

May I suggest a thread re-name:

“The untold truth about Octatrack tempo will shock the world”

:laughing:

@sezare56 Good digging! @tnussb Good conclusion!

6 Likes

Kept this. :wink:

4 Likes

Clickbait worked on me

2 Likes

+1
I don’t understand anything, but the title was catchy enough

3 Likes

:content:
Do you think OT 111.1 bpm display corresponds to 111.100 bpm?
In fact it corresponds to 111.125 bpm

Problematic if you export a sample at 111.100 bpm, it won’t loop correctly at 111.1 (111.125) bpm in OT, or may drift with a sequenced drum loop.

I’ll edit the first post and make a table with the right values corresponding to truncated decimals.

2 Likes

The (only?) good news about this (at least for me), is that 103.125 bpm is absolutely perfect A440 Hz tuning for retrig! :champagne:
440x60/256=103.125 bpm.
@tnussb, Aren’t these maths correct? :content:

Meaning OT can be used as a 440hz tuning reference, retrigging, or looping a sample with short length.
"Before playing, would you tune your instrument with my Octatrack tuner please… "

I was using 103.1 bpm for A tuning retrig or sampling, (more details if interested in), 103.125 being already my reference, working well of course but now I know it is the perfect tempo I wanted for A440 hz tuning. :smiley:

Who cares? (1m32s)

4 Likes

You’re doing God’s work ! :blush:

2 Likes

That appears next level precision. I don’t understand it only if I did I would love it. Good