Files
fumen-measure-analyze/preprocess/factorize.ts
2026-04-25 02:32:22 +09:00

18 lines
643 B
TypeScript

import { Course } from "tja-parser";
import { filterHitNotes } from "./util";
export type NoteFactor = [type: 0 | 1, bpm: number, scroll: number, delta: number]
export function factorize(course: Course) {
const hitNotes = filterHitNotes(course);
const factors: NoteFactor[] = [];
for (let i = 0; i < hitNotes.length; i++) {
const note = hitNotes[i];
factors.push([
(note.type === 1 || note.type === 3) ? 0 : 1,
note.getBPM() / 100,
note.getScroll() / 5,
i === 0 ? 0 : (note.getTimingMS() - hitNotes[i - 1].getTimingMS()) / 1000
])
}
return factors;
}