forum

Automatic BPM in Timing Sections

posted
Total Posts
16
This is a feature request. Feature requests can be voted up by supporters.
Current Priority: +10
Topic Starter
mm201
This is a feature request which would help vastly with the timing of unsteady BPM music. (Basically anything made before the 1980s.) The main challenge of timing these maps is that you have to find both the offset and the BPM of a section, and because of this, it's possible that part of your section may sound on time even if its BPM is wrong, because the beats "caught up" with the music at a particular moment. This makes it very difficult to spot and fix timing mistakes.

Basically, by enabling this feature for a timing section, the section's BPM would be calculated based on the offset of the following section. You could specify how many beats (or half-beats, 1/3s, ...) are contained within the section, or this would be found automatically based on what the BPM of the section was before you enabled the feature. Tweaking the offset of the following section would adjust the current section's BPM automatically. Perhaps also, the BPM field in the timing tab could be replaced with the offset of the following section for convenience.

The formula used is just: BPM = (Beatcount * 60) / (Offset2 - Offset1). (Offsets are in whole seconds; mind the decimal point.)

Clearly, this couldn't be enabled for the last section of a song.
LuigiHann
This map has been deleted on the request of its creator. It is no longer available.
awp
I'd call it automatic BPM adjustment if anything, but this could be kind of handy to have.
peppy
I think this takes longer than actually timing it by adjusting the bpm though? Because you need to count how many beats in each section, which means listening to it through the section once. If you listen to it through the section once while adjusting the bpm slightly, you will get the same results.
nardii
I'd like to mention that this is pretty much exactly what I tried to request with the anchors request, but explained much better.
peppy
In fact, I just realised you can already do this. Set an approximate bpm, then count the beats. When you get to the end of the beats you've counted, look at the "Current Stanza x:x" display. This will be something like

Current Stanza 69:3

You can figure the "beat count" from this number - 69 * 4 (or 3 if you are using 3/4 time signature) + 3 + 1

You can then adjust the bpm to match the number you counted, and even go as far as aligning it perfectly by placing a beat on the correct white tick then adjusting bpm until its at your "end time".

If you dont understand what I just said, do tell and I'll try and explain in more detail.
Topic Starter
mm201
Bumpity bump ^^,

peppy: The trouble in doing it that way is that you need to calculate the new BPM by hand every time you move one of your offsets around. If you're trying to tweak the offset to get it right by listening, this becomes extremely tedious and impractical.
Echo
Why would you need to recalculate the BPM if you change the offset? o.O
Topic Starter
mm201

Echo wrote:

Why would you need to recalculate the BPM if you change the offset? o.O
The concept here is to calculate the BPM of a section based on the offset of the following section, so that the section contains a whole number of beats with no slack.

This number of beats is either going to be the nearest value to what was already there when you turn the feature on, or you could specify.
An64fan
In any case, automatic BPM adjustment would still require you to count up the number of beats between two points on the map. As peppy said, and even showed, the BPM can be calculated mathematically.

Here's some simple algebra for you:

z(60 000)
(Ob - Oa)

Where Oa is the offset of the first beat, Ob is the offset of the last beat,
and z is either (while counted within the range of Oa and Ob):
  • the counted number of beats, including the first and the last beat, or
  • (x(4) + y + 1) for a 4/4 measure, counted at Ob, assuming that Oa is the set offset of the song, and assuming your current BPM is already accurate within a small fraction of a full beat (this will vary depending on the length of time measured), or
  • (x(3) + y + 1) for a 3/4 measure, with the same circumstances as above,
for the last two where x:y is the Measures:Beats count displayed on the Timing screen.


Really, while a tool to calculate this by specifying the missing values could be implemented (and I can understand how easy and fast it would be to calculate if you already had the values, me having been through my spreadsheets units and all), but it really wouldn't be that much harder to do by hand. Besides, I could only see something like this being useful for maps with an odd or touchy BPM, in which case taking the few minutes it takes to punch in a few extra buttons into a calculator and doing the math yourself wouldn't be a waste. An automatic BPM adjuster would have rather limited use and I don't think it's necessary anyways, especially if you already have a simple formula which you can use anyways (and lucky you, I just gave you one!).
Topic Starter
mm201
You clearly haven't tried to time an oldie with a variable tempo and 40-something timing sections. :?

If you've already *roughly* timed a map, the number of beats per section is already known. This feature becomes handy when you're trying to perfect the map's timing and need to constantly (as in, keep hitting plus until the beats sound in synch) adjust your offsets AND (presently) BPMs. Having the BPMs automatically correct themselves removes half the work.

We know these auto-BPMs are correct because there aren't any skipped beats or anything, just a fluctuating tempo.

Also, suppose you were to have a timing section with both the wrong offset and BPM, but sounded right in most places (the problem this request aims to solve). You apply the formula to calculate BPM (which, by the way, is in my first post; you don't need to keep reminding me of it), and now everything sounds wrong because of the wrong offset. You fix the offset, but now the BPM is wrong again. Apply formula. Sounds wrong. Repeat. After enough iterations, your timing will asymptotically approach the correct values after heaps of work and wasted time.
Echo

MetalMario201 wrote:

You clearly haven't tried to time an oldie with a variable tempo and 40-something timing sections. :?
My advice: DON'T map such a song.
LuigiHann
I'm starting to warm up to this idea.
nardii
This map has been deleted on the request of its creator. It is no longer available.
Topic Starter
mm201

Echo wrote:

MetalMario201 wrote:

You clearly haven't tried to time an oldie with a variable tempo and 40-something timing sections. :?
My advice: DON'T map such a song.
Most oldies are this way. They didn't intend for the tempo to fluctuate; it's just that they didn't use an electronic metronome type rig to ensure a flawless tempo. It's also sometimes thought that music sounds better this way.

There's lots of very mappable music from the 70s, etc. which present too much potential fun to just abandon to timing issues.

And I've timed the map in question already. It was just much more work than it ought to have been.
Bass
E: Nevermind.
Please sign in to reply.

New reply