subsequence.chord_graphs

Chord graph builders for different harmonic transition models.

Package Contents

class subsequence.chord_graphs.ChordGraph[source]

Bases: abc.ABC

Abstract base for chord transition graphs.

abstractmethod build(key_name: str) Tuple[subsequence.weighted_graph.WeightedGraph[subsequence.chords.Chord], subsequence.chords.Chord][source]

Build the weighted graph and return it with the tonic chord.

abstractmethod gravity_sets(key_name: str) Tuple[Set[subsequence.chords.Chord], Set[subsequence.chords.Chord]][source]

Return (diatonic_set, functional_set) for key gravity weighting.

subsequence.chord_graphs.build_diatonic_chords(scale_pcs: List[int], degree_qualities: List[str]) List[subsequence.chords.Chord][source]

Build chords for each scale degree.

Parameters:
  • scale_pcs – Pitch class for each degree (e.g., from scale_pitch_classes(key_pc, mode))

  • degree_qualities – Chord quality for each degree (e.g., ["major", "minor", ...])

Returns:

List of Chord objects, one per scale degree

subsequence.chord_graphs.validate_key_name(key_name: str) int[source]

Validate a key name and return its pitch class.

Raises ValueError if the key name is not recognised.

Parameters:

key_name – Note name (e.g., "C", "F#", "Bb")

Returns:

Pitch class integer (0-11)