Page 1 of 1

Need help smoothly transitioning speeds in a cover

Posted: Sat Jul 25, 2015 2:34 am
by trippindrago
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!

Re: Need help smoothly transitioning speeds in a cover

Posted: Sat Jul 25, 2015 2:41 am
by jrlepage
Try stuff. You'll eventually come across something that sounds good.

Source: that's what I do.

---removed

Posted: Sat Jul 25, 2015 3:52 am
by Blaze
---removed

Re: Need help smoothly transitioning speeds in a cover

Posted: Sat Jul 25, 2015 4:49 am
by HertzDevil
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
1
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
4 LENGTH 16
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

F96 F9B FA0 FA5 FAA FAF FB4
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.

Re: Need help smoothly transitioning speeds in a cover

Posted: Sat Jul 25, 2015 6:10 am
by Xyz
Or.....
F96
F97
F98
F99
F9A
etc.
FB2
FB3
FB4

If going from 150 to 180