@@ -10,8 +10,8 @@ class BPMChangeEvent {
10
10
public var stepTime : Float ;
11
11
public var songTime : Float ;
12
12
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
15
15
}
16
16
17
17
final class Conductor
@@ -41,14 +41,21 @@ final class Conductor
41
41
public static var stepCrochet : Float = crochet / 4 ; // steps in milliseconds
42
42
43
43
/**
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 ;
47
49
48
50
/**
49
51
* Number of steps per beat (bottom number in time signature). Defaults to 4.
50
52
*/
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 ;
52
59
53
60
54
61
/**
@@ -128,16 +135,16 @@ final class Conductor
128
135
stepTime : 0 ,
129
136
songTime : 0 ,
130
137
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 )
133
140
}
134
141
];
135
142
136
143
if (song .events == null ) return ;
137
144
138
145
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 );
141
148
var songTime : Float = 0 ;
142
149
var stepTime : Float = 0 ;
143
150
@@ -149,7 +156,7 @@ final class Conductor
149
156
150
157
if (name == " BPM Change" && params [0 ] is Float ) {
151
158
if (params [0 ] == curBPM ) continue ;
152
- var steps = (eventTime - songTime ) / ((60 / curBPM ) * 1000 / stepsPerBeat );
159
+ var steps = (eventTime - songTime ) / ((60 / curBPM ) * 1000 / timeSigDenominator );
153
160
stepTime + = steps ;
154
161
songTime = eventTime ;
155
162
curBPM = params [0 ];
@@ -158,28 +165,28 @@ final class Conductor
158
165
stepTime : stepTime ,
159
166
songTime : songTime ,
160
167
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
163
170
});
164
171
} 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 ];
167
174
168
- if (newBeatsPerMeasure == curBeatsPerMeasure && newStepsPerBeat == curStepsPerBeat ) continue ;
175
+ if (newTimeSigNumerator == curTimeSigNumerator && newTimeSigDenominator == curTimeSigDenominator ) continue ;
169
176
170
- var steps = (eventTime - songTime ) / ((60 / curBPM ) * 1000 / stepsPerBeat );
177
+ var steps = (eventTime - songTime ) / ((60 / curBPM ) * 1000 / timeSigDenominator );
171
178
stepTime + = steps ;
172
179
songTime = eventTime ;
173
180
174
- curBeatsPerMeasure = newBeatsPerMeasure ;
175
- curStepsPerBeat = newStepsPerBeat ;
181
+ curTimeSigNumerator = newTimeSigNumerator ;
182
+ curTimeSigDenominator = newTimeSigDenominator ;
176
183
177
184
bpmChangeMap .push ({
178
185
stepTime : stepTime ,
179
186
songTime : songTime ,
180
187
bpm : curBPM , // keep old bpm so shit doesnt break
181
- beatsPerMeasure : curBeatsPerMeasure ,
182
- stepsPerBeat : curStepsPerBeat
188
+ timeSigNumerator : curTimeSigNumerator ,
189
+ timeSigDenominator : curTimeSigDenominator
183
190
});
184
191
}
185
192
}
@@ -229,8 +236,8 @@ final class Conductor
229
236
stepTime : 0 ,
230
237
songTime : 0 ,
231
238
bpm : 0 ,
232
- beatsPerMeasure : beatsPerMeasure ,
233
- stepsPerBeat : stepsPerBeat
239
+ timeSigNumerator : timeSigNumerator ,
240
+ timeSigDenominator : timeSigDenominator
234
241
};
235
242
236
243
var currentPos = Conductor .songPosition ;
@@ -243,13 +250,13 @@ final class Conductor
243
250
}
244
251
245
252
// 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 );
248
255
}
249
256
250
257
curStepFloat = __lastChange .stepTime + ((currentPos - __lastChange .songTime ) / Conductor .stepCrochet );
251
- curBeatFloat = curStepFloat / stepsPerBeat ;
252
- curMeasureFloat = curBeatFloat / beatsPerMeasure ;
258
+ curBeatFloat = curStepFloat / timeSigDenominator ;
259
+ curMeasureFloat = curBeatFloat / timeSigNumerator ;
253
260
254
261
var oldStep = curStep ;
255
262
var oldBeat = curBeat ;
@@ -305,19 +312,19 @@ final class Conductor
305
312
}
306
313
}
307
314
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 )
309
316
{
310
- var timesignChange = (beatsPerMeasure != newBeatsPerMeasure || stepsPerBeat != newStepsPerBeat );
317
+ var timesignChange = (timeSigNumerator != newTimeSigNumerator || timeSigDenominator != newTimeSigDenominator );
311
318
var bpmChange = (bpm != newBpm );
312
319
313
- beatsPerMeasure = newBeatsPerMeasure ;
314
- stepsPerBeat = newStepsPerBeat ;
320
+ timeSigNumerator = newTimeSigNumerator ;
321
+ timeSigDenominator = newTimeSigDenominator ;
315
322
bpm = newBpm ;
316
323
317
324
crochet = (60 / bpm ) * 1000 ;
318
- stepCrochet = crochet / stepsPerBeat ;
325
+ stepCrochet = crochet / timeSigDenominator ;
319
326
320
- if (timesignChange ) onTimeSignatureChange .dispatch (beatsPerMeasure , stepsPerBeat );
327
+ if (timesignChange ) onTimeSignatureChange .dispatch (timeSigNumerator , timeSigDenominator );
321
328
if (bpmChange ) onBPMChange .dispatch (bpm );
322
329
}
323
330
@@ -326,38 +333,38 @@ final class Conductor
326
333
stepTime : 0 ,
327
334
songTime : 0 ,
328
335
bpm : bpm ,
329
- beatsPerMeasure : beatsPerMeasure ,
330
- stepsPerBeat : stepsPerBeat
336
+ timeSigNumerator : timeSigNumerator ,
337
+ timeSigDenominator : timeSigDenominator
331
338
};
332
339
333
340
for (change in bpmChangeMap )
334
341
if (change .stepTime < step && change .stepTime >= bpmChange .stepTime )
335
342
bpmChange = change ;
336
343
// possible break here
337
344
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 )));
339
346
}
340
347
341
348
public static function getStepForTime (time : Float ) {
342
349
var bpmChange : BPMChangeEvent = {
343
350
stepTime : 0 ,
344
351
songTime : 0 ,
345
352
bpm : bpm ,
346
- beatsPerMeasure : beatsPerMeasure ,
347
- stepsPerBeat : stepsPerBeat
353
+ timeSigNumerator : timeSigNumerator ,
354
+ timeSigDenominator : timeSigDenominator
348
355
};
349
356
350
357
for (change in bpmChangeMap )
351
358
if (change .songTime < time && change .songTime >= bpmChange .songTime )
352
359
bpmChange = change ;
353
360
// possible break here
354
361
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 )));
356
363
}
357
364
358
365
359
366
public static inline function getMeasureLength ()
360
- return stepsPerBeat * beatsPerMeasure ;
367
+ return timeSigDenominator * timeSigNumerator ;
361
368
362
369
public static inline function getMeasuresLength () {
363
370
if (FlxG .sound .music == null ) return 0.0 ;
0 commit comments