Hiyve Components - v1.0.0
    Preparing search index...

    Interface LiveFollowerOptions

    How the live follower weighs where an attack belongs in the score.

    interface LiveFollowerOptions {
        attackRise?: number;
        backCost?: number;
        commitAfterMs?: number;
        decisionMargin?: number;
        gapCost?: number;
        jumpCost?: number;
        jumpCostAfterPause?: number;
        lostAfter?: number;
        maxSkip?: number;
        minConfidence?: number;
        minSupport?: number;
        pauseMs?: number;
        repeatCost?: number;
        resyncCost?: number;
        strictSequence?: boolean;
        tempoWindow?: number;
        timingScaleMs?: number;
        tooSoonFraction?: number;
        unheardWeight?: number;
    }
    Index

    Properties

    attackRise?: number

    For a repeat or a step back, the notes' evidence must have grown by this factor since just before the attack — a note still ringing is not a note played again (default: 1.3)

    backCost?: number

    Cost of stepping back to the previous event with no pause before it (default: 1.2 — dearer than playing the next note wrong, which is what a note matching the previous one usually is; after a pause it costs jumpCostAfterPause)

    commitAfterMs?: number

    A placement still undecided this long after its attack stands (default: 1000)

    decisionMargin?: number

    A placement at least this much cheaper than its runner-up is final at once; otherwise it stays provisional and the next attack chooses between the alternatives — a wrong note and a skipped note look alike until the note after them (default: 0.3)

    gapCost?: number

    Cost of each event passed over, and of an attack nothing explains (default: 0.9 — the matcher's gap cost). An unexplained attack that fell where the next event was due costs up to twice that, since it most likely displaced the event

    jumpCost?: number

    Cost of a jump to the start of the region, or of the current or previous measure, with no pause before it (default: 1.2 — a wrong note that happens to match the opening is still a wrong note)

    jumpCostAfterPause?: number

    jumpCost when the attack follows a pause (default: 0.3)

    lostAfter?: number

    Consecutive attacks matching nothing nearby before the whole region is searched for the performer (default: 3)

    maxSkip?: number

    Events the performer may skip at once (default: 2)

    minConfidence?: number

    Heard notes nobody expected below this confidence are ignored (default: 0.3)

    minSupport?: number

    Fraction of an event's notes that must be heard for the attack to be placed there (default: 0.5). The next event is exempt once a tempo is known: an attack at its time is that event, played wrong if need be

    pauseMs?: number

    An attack this late for the next event — or, before a tempo is known, this long after the previous attack — follows a pause: the performer stopped, so timing says nothing about where they resume (default: 2000)

    repeatCost?: number

    Cost of hearing the current event played again (default: 0.5)

    resyncCost?: number

    Cost of the whole-region search once the performer is lost (default: 0.5)

    strictSequence?: boolean

    Place every attack on the next event — played right or wrong — and move on (default: false). Nothing waits for the attack after: the simplest reading of free playing, where the performer is always at the next note. Two things are read differently: an attack that only finishes the chord the performer is on — notes of it not yet heard, nothing outside it — stays on that chord, and an attack far too soon after the previous one that sounds like neither is a stray (see tooSoonFraction).

    tempoWindow?: number

    Matched events the running tempo is fitted over (default: 8)

    timingScaleMs?: number

    Under a set tempo, the timing deviation that counts as a full mismatch (default: 300 — the matcher's). The scale widens for slow music (half the expected gap between events). Following the performer, timing plays no part in where a note is placed

    tooSoonFraction?: number

    Following the performer, an attack sooner after the previous one than this fraction of the way to the next event is a stray unless it sounds like the next event (default: 0.35). Lateness never counts against a note

    unheardWeight?: number

    How much an expected note that was not heard counts against a position, relative to a heard note nobody expected (default: 0.5): the analysis misses a quiet chord tone far more often than it invents a note