-
Notifications
You must be signed in to change notification settings - Fork 6
Song order
Rodrigo Alfonso edited this page Nov 24, 2024
·
15 revisions
Songs are sorted for each difficulty by level, in ascending order. When two songs have the same level, a complexity index (Ω) is used to determine which one should come first.
Each "note" or "hold start" event adds:
const isJump = arrowCount > 1;
const jumpComplexity = (isJump ? Math.log2(2 + arrowCount) : 1);
const holdComplexity = isHold ? 1.3 : 1;
const complexity = (1 - subdivision) * Math.log(bpm) * jumpComplexity * holdComplexity;
// ^ e.g. 1/4 for quarter notes
Then, the sum is divided by the length of the song in seconds.
The levels (METER
, in SSC files) used for sorting can be overridden with a PIUGBA_ORDER
tag.