The attack is tested against the next event, a few events ahead (skips),
the current and previous events (a repeat or a step back) and the starts of
the region and of the current and previous measures (jumps). A position
is a candidate when at least minSupport of its notes were heard — except
the next event, which is a candidate regardless once a tempo is known: a
wrong note is still the next note. Each candidate costs its pitch mismatch
plus a penalty for the move; leaving the attack unexplained (an extra)
costs a gap. Following the performer, that is all: a note is right or
wrong by its pitch, and the follower moves on. Under a set tempo a forward
move also costs how far the attack fell from its beat, an extra costs up
to a second gap when it fell right where the next event was due, and
timing settles what pitch cannot. After a pause the timing term is
dropped — the performer stopped, and where they resume is a matter of
pitch — and jumps and steps back are cheaper. Once lostAfter attacks in a row have
matched nothing nearby, the whole region is searched as well — but only
once the performer has been found at all; a performer who starts in the
middle of a piece should be given that region to follow. Stray attacks
are paired with skipped events as wrong notes when a later attack reveals
the skip.
Under a set tempo (fixedFit) the clock replaces the running fit: timing
is absolute, lateness is never a pause, there are no jumps back to the
start of a bar, and the event whose beat is due is always a candidate, so
a performer who stopped is picked up where they rejoin.
In strict sequence (strictSequence) none of that applies: every attack
is the next event, right or wrong — unless it only finishes the chord the
performer is on — and the only other reading is a stray that came far too
soon.
The first entry is the follower's best guess; a caller that can wait for
the next attack may hold the top few and let that attack choose between
them (see LiveSession).
Every way of placing one attack, likeliest first.
The attack is tested against the next event, a few events ahead (skips), the current and previous events (a repeat or a step back) and the starts of the region and of the current and previous measures (jumps). A position is a candidate when at least
minSupportof its notes were heard — except the next event, which is a candidate regardless once a tempo is known: a wrong note is still the next note. Each candidate costs its pitch mismatch plus a penalty for the move; leaving the attack unexplained (an extra) costs a gap. Following the performer, that is all: a note is right or wrong by its pitch, and the follower moves on. Under a set tempo a forward move also costs how far the attack fell from its beat, an extra costs up to a second gap when it fell right where the next event was due, and timing settles what pitch cannot. After a pause the timing term is dropped — the performer stopped, and where they resume is a matter of pitch — and jumps and steps back are cheaper. OncelostAfterattacks in a row have matched nothing nearby, the whole region is searched as well — but only once the performer has been found at all; a performer who starts in the middle of a piece should be given that region to follow. Stray attacks are paired with skipped events as wrong notes when a later attack reveals the skip.Under a set tempo (
fixedFit) the clock replaces the running fit: timing is absolute, lateness is never a pause, there are no jumps back to the start of a bar, and the event whose beat is due is always a candidate, so a performer who stopped is picked up where they rejoin.In strict sequence (
strictSequence) none of that applies: every attack is the next event, right or wrong — unless it only finishes the chord the performer is on — and the only other reading is a stray that came far too soon.The first entry is the follower's best guess; a caller that can wait for the next attack may hold the top few and let that attack choose between them (see
LiveSession).