Class OrchestrationMapper
- Namespace
- Celeritas.Core.Orchestration
- Assembly
- Celeritas.dll
Maps engine-native notes to simple orchestrated parts and constrains pitches to ranges.
public static class OrchestrationMapper
- Inheritance
-
OrchestrationMapper
- Inherited Members
Methods
Map(NoteEvent[], OrchestrationOptions?)
Splits notes into a bass part and a harmony part at
SplitPitch and shifts each note by octaves into its
part's range. Rests are silence and are scored for neither part.
public static OrchestrationResult Map(NoteEvent[] notes, OrchestrationOptions? options = null)
Parameters
notesNoteEvent[]The notes to orchestrate; rests are skipped.
optionsOrchestrationOptions?The split point and the two part definitions; Default when null.
Returns
- OrchestrationResult
The bass and harmony parts, each carrying the definition it was mapped with.
Remarks
The slot decides, not the kind. A note below SplitPitch goes to Bass and every other note to Harmony, whatever Kind either definition carries; the definitions are copied onto the result unchanged, so each OrchestratedPart reports the kind and name it was given. Swapping the two kinds moves no note. The mapper has always worked this way; it had not said so, and the kind read as though it were consulted.
Exceptions
- ArgumentNullException
notesis null.