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
meta
andcollection
dependency ranges to cover wider 1.x compatibility
0.3.1 #
- docs: rewrote
README.md
to 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 octave12
endpoint) - fix:
Chord
constructor now defensively copiesintervals
before sorting to preserve immutability and avoid errors when inverting chords - maintenance: switched from
freezed_annotation
tometa
for@immutable
and removed the unused dependency - docs: updated examples to use
ChordRecipes.minorEleventh
and 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 analyze
anddart test
on push/pr
note: correcting modal intervals may change behavior if you relied on the previous incorrect values.
0.2.0 #
- Added
KeyAwareNote
support soKeySignature.resolveDegree
returns 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