Unspecified case of BPM <= 0
The standard does not explain how the case of bpm <= 0 should be dealt with. I believe the case should be that:
- BPM < 0: Backwards scroll.
- BPM = 0: Invalid BPM.
Opinions?
I agree with the propositions here and I feel like this belongs in the technical specification to make sure we don't end up with several implementations.
I agree.
Should we process negative BPMs like StepMania?
More info here: http://vsrg.club/forum/showthread.php?tid=178
I think LR2 also processes negative BPMs similarly: https://hitkey.nekokan.dyndns.info/exbpm-object.htm
I don't think a negative BPM should skip over notes (or beats). A warps section should be the one to do that, so to keep future implementations simple (and that a measure + fraction -> time transformation yields a vaild time) a note in a negative section could be placed towards the opposite side. Looking at how stepmania would do it, would be to take an integration over BPS then setting global position to translation/beat * current beat and note position to measure + fraction.
On the other hand (what I propose) is to set position based on time, and integrate position to time (using speed / time instead of speed / beat)