Skip to main content

join_splits_with

Function join_splits_with 

Source
pub fn join_splits_with(
    notes: &NoteList,
    run: &ModelRun,
    levels: &StemLevels<'_>,
) -> NoteList
Expand description

Joins the pieces of a held note that the decoder split.

A note joins a note of the same key that ends within SPLIT_GAP before it, on an onset activation below SPLIT_ONSET, when its velocity is no higher than that note’s and levels show no attack of its own.

A repeated note starts on a strong onset or on an attack in the stem, and stays apart. The decoder can fill the gap before a low repeat and read its onset weak, so the onset alone misses it. A split piece is the weaker rest of a held note; a weaker piece before a stronger note is an early fragment of the attack, and joining it would move the onset.