Page 1 of 1

### A random question concerning tempo

Posted: Wed Jan 27, 2016 10:29 pm
So, on the way home from school today, I was thinking: does changing the tempo from 150 to a multiple of 150 still cause some glitches, i.e. skipping rows and effects?

I'm sorry if this seems to be a silly question, but I'm not too sure.

### Re: A random question concerning tempo

Posted: Wed Jan 27, 2016 11:08 pm
If it's a multiple, then you can't, for FT v0.5.0 beta 5 only goes up to 255, not 300.
Now, if you do a divisible (e.g. 75), it will have the same effect as multiplying the speed by 2.

### Re: A random question concerning tempo

Posted: Thu Jan 28, 2016 12:31 am
There doesn't seem to be much difference when having, for instance, a tempo of 200, instead of a groove of { 4 5 } at 60 Hz, but one would usually expect tempo changes to be reflected in the engine speed. Use a hex editor if you really want tempos that are multiples of 150.

### Re: A random question concerning tempo

Posted: Sat Feb 06, 2016 6:50 pm
The condition is whether the length of a row is an integer multiple of 60 Hz.

1. Convert tempo to beats per minute: BPM = tempo * 6 / speed
2. Convert beats per minute into beats per second (Hz): BPS = BPM / 60
3. Convert beats per second into rows per second: RPS = BPS * 4
4. Convert rows per second into ticks per row: TPR = engine_speed / RPS

Putting that all together: TPR = (speed * 60 * engine) / (tempo * 6 * 4)
Simplifying, at the default NTSC engine speed of 60 Hz: TPR = (speed * 3600) / (tempo * 24) = speed * 150 / tempo

So that's your formula: TPR = speed * 150 / tempo

If ticks per row is a whole number (nothing after the decimal point) it should have an evenly distributed row length.

e.g.
5 * 150 / 150 = 5 < if tempo is 150, speed = ticks per row matches speed, here speed = 5, so TPR = 5
6 * 150 / 225 = 4 < here we see that a tempo of 225 still results in an even row length (TPR = 4)
6 * 150 / 130 = 6.923... < here we see that a tempo of 130 does not have an even row length

### Re: A random question concerning tempo

Posted: Sun Feb 07, 2016 4:04 am
Fun fact: for any tempo with a non-integral number of ticks per row, it's possible to calculate the 'stable interval', i.e. # of rows across which you'll see an integral # of ticks.

A - calculate 2.5 * (engine speed) * (song Speed).
B - calculate the lowest common multiple of A and your (song Tempo).
C - Stable interval (in rows) = B / A.

E.g., take a tempo of 144 (Speed 6) at 60 Hz. A = 900. B = lcm(900,144) = 3600. C = 3600/900 = every 4 rows.