Enaxos.MusicTheory
1.2.5
dotnet add package Enaxos.MusicTheory --version 1.2.5
NuGet\Install-Package Enaxos.MusicTheory -Version 1.2.5
<PackageReference Include="Enaxos.MusicTheory" Version="1.2.5" />
<PackageVersion Include="Enaxos.MusicTheory" Version="1.2.5" />
<PackageReference Include="Enaxos.MusicTheory" />
paket add Enaxos.MusicTheory --version 1.2.5
#r "nuget: Enaxos.MusicTheory, 1.2.5"
#:package Enaxos.MusicTheory@1.2.5
#addin nuget:?package=Enaxos.MusicTheory&version=1.2.5
#tool nuget:?package=Enaxos.MusicTheory&version=1.2.5
Enaxos MusicTheory
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 | Versions 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. |
-
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.
Release 1.2.5.