Skip to content

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.

Complexity index (Ω)

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.

Custom order

The levels (METER, in SSC files) used for sorting can be overridden with a PIUGBA_ORDER tag.

Clone this wiki locally