@libraz/libcantus - v1.1.0
    Preparing search index...

    Type Alias ProfileWeights

    How a profile ranks the candidates its severity table has let through.

    Each field is a score contribution, added when the situation it names occurs; a negative value is a penalty. The scale is arbitrary but shared, so only the relative sizes matter. Nothing here can make an unsafe pitch usable: rejection is the severity table's business, and these weights only order what is left.

    type ProfileWeights = {
        imperfectConsonance: number;
        perfectConsonance: number;
        dissonance: number;
        chordTone: number;
        contraryMotion: number;
        obliqueMotion: number;
        similarMotion: number;
        parallelImperfect: number;
        stepwise: number;
        melodicDistance: number;
        forbiddenLeap: number;
        registerDrift: number;
    }
    Index
    imperfectConsonance: number

    A third or a sixth against the other voice.

    perfectConsonance: number

    A unison, fifth or octave against the other voice.

    dissonance: number

    A second, seventh or tritone against the other voice.

    chordTone: number

    The candidate belongs to the sounding chord.

    contraryMotion: number

    The two voices move in opposite directions.

    obliqueMotion: number

    One voice holds while the other moves.

    similarMotion: number

    Both voices move the same way into a different interval.

    parallelImperfect: number

    Both voices move the same way, keeping the same imperfect consonance.

    stepwise: number

    The candidate is a step from the previous note of its own line.

    melodicDistance: number

    Per semitone of melodic movement, so a leap costs more than a step.

    forbiddenLeap: number

    The move is a leap strict counterpoint forbids outright.

    registerDrift: number

    Per semitone away from the centre of the line's register.