Table of Contents

Namespace Celeritas.Core.Harmonization

Classes

DefaultChordCandidateProvider

Default provider: generates diatonic chords that contain the melody note.

DefaultHarmonicRhythmStrategy

Default strategy: one chord per beat (or per note if longer than a beat).

DefaultTransitionScorer

Default scorer: prefers functional progressions and smooth bass motion.

HarmonizationContext

Context passed between harmonization steps.

HarmonizationResult

Result of melody harmonization.

MelodyHarmonizer

Harmonizes melodies using dynamic programming (Viterbi-style). Fully extensible via strategy interfaces.

Structs

ChordAssignment

A chord assigned to a specific time slice.

ChordCandidate

A chord candidate with an associated base cost. Lower cost = more likely to be chosen.

MelodySlice

A slice of melody notes that will receive one chord.

Interfaces

IChordCandidateProvider

Provides chord candidates for a given melody slice. Implement this interface to customize how chords are generated.

IHarmonicRhythmStrategy

Determines where chord changes occur (harmonic rhythm). Implement this to customize chord change placement.

IMelodyFitScorer

Scores how well a chord fits the melody at a given moment.

ITransitionScorer

Scores transitions between chords. Implement this to customize harmonic preferences (voice leading, function, etc.).