A random question concerning tempo

General discussion about tracking, help and support.
User avatar
iYamWhatIYam
Posts: 422
Joined: Wed Jul 08, 2015 8:19 pm
Location: Fort Wayne, IN

A random question concerning tempo

Postby iYamWhatIYam » 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.
I have permanently switched to 0CC-FamiTracker. If and when JSR decides to update vanilla FamiTracker at this point is entirely out of the question for me.
YouTube
Twitter

User avatar
MiniMacro
Posts: 932
Joined: Mon Apr 20, 2015 8:47 pm
Location: Trapped in a 2A03

Re: A random question concerning tempo

Postby MiniMacro » 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.
wow this is total BS
mmsound.bandcamp.com
you can see my beautiful music there~

User avatar
PostApocolyptica
Posts: 218
Joined: Sat May 23, 2015 4:48 pm
Location: England, United Kingom
Contact:

Re: A random question concerning tempo

Postby PostApocolyptica » 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.
Sarumi is best ship; confirmed and manifested.

YouTube
Twitter
SoundCloud

User avatar
rainwarrior
Forum Staff
Posts: 165
Joined: Thu Apr 23, 2015 8:23 pm
Location: Canada
Contact:

Re: A random question concerning tempo

Postby rainwarrior » 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

User avatar
Stratelier
Posts: 378
Joined: Sun Apr 26, 2015 7:46 pm

Re: A random question concerning tempo

Postby Stratelier » 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.