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.).