Table of Contents

Class MelodyHarmonizer

Namespace
Celeritas.Core.Harmonization
Assembly
Celeritas.dll

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

public sealed class MelodyHarmonizer
Inheritance
MelodyHarmonizer
Inherited Members

Remarks

Create a harmonizer with custom strategies.

Constructors

MelodyHarmonizer()

Create a harmonizer with default strategies.

public MelodyHarmonizer()

MelodyHarmonizer(IChordCandidateProvider, ITransitionScorer, IMelodyFitScorer, IHarmonicRhythmStrategy)

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

public MelodyHarmonizer(IChordCandidateProvider candidateProvider, ITransitionScorer transitionScorer, IMelodyFitScorer fitScorer, IHarmonicRhythmStrategy rhythmStrategy)

Parameters

candidateProvider IChordCandidateProvider
transitionScorer ITransitionScorer
fitScorer IMelodyFitScorer
rhythmStrategy IHarmonicRhythmStrategy

Remarks

Create a harmonizer with custom strategies.

Methods

Harmonize(NoteBuffer)

Harmonize from a NoteBuffer.

public HarmonizationResult Harmonize(NoteBuffer buffer)

Parameters

buffer NoteBuffer

Returns

HarmonizationResult

Exceptions

ArgumentNullException

buffer is null.

Harmonize(NoteBuffer, KeySignature)

public HarmonizationResult Harmonize(NoteBuffer buffer, KeySignature key)

Parameters

buffer NoteBuffer
key KeySignature

Returns

HarmonizationResult

Exceptions

ArgumentNullException

buffer is null.

Harmonize(NoteEvent[])

Harmonize from a NoteEvent array (convenience overload).

public HarmonizationResult Harmonize(NoteEvent[] melody)

Parameters

melody NoteEvent[]

Returns

HarmonizationResult

Exceptions

ArgumentNullException

melody is null.

Harmonize(NoteEvent[], KeySignature)

Harmonize from a NoteEvent array with a specified key (convenience overload).

public HarmonizationResult Harmonize(NoteEvent[] melody, KeySignature key)

Parameters

melody NoteEvent[]
key KeySignature

Returns

HarmonizationResult

Exceptions

ArgumentNullException

melody is null.

Harmonize(ReadOnlySpan<NoteEvent>)

Harmonize a melody, automatically detecting the key.

public HarmonizationResult Harmonize(ReadOnlySpan<NoteEvent> melody)

Parameters

melody ReadOnlySpan<NoteEvent>

Returns

HarmonizationResult

Harmonize(ReadOnlySpan<NoteEvent>, KeySignature)

Harmonize a melody in a specified key.

public HarmonizationResult Harmonize(ReadOnlySpan<NoteEvent> melody, KeySignature key)

Parameters

melody ReadOnlySpan<NoteEvent>
key KeySignature

Returns

HarmonizationResult