Spaces:
Sleeping
Sleeping
File size: 656 Bytes
f23825d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
export interface Measure {
startTick: number
measure: number
numerator: number
denominator: number
}
export const calculateMBT = (
measure: Measure,
tick: number,
ticksPerBeatBase: number,
) => {
const ticksPerBeat = (ticksPerBeatBase * 4) / measure.denominator
const ticksPerMeasure = ticksPerBeat * measure.numerator
let aTick = tick - measure.startTick
const deltaMeasure = Math.floor(aTick / ticksPerMeasure)
aTick -= deltaMeasure * ticksPerMeasure
const beat = Math.floor(aTick / ticksPerBeat)
aTick -= beat * ticksPerBeat
return {
measure: measure.measure + deltaMeasure,
beat: beat,
tick: aTick,
}
}
|