saavy_music 0.4.0 copy "saavy_music: ^0.4.0" to clipboard
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 and collection 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 and ScaleMode (including octave 12 endpoint)
  • fix: Chord constructor now defensively copies intervals before sorting to preserve immutability and avoid errors when inverting chords
  • maintenance: switched from freezed_annotation to meta 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 and dart 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 so KeySignature.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
1
likes
150
points
123
downloads

Publisher

unverified uploader

Weekly Downloads

An opinionated, compositional, and immutable music theory library for Dart, designed for developers who think about harmony in terms of shapes and relationships.

Repository (GitHub)
View/report issues
Contributing

Topics

#music-theory #ear-training #music #composition #harmony

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

collection, meta

More

Packages that depend on saavy_music