saavy_music 0.4.0
saavy_music: ^0.4.0 copied to clipboard
An opinionated, compositional, and immutable music theory library for Dart, designed for developers who think about harmony in terms of shapes and relationships.
0.4.0 #
- new: added
KeySignature.getDiatonicTriad(ScaleDegree)to return the diatonic triad quality at a given scale degree - new: added
KeySignature.getDiatonicSeventh(ScaleDegree)to return the diatonic seventh chord quality at a given scale degree - new: added
KeySignature.isDiatonic(ScaleDegree, ChordRecipe)to validate if a chord is diatonic at a specific degree - refactor: replaced hardcoded diatonic chord lookup tables with algorithmic derivation from modal interval patterns
- refactor: mode semitone offsets now computed dynamically from rotated major scale pattern instead of hardcoded
- improvement: more extensible architecture enables future support for non-diatonic scales (pentatonic, octatonic, etc.)
- tests: added 13 new tests covering diatonic chord derivation across all church modes
0.3.2 #
- compat: relaxed Dart SDK constraint to support all 3.x releases (
>=3.0.0 <4.0.0) - compat: broadened
metaandcollectiondependency ranges to cover wider 1.x compatibility
0.3.1 #
- docs: rewrote
README.mdto a neutral, concise tone; removed emojis/marketing language
0.3.0 #
- new: added
ChordRecipes.minorEleventh(m11) chord recipe - fix: corrected modal scale factories in
lib/src/theory/scale.dart(dorian, phrygian, lydian, mixolydian, locrian) to match standard semitone patterns andScaleMode(including octave12endpoint) - fix:
Chordconstructor now defensively copiesintervalsbefore sorting to preserve immutability and avoid errors when inverting chords - maintenance: switched from
freezed_annotationtometafor@immutableand removed the unused dependency - docs: updated examples to use
ChordRecipes.minorEleventhand clarified advanced harmony section - tests: added unit tests for scales, notes, intervals, and chords to prevent regressions (modes, naming, inversions)
- ci: added github actions workflow to run
dart analyzeanddart teston push/pr
note: correcting modal intervals may change behavior if you relied on the previous incorrect values.
0.2.0 #
- Added
KeyAwareNotesupport soKeySignature.resolveDegreereturns notes spelled correctly for the active key/mode, including double accidentals - Fixed octave handling for altered scale degrees so sevenths and accidentals stay in their intended register
- Improved documentation with examples for key-aware enharmonic spelling and clarified feature list
0.1.0 #
- Initial release of saavy_music
- Core music theory models: Note, Interval, Chord, ChordRecipe, KeySignature
- Compositional chord system with TriadQuality and ChordExtension
- Comprehensive set of pre-defined chord recipes (triads, sevenths, extensions)
- MIDI integration with frequency calculation
- Scale degree resolution within key signatures
- Support for chord inversions
- Full test coverage
- Educational focus for ear training applications