@tonalis/music-dsl
    Preparing search index...

    Function fromChord

    • Convert an absolute Chord to a NumericChordAttrs in a given key. Mirrors Python NumericChord._from_chord(diatonic_key_root, chord, substitution).

      The three substitution branches: (a) semitonesApartAscending(chord.root, keyRoot) == Tritone(6) AND hf==Subdominant → require Subdominant else throw IncorrectHarmonicFunctionError → modulate(Tritone+M2 = 8, degree) (b) chord.harmonic_function == Dominant (checked after branch-a fails) → modulate(Tritone = 6, degree) (c) semitonesApartAscending(chord.root, keyRoot) == m6(8) → modulate(m6.down()+M2 = -6, degree) NOTE: A==8 fires; A==4 (M3-up inversion) does NOT (structural equality).

      Parameters

      • keyRoot: string
      • chord: ChordModel
      • substitution: boolean

      Returns NumericChordAttrs