Need help smoothly transitioning speeds in a cover

General discussion about tracking, help and support.
Posts: 11
Joined: Thu May 28, 2015 12:24 am
Location: TX

Need help smoothly transitioning speeds in a cover

Postby trippindrago » Sat Jul 25, 2015 2:34 am

I'm working on a cover and i'm stuck at this part where the songs begins getting faster and I don't know how to accurately/smoothly transition speeds. Anything I try to do sounds clunky and the speed doesn't smoothly transition. If anyone can help, than that'd be awesome!
Favorite Games: Final Fantasy V, Jet Set Radio, Earthbound

User avatar
Forum Staff
Posts: 237
Joined: Wed Apr 15, 2015 11:25 am
Location: Quebec, Canada

Re: Need help smoothly transitioning speeds in a cover

Postby jrlepage » Sat Jul 25, 2015 2:41 am

Try stuff. You'll eventually come across something that sounds good.

Source: that's what I do.
Follow me on Twitter.

Posts: 46
Joined: Sun Jun 28, 2015 10:24 pm


Postby Blaze » Sat Jul 25, 2015 3:52 am

Last edited by Blaze on Fri Mar 10, 2017 10:42 pm, edited 1 time in total.

User avatar
Posts: 475
Joined: Thu Apr 23, 2015 7:39 pm
Location: Hong Kong SAR

Re: Need help smoothly transitioning speeds in a cover

Postby HertzDevil » Sat Jul 25, 2015 4:49 am

Unless the play routine does not return, it is virtually impossible to alter the tempo of a song smoothly; for example, in changing from 150 BPM to 180 BPM at standard rate, there would be more rows lasting for 6 ticks first, then the tempo becomes clpse to 163.6 BPM where rows with 6 and 5 ticks alternate, and then more and more rows last for 5 ticks until the tempo settles down. This becomes more complicated when there are already chains of Fxx effects controlling the speed periodically.

The best you could do is attempting to interpolate the two tempo end-values. For example, you could easily produce a linearly interpolated Fxx sequence in a spreadsheet:

Code: Select all

  A     B                                     C        D
2 0     =F$5*15/(F$2+(F$3-F$2)*MIN(A2/F$4,1)) =B2+C1 =CEILING(C2,1)-CEILING(C1,1)
3 =A2+1 ...                                   ...    ...
4 ...
  E      F
2 START  150
3 END    180
5 RATE   60

The Fxx sequence can be read on column D. As shown here, if the tempo linearly increases from 150 BPM to 180 BPM in 16 rows, and the engine speed is 60 Hz, those 16 rows (plus one final row to fix the tempo at 180 BPM) would use:

Code: Select all

6 6 6 6 6 5 6 6 5 5 6 5 5 5 5 6 5
which reduces to:

Code: Select all

F06 ... ... ... ... F05 F06 ... F05 ... F06 F05 ... ... ... F06 F05
When START is equal to END, the result is simply the Fxx sequence implied by that BPM value in FamiTracker. In practice, tempo changes may not be linear, but sequences like this can be used as a base for slight modifications. For slight tempo changes like from 144 BPM to 150 BPM across an entire frame, this method is preferred because only a decreasing portion of rows would contain 7 ticks and linear interpolation spreads these rows as evenly as possible.

Alternatively, if you already know how "grooves" work, you could just use a series of increasingly fast Fxx sequences. The tempo change then becomes less smooth, but has the advantage that those grooves can always be selected to match the row count:

Code: Select all

(3.000, 300 BPM) F03 ... ... ... ... ... ... ...
(2.875, 313 BPM) ... ... ... F02 F03 ... ... ...
(2.750, 327 BPM) ... ... ... F02 F03 ... ... F02
(2.625, 343 BPM) F03 F02 F03 F02 F03 ... ... F02
(2.500, 360 BPM) F03 F02 F03 F02 F03 F02 F03 F02
On the other hand, if you simply do not need control over the number of ticks on every row, and you do not use speed sequences, then just interpolate the two Fxx tempo values, as FamiTracker has a shortcut for that:

Code: Select all

This is as smooth as you can get; indeed, for many specific tempo values this last method will not be significantly worse than manually doing multiple Fxx speed sequences.
refactoring 0cc-famitracker

User avatar
Posts: 297
Joined: Tue Apr 21, 2015 4:36 pm

Re: Need help smoothly transitioning speeds in a cover

Postby Xyz » Sat Jul 25, 2015 6:10 am


If going from 150 to 180
>:( Fuck you hentai boy i hate you squid anus