Table of Contents

Class VoiceSeparatorOptions

Namespace
Celeritas.Core.Analysis
Assembly
Celeritas.dll

Options for voice separation algorithm.

public sealed class VoiceSeparatorOptions
Inheritance
VoiceSeparatorOptions
Inherited Members

Properties

AllowCrossings

Allow voice crossings. When true, the default, the notes of an onset go to whichever voices continue them most smoothly, so a line may enter or move above a voice listed before it. When false, the notes of an onset are kept in the voices' order, and an assignment that would put a note above the currently sounding pitch of a higher voice (or below a lower one's) pays a large soft penalty: crossings are avoided whenever an alternative assignment exists, but notes are never dropped.

public bool AllowCrossings { get; init; }

Property Value

bool

Remarks

The order of the notes within an onset used to be kept whatever this said, so with crossings allowed a line entering above an active voice still displaced it.

LargeJumpPenalty

Penalty for jumps larger than MaxMelodicInterval.

public int LargeJumpPenalty { get; init; }

Property Value

int

MaxMelodicInterval

Maximum melodic interval before penalty (semitones). A voice continues through any interval up to this one rather than a new voice opening; beyond it the leap is penalised and, while a voice is free, the note opens a new one.

public int MaxMelodicInterval { get; init; }

Property Value

int

PreferStepwise

Prefer stepwise motion: melodic motion beyond a whole step (2 semitones) within a voice incurs a superlinear extra cost, so of two readings of the same notes the one with the smaller leaps wins — two voices leaping a sixth in parallel rather than one stepping while the other leaps over it.

public bool PreferStepwise { get; init; }

Property Value

bool