Skip to content

Song order

Rodrigo Alfonso edited this page Sep 7, 2020 · 11 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 be first.

Complexity index (Ω)

Each note or hold note 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