Class FiguredBassRealizer
- Namespace
- Celeritas.Core.FiguredBass
- Assembly
- Celeritas.dll
Realizes figured bass notation into actual chord voicings
public sealed class FiguredBassRealizer
- Inheritance
-
FiguredBassRealizer
- Inherited Members
Constructors
FiguredBassRealizer(FiguredBassOptions?)
Creates a realizer with the given options, or defaults when options is null.
public FiguredBassRealizer(FiguredBassOptions? options = null)
Parameters
optionsFiguredBassOptions
FiguredBassRealizer(FiguredBassRealizerOptions)
Creates a realizer with extended realizer options (voice crossing, movement limits).
public FiguredBassRealizer(FiguredBassRealizerOptions options)
Parameters
optionsFiguredBassRealizerOptions
Exceptions
- ArgumentNullException
optionsis null.
Methods
ParseAccidentals(string)
Parse accidentals from figured bass string (e.g., "#3", "b7", "#3/#5"), keyed by the figure each one alters.
public static Dictionary<int, char> ParseAccidentals(string figuresStr)
Parameters
figuresStrstring
Returns
Remarks
Reads the same tokens ParseFigures(string) does. Before that, an accidental was recognised only immediately in front of a single digit: "6#" and "6+" — the postfix forms older editions use — were silently dropped, "b10" put its flat on a figure 1 that does not exist and left the tenth natural, and a bare "#", which every figured-bass reader knows as a raised third, altered nothing. Each of those realized as a chord the figures did not ask for, with no error to say so.
Exceptions
- ArgumentNullException
figuresStris null.
ParseFigures(string)
Parse figured bass notation string (e.g., "6", "7", "6/5", "#3/#5").
public static int[] ParseFigures(string figuresStr)
Parameters
figuresStrstring
Returns
- int[]
Remarks
Figures are separated by a slash, a comma, a dash or whitespace — the ways a stack of figures gets written on one line — so "6/4", "6 4", "6-4" and "6,4" are all a six-four. An accidental may precede its figure ("#6"), follow it ("6#"), or be written as a trailing plus for a sharp ("6+"), and a figure may run to two digits ("b10"). An accidental with no figure at all ("#") is the figured-bass convention for the third, and reads as "#3". The accidentals are read by ParseAccidentals(string) from the same tokens, so the two methods cannot disagree about which figure an accidental belongs to.
Exceptions
- ArgumentNullException
figuresStris null.
Realize(FiguredBassSymbol[])
Realize a sequence of figured bass symbols into chord voicings
public NoteEvent[] Realize(FiguredBassSymbol[] symbols)
Parameters
symbolsFiguredBassSymbol[]
Returns
Exceptions
- ArgumentNullException
symbolsis null.
RealizeSymbol(FiguredBassSymbol)
Realize a single figured bass symbol
public NoteEvent[] RealizeSymbol(FiguredBassSymbol symbol)
Parameters
symbolFiguredBassSymbol
Returns
Exceptions
- ArgumentNullException
symbolis null.