A JavaScript utility library for working with musical notes, frequencies, intervals, and chords.
Octavian is a JavaScript utility library that provides tools for working with musical notes, frequencies, intervals, and chords. It solves the problem of programmatically handling music theory concepts by offering an API to create notes, calculate frequencies, build chords, and perform interval operations.
Developers building music applications, educational tools, audio software, or any project requiring programmatic music theory calculations.
Developers choose Octavian for its simplicity, accuracy in music theory calculations, and comprehensive feature set for note and chord manipulation without external dependencies.
Utilities for reasoning about musical notes, frequencies, and intervals
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Instantly creates note objects from strings like 'A#4' with accessible properties such as frequency and piano key number, as demonstrated in the README's basic usage examples.
Intelligently normalizes invalid notes like 'E#' to 'F', ensuring musical accuracy without manual input validation, which simplifies error handling.
Includes dedicated methods for all common intervals, from minorSecond to perfectOctave, allowing easy transposition and chord construction without complex calculations.
Supports multiple chord types and aliases, such as 'major' or 'm7b5', with straightforward API calls to generate notes, frequencies, and piano keys from root notes.
Focuses solely on notes and chords, lacking features for scales, rhythms, or advanced theory concepts, which restricts its use in comprehensive music applications.
Purely a theoretical library with no built-in support for audio playback, synthesis, or MIDI, requiring additional tools for any sound-related functionality.
The README is informal and lacks depth, with no detailed API reference or extensive examples, which may hinder learning and troubleshooting for complex use cases.