Skip to content

Commit a345f91

Browse files
committed
fixed that
1 parent c38a9e4 commit a345f91

File tree

1 file changed

+47
-40
lines changed

1 file changed

+47
-40
lines changed

Diff for: source/funkin/backend/system/Conductor.hx

+47-40
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ class BPMChangeEvent {
1010
public var stepTime:Float;
1111
public var songTime:Float;
1212
public var bpm:Float;
13-
public var beatsPerMeasure:Float;
14-
public var stepsPerBeat:Int;
13+
public var timeSigNumerator:Float; // was beatsPerMeasure, this is the Top half of a Time Signature
14+
public var timeSigDenominator:Int; // was stepsPerBeat, this is the Bottom half of a Time Signature
1515
}
1616

1717
final class Conductor
@@ -41,14 +41,21 @@ final class Conductor
4141
public static var stepCrochet:Float = crochet / 4; // steps in milliseconds
4242

4343
/**
44-
* Number of beats per mesure (top number in time signature). Defaults to 4.
45-
*/
46-
public static var beatsPerMeasure:Float = 4;
44+
* The amount of beats in a measure, this is the top half of a time signature
45+
* Used to be the variable beatsPerMeasure
46+
* This Defaults to 4
47+
**/
48+
public static var timeSigNumerator:Float = 4;
4749

4850
/**
4951
* Number of steps per beat (bottom number in time signature). Defaults to 4.
5052
*/
51-
public static var stepsPerBeat:Int = 4;
53+
/**
54+
* The amount of steps in a beat, this is the bottom half of a time signature
55+
* Used to be the variable stepsPerBeat
56+
* This Defaults to 4
57+
**/
58+
public static var timeSigDenominator:Int = 4;
5259

5360

5461
/**
@@ -128,16 +135,16 @@ final class Conductor
128135
stepTime: 0,
129136
songTime: 0,
130137
bpm: song.meta.bpm,
131-
beatsPerMeasure: song.meta.beatsPerMeasure.getDefault(4),
132-
stepsPerBeat: song.meta.stepsPerBeat.getDefault(4)
138+
timeSigNumerator: song.meta.beatsPerMeasure.getDefault(4),
139+
timeSigDenominator: song.meta.stepsPerBeat.getDefault(4)
133140
}
134141
];
135142

136143
if (song.events == null) return;
137144

138145
var curBPM:Float = song.meta.bpm;
139-
var curBeatsPerMeasure:Float = song.meta.beatsPerMeasure.getDefault(4);
140-
var curStepsPerBeat:Int = song.meta.stepsPerBeat.getDefault(4);
146+
var curTimeSigNumerator:Float = song.meta.beatsPerMeasure.getDefault(4);
147+
var curTimeSigDenominator:Int = song.meta.stepsPerBeat.getDefault(4);
141148
var songTime:Float = 0;
142149
var stepTime:Float = 0;
143150

@@ -149,7 +156,7 @@ final class Conductor
149156

150157
if (name == "BPM Change" && params[0] is Float) {
151158
if (params[0] == curBPM) continue;
152-
var steps = (eventTime - songTime) / ((60 / curBPM) * 1000 / stepsPerBeat);
159+
var steps = (eventTime - songTime) / ((60 / curBPM) * 1000 / timeSigDenominator);
153160
stepTime += steps;
154161
songTime = eventTime;
155162
curBPM = params[0];
@@ -158,28 +165,28 @@ final class Conductor
158165
stepTime: stepTime,
159166
songTime: songTime,
160167
bpm: curBPM,
161-
beatsPerMeasure: curBeatsPerMeasure, // keep old beatsPerMeasure and stepsPerMeasure so shit doesnt break
162-
stepsPerBeat: curStepsPerBeat
168+
timeSigNumerator: curTimeSigNumerator, // keep old timeSigNumerator and stepsPerMeasure so shit doesnt break
169+
timeSigDenominator: curTimeSigDenominator
163170
});
164171
} else if (name == "Time Signature Change") {
165-
var newBeatsPerMeasure = params[0];
166-
var newStepsPerBeat = params[1];
172+
var newTimeSigNumerator = params[0];
173+
var newTimeSigDenominator = params[1];
167174

168-
if (newBeatsPerMeasure == curBeatsPerMeasure && newStepsPerBeat == curStepsPerBeat) continue;
175+
if (newTimeSigNumerator == curTimeSigNumerator && newTimeSigDenominator == curTimeSigDenominator) continue;
169176

170-
var steps = (eventTime - songTime) / ((60 / curBPM) * 1000 / stepsPerBeat);
177+
var steps = (eventTime - songTime) / ((60 / curBPM) * 1000 / timeSigDenominator);
171178
stepTime += steps;
172179
songTime = eventTime;
173180

174-
curBeatsPerMeasure = newBeatsPerMeasure;
175-
curStepsPerBeat = newStepsPerBeat;
181+
curTimeSigNumerator = newTimeSigNumerator;
182+
curTimeSigDenominator = newTimeSigDenominator;
176183

177184
bpmChangeMap.push({
178185
stepTime: stepTime,
179186
songTime: songTime,
180187
bpm: curBPM, // keep old bpm so shit doesnt break
181-
beatsPerMeasure: curBeatsPerMeasure,
182-
stepsPerBeat: curStepsPerBeat
188+
timeSigNumerator: curTimeSigNumerator,
189+
timeSigDenominator: curTimeSigDenominator
183190
});
184191
}
185192
}
@@ -229,8 +236,8 @@ final class Conductor
229236
stepTime: 0,
230237
songTime: 0,
231238
bpm: 0,
232-
beatsPerMeasure: beatsPerMeasure,
233-
stepsPerBeat: stepsPerBeat
239+
timeSigNumerator: timeSigNumerator,
240+
timeSigDenominator: timeSigDenominator
234241
};
235242

236243
var currentPos = Conductor.songPosition;
@@ -243,13 +250,13 @@ final class Conductor
243250
}
244251

245252
// Change BPM if necessary and check for time signature change
246-
if ((__lastChange.bpm > 0 && bpm != __lastChange.bpm) || (__lastChange.beatsPerMeasure != beatsPerMeasure || __lastChange.stepsPerBeat != stepsPerBeat)) {
247-
changeBPM(__lastChange.bpm, __lastChange.beatsPerMeasure, __lastChange.stepsPerBeat);
253+
if ((__lastChange.bpm > 0 && bpm != __lastChange.bpm) || (__lastChange.timeSigNumerator != timeSigNumerator || __lastChange.timeSigDenominator != timeSigDenominator)) {
254+
changeBPM(__lastChange.bpm, __lastChange.timeSigNumerator, __lastChange.timeSigDenominator);
248255
}
249256

250257
curStepFloat = __lastChange.stepTime + ((currentPos - __lastChange.songTime) / Conductor.stepCrochet);
251-
curBeatFloat = curStepFloat / stepsPerBeat;
252-
curMeasureFloat = curBeatFloat / beatsPerMeasure;
258+
curBeatFloat = curStepFloat / timeSigDenominator;
259+
curMeasureFloat = curBeatFloat / timeSigNumerator;
253260

254261
var oldStep = curStep;
255262
var oldBeat = curBeat;
@@ -305,19 +312,19 @@ final class Conductor
305312
}
306313
}
307314

308-
public static function changeBPM(newBpm:Float, newBeatsPerMeasure:Float = 4, newStepsPerBeat:Int = 4)
315+
public static function changeBPM(newBpm:Float, newTimeSigNumerator:Float = 4, newTimeSigDenominator:Int = 4)
309316
{
310-
var timesignChange = (beatsPerMeasure != newBeatsPerMeasure || stepsPerBeat != newStepsPerBeat);
317+
var timesignChange = (timeSigNumerator != newTimeSigNumerator || timeSigDenominator != newTimeSigDenominator);
311318
var bpmChange = (bpm != newBpm);
312319

313-
beatsPerMeasure = newBeatsPerMeasure;
314-
stepsPerBeat = newStepsPerBeat;
320+
timeSigNumerator = newTimeSigNumerator;
321+
timeSigDenominator = newTimeSigDenominator;
315322
bpm = newBpm;
316323

317324
crochet = (60 / bpm) * 1000;
318-
stepCrochet = crochet / stepsPerBeat;
325+
stepCrochet = crochet / timeSigDenominator;
319326

320-
if (timesignChange) onTimeSignatureChange.dispatch(beatsPerMeasure, stepsPerBeat);
327+
if (timesignChange) onTimeSignatureChange.dispatch(timeSigNumerator, timeSigDenominator);
321328
if (bpmChange) onBPMChange.dispatch(bpm);
322329
}
323330

@@ -326,38 +333,38 @@ final class Conductor
326333
stepTime: 0,
327334
songTime: 0,
328335
bpm: bpm,
329-
beatsPerMeasure: beatsPerMeasure,
330-
stepsPerBeat: stepsPerBeat
336+
timeSigNumerator: timeSigNumerator,
337+
timeSigDenominator: timeSigDenominator
331338
};
332339

333340
for(change in bpmChangeMap)
334341
if (change.stepTime < step && change.stepTime >= bpmChange.stepTime)
335342
bpmChange = change;
336343
// possible break here
337344

338-
return bpmChange.songTime + ((step - bpmChange.stepTime) * ((60 / bpmChange.bpm) * (1000 / bpmChange.stepsPerBeat)));
345+
return bpmChange.songTime + ((step - bpmChange.stepTime) * ((60 / bpmChange.bpm) * (1000 / bpmChange.timeSigDenominator)));
339346
}
340347

341348
public static function getStepForTime(time:Float) {
342349
var bpmChange:BPMChangeEvent = {
343350
stepTime: 0,
344351
songTime: 0,
345352
bpm: bpm,
346-
beatsPerMeasure: beatsPerMeasure,
347-
stepsPerBeat: stepsPerBeat
353+
timeSigNumerator: timeSigNumerator,
354+
timeSigDenominator: timeSigDenominator
348355
};
349356

350357
for(change in bpmChangeMap)
351358
if (change.songTime < time && change.songTime >= bpmChange.songTime)
352359
bpmChange = change;
353360
// possible break here
354361

355-
return bpmChange.stepTime + ((time - bpmChange.songTime) / ((60 / bpmChange.bpm) * (1000 / bpmChange.stepsPerBeat)));
362+
return bpmChange.stepTime + ((time - bpmChange.songTime) / ((60 / bpmChange.bpm) * (1000 / bpmChange.timeSigDenominator)));
356363
}
357364

358365

359366
public static inline function getMeasureLength()
360-
return stepsPerBeat * beatsPerMeasure;
367+
return timeSigDenominator * timeSigNumerator;
361368

362369
public static inline function getMeasuresLength() {
363370
if (FlxG.sound.music == null) return 0.0;

0 commit comments

Comments
 (0)