Celeritas
Celeritas is a fast, correct, symbolic-music engine for .NET: chord and key analysis, progression and modulation analysis, melody harmonization, voice leading, orchestration, ornamentation, figured bass, and MIDI and MusicXML import/export — built on an exact rational time model and SIMD-accelerated hot paths.
Note
This site is generated from the source XML documentation. Every public type and member is documented, and the build gates on it.
Where to start
- Getting started — from an empty project to your first analysis, in a few minutes.
- 10-minute tour — a guided pass through chords, keys, modes, progressions, voice leading, and MIDI.
- Python quickstart — the same engine from Python, via ctypes or pythonnet.
- Concepts — the ideas the API is built on: the
whole-note time model,
NoteBufferownership, SIMD dispatch, and enharmonic spelling. - Reading confidence values — why a confident key or
mode detection reads
0.2, not0.9. - Upgrading to 0.10 — what changed, and the fix, for code written against 0.9.x.
- API Reference — the full public surface, by namespace.
- Cookbook — task-oriented, copy-pasteable examples.
Core ideas
- Whole-note time. Offsets and durations are exact
Rationalfractions of a whole note — a quarter note is1/4, one 4/4 measure is1. No floating-point drift; comparisons and arithmetic are exact. - Pitches are MIDI numbers. Middle C is 60; pitch classes are 0–11.
- Analyzers return rich result types.
KeyProfiler,ProgressionAdvisor,FormAnalyzer,ModeLibrary, and the rest produce immutable result DTOs; you read them, you don't construct them. - Detection confidence is a margin, not a probability — it measures how far the best answer separates from the runner-up, so honest values are modest.
Install
dotnet add package Celeritas
Celeritas targets net10.0. Python bindings are published separately on PyPI.
License
Business Source License 1.1 — see the repository for the commercial-use terms and the Apache-2.0 conversion date.