Enaxos.MusicTheory 1.2.5

dotnet add package Enaxos.MusicTheory --version 1.2.5
                    
NuGet\Install-Package Enaxos.MusicTheory -Version 1.2.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Enaxos.MusicTheory" Version="1.2.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Enaxos.MusicTheory" Version="1.2.5" />
                    
Directory.Packages.props
<PackageReference Include="Enaxos.MusicTheory" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Enaxos.MusicTheory --version 1.2.5
                    
#r "nuget: Enaxos.MusicTheory, 1.2.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Enaxos.MusicTheory@1.2.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Enaxos.MusicTheory&version=1.2.5
                    
Install as a Cake Addin
#tool nuget:?package=Enaxos.MusicTheory&version=1.2.5
                    
Install as a Cake Tool

Enaxos MusicTheory

Version française

An independent .NET 8 library for representing and analyzing music theory concepts while preserving note spelling.

Current version: 1.2.0.

This project is a clean-room rewrite. Its behavior is defined by the domain specification and the public API proposal. The process and independent references used by the implementation are recorded in PROVENANCE.md.

Features

  • notes, pitches, accidentals, and enharmonic equivalence;
  • intervals and transpositions that preserve diatonic spelling;
  • scales, modes, and pentatonic scales;
  • keys, key signatures, and harmonic functions;
  • chords, inversions, and chord or scale recognition;
  • the circle of fifths and presentation geometry;
  • twelve-tone equal temperament and MIDI conversion;
  • French or American music formatting.

Requirements

  • .NET 8 SDK;
  • the SDK version selected by the repository is specified in global.json.

Build and Test

dotnet build Enaxos.MusicTheory.sln --configuration Release
dotnet test Enaxos.MusicTheory.sln --no-build --configuration Release

Example

using Enaxos.MusicTheory.Harmony;
using Enaxos.MusicTheory.Midi;
using Enaxos.MusicTheory.Primitives;
using Enaxos.MusicTheory.Scales;
using Enaxos.MusicTheory.Tuning;

var tonic = SpelledPitch.Parse("C");
var scale = Scale.Create(tonic, StandardScales.Major);
var chord = Chord.Create(tonic, StandardChords.MajorSeventh);

var concertA = Note.Parse("A4");
var frequency = new EqualTemperament12().GetFrequency(concertA); // 440 Hz
var midiNumber = MidiNote.ToNumber(concertA);                    // 69

Console.WriteLine(string.Join(", ", scale.Pitches));
Console.WriteLine(string.Join(", ", chord.Pitches));

Repository Structure

  • src/Enaxos.MusicTheory: library with no third-party runtime dependencies;
  • tests/Enaxos.MusicTheory.Tests: behavior tests;
  • docs/: normative project documents.

License

This repository is public, but its code is not open source. Private use is permitted without restriction. Commercial use and any modification require the author's prior written permission. Redistribution also requires permission.

See LICENSE.MD for the complete terms.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.5 143 7/17/2026
1.2.0 121 7/5/2026

Release 1.2.5.