Go library providing music theory models for notes, scales, chords, and keys with a command-line utility.
Music Theory is a Go library that provides programmable models for core music theory concepts including notes, scales, chords, and keys. It solves the problem of integrating music theory into software applications by offering a structured API to generate and analyze musical structures. The library includes a command-line utility for interactive exploration of its capabilities.
Go developers building music-related applications such as music generators, educational tools, audio analysis software, or digital audio workstations (DAWs).
Developers choose Music Theory for its clean, idiomatic Go implementation of music theory concepts, extensive support for chord and scale rules, and practical CLI demo tool. It's specifically designed for programmatic music manipulation rather than just theoretical reference.
Go models of Note, Scale, Chord and Key
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports over 30 chord-building rules and multiple scales including modes like Dorian and Phrygian, as listed in the CLI output for 'music-theory chords' and 'music-theory scales'.
Designed with Go's philosophy for a structured and programmable interface, evidenced by the well-organized packages for Note, Key, Chord, and Scale with GoDoc integration.
Includes a command-line tool that allows interactive calculation of chords, scales, and keys, making it easy to test and explore concepts without writing code, as shown in the usage examples.
Features GoDoc badges and CI workflows with coverage reports, indicating maintained, tested code that developers can rely on for API reference.
Focuses solely on theoretical models without built-in capabilities for audio playback or MIDI communication, limiting its use in music production or real-time applications.
Only covers standard Western scales and chords, with no mention of microtonal or non-Western musical systems, which may restrict its applicability for diverse musical projects.
Uses a Makefile for installation ('make install'), which might be less straightforward for developers accustomed to standard Go tooling like 'go install' or module management.