Table of Contents

Namespace Celeritas.Core

Namespaces

Celeritas.Core.Accompaniment
Celeritas.Core.Analysis
Celeritas.Core.FiguredBass
Celeritas.Core.Grammar
Celeritas.Core.Harmonization
Celeritas.Core.Midi
Celeritas.Core.Notation
Celeritas.Core.Orchestration
Celeritas.Core.Ornamentation
Celeritas.Core.Simd
Celeritas.Core.VoiceLeading

Classes

ChordAnalyzer

Identifies chords from sets of pitches, and computes 12-bit pitch-class masks (bit n set means pitch class n is present).

ChordLibrary

Lookup table mapping 12-bit pitch-class masks to recognized chords.

CircleOfFifths

Utilities for the circle of fifths/fourths.

Note: this is pitch-class based (12-TET). Enharmonic spellings are controlled only by preferSharps (no E#/Cb style spellings).

DynamicsDirective

Dynamics marking (volume/intensity: pp, mf, ff, cresc, dim). Examples: "@dynamics pp", "@cresc to ff", "@dim to p"

FunctionalProgressions

Functional-harmony progressions (diatonic by default). Includes circle-of-fifths (descending fifths) chains and common cadential patterns.

KeyAnalyzer

Functional harmony analyzer using bitwise operations for performance

MusicMath

Bulk pitch/velocity/timing operations over a NoteBuffer, plus MIDI note-name conversions. Timing is in whole-note units.

MusicNotation

Parser for musical notation (scientific pitch notation) Supports: C4, D#5, Bb3, etc.

NotationDirective

Base type for notation directives (tempo, section, part markers, etc.). Directives don't produce sound - they annotate the musical timeline.

NoteArithmeticExtensions

Extension members for note and pitch arithmetic on MIDI pitch integers and notation strings.

NoteBuffer

A fixed-capacity, native-memory buffer of notes stored as a structure of arrays (pitch, offset, duration, velocity). Offsets and durations are in whole-note units. Must be disposed to release the unmanaged allocation.

ParseResult

Result of parsing music notation.

PartDirective

Part/voice assignment marker (for multi-part scores). Examples: @part soprano, @part "Violin I", @part "Bass". A capitalised name is quoted; @part Bass would be read as the pitch B.

SectionDirective

Section/form boundary marker (A, B, Verse, Chorus, Bridge, Coda, etc.). Examples: @section "A", @section "Verse 1", @section "Chorus", @section intro. Section letters are quoted because A-G are pitch names and b is a flat.

TempoBpmDirective

BPM (beats per minute) directive with optional ramp/transition. Examples: @bpm 120, @bpm 120 -> 140 /2 (ramp from 120 to 140 across a half note), @bpm 120 -> 60 /1~/1 (ramp down across two whole notes).

TempoCharacterDirective

Musical tempo marking (character/style: Presto, Vivace, Allegro, etc.). Examples: @tempo presto, @tempo "Presto", @tempo "Allegro con brio". A value goes unquoted only when it is a lowercase word the notation has not already reserved, so anything with a capital, a digit or a space is quoted.

Structs

ChordInfo

Compact chord info (8 bytes instead of 24+ for class)

ChromaticInterval

Chromatic interval measured in semitones. Can be negative (descending) or larger than an octave (compound).

FunctionalChord

A diatonic functional chord described by roman numeral + key.

KeySignature

Key signature with root and mode

NoteEvent

A single note event stored in a NoteBuffer.

Time convention: Offset and Duration are fractions of a WHOLE note — a quarter note is Rational.Quarter (1/4), one 4/4 measure is 1. This is the unit produced by MusicNotation.Parse and consumed by all analyzers and by MidiIo.

PitchClass

Pitch class in 12-TET: values 0..11 (C…B) with modulo-12 arithmetic.

Rational

High-performance rational number for precise musical time representation. Automatically normalizes to the lowest terms; the denominator is always positive.

default(Rational) is a valid zero (0/1). Comparisons are exact (128-bit cross-multiplication, no overflow). Arithmetic operators reduce intermediate values via GCD and throw OverflowException if the true result does not fit in a 64-bit numerator/denominator, instead of silently wrapping.

RomanNumeralChord

Result of roman numeral analysis

SecondaryDominant

Secondary dominant chord (V or V7) targeting a diatonic degree. This is intentionally modeled as chromatic (non-diatonic) harmony.

SpnNote

Musical note in scientific pitch notation (pitch class + octave). Backed by MIDI semantics: C-1 = 0, C4 = 60.

TimeSignature

Time signature / meter.

Enums

ChordQuality

Recognized chord qualities.

CircleDirection

Direction of travel around the circle of fifths.

DiatonicChordType

Whether a diatonic chord is built as a triad or a seventh chord.

DynamicsType

Type of dynamics directive.

HarmonicFunction

Harmonic function of a chord

MinorDominantStyle

How the dominant (degree V) is treated in a minor key.

ScaleDegree

Scale degree in roman numeral notation