converters.py
: Fix bug with measure BPM adjustment
The adjustment occurs between ANY BPM shifts, and not just mid-measure BPM shifts. The reason I missed this is because my test song, Rokuchounen, ONLY contains mid-measure BPM shifts, and no BPM shifts that start exactly on the measure.
This commit is contained in:
parent
f336c37b8b
commit
0a3a4ae4e6
@ -113,9 +113,10 @@ def convertTJAToFumen(fumen, tja):
|
|||||||
# - measureDurationBase: The "base" measure duration, computed using a single BPM value.
|
# - measureDurationBase: The "base" measure duration, computed using a single BPM value.
|
||||||
# - measureDuration: The actual measure duration, which may be adjusted if there is a mid-measure BPM change.
|
# - measureDuration: The actual measure duration, which may be adjusted if there is a mid-measure BPM change.
|
||||||
measureDurationBase = measureDuration = (4 * 60_000 * measureSize * measureRatio / measureTJA['bpm'])
|
measureDurationBase = measureDuration = (4 * 60_000 * measureSize * measureRatio / measureTJA['bpm'])
|
||||||
# The following adjustment accounts for mid-measure BPM changes. (!!! Discovered by tana :3 !!!)
|
# The following adjustment accounts for BPM changes. (!!! Discovered by tana :3 !!!)
|
||||||
if measureRatio != 1.0:
|
if idx_m != len(tja['measures'])-1:
|
||||||
measureTJANext = tja['measures'][idx_m+1]
|
measureTJANext = tja['measures'][idx_m + 1]
|
||||||
|
if measureTJA['bpm'] != measureTJANext['bpm']:
|
||||||
measureDuration -= (4 * 60_000 * ((1 / measureTJANext['bpm']) - (1 / measureTJA['bpm'])))
|
measureDuration -= (4 * 60_000 * ((1 / measureTJANext['bpm']) - (1 / measureTJA['bpm'])))
|
||||||
|
|
||||||
# Apply the change in offset to the overall offset to get the measure offset
|
# Apply the change in offset to the overall offset to get the measure offset
|
||||||
|
Loading…
x
Reference in New Issue
Block a user