Version history for the Harmonex project

v0.6.0, Thu 7/20/2017

  • Enhance Pitch to let it represent both pitch classes and pitches by adding a new field octave, adding new functions .octave/1, .class?, and .class/1, and reworking all functions to understand pitch classes and pitches
  • Alter Interval to disallow negative sizes
  • Implement Pitch.compare/2 and Interval.compare/2
  • Implement Interval.simple?/1 and .simplify/1
  • Enhance documentation by introducing additional types

v0.5.0, Sat 6/17/2017

  • Implement Interval.semitones/1 and .simplify/1
  • Rename Pitch.alteration/1 to .accidental/1
  • Rename Pitch.bare_name/1 to .natural_name/1
  • Rename Pitch.full_name/1 to .name/1
  • Enhance documentation by introducing more granular types and better documenting existing ones

v0.4.0, Mon 5/22/2017

  • Extract Interval and reimplement Pitch.interval_diatonic/2 as Interval.between_pitches/2 and Pitch.interval/2

v0.3.0, Sun 5/14/2017

  • Implement error handling in all Pitch functions

v0.2.0, Tue 5/09/2017

  • Add Pitch.enharmonics/1 and add :doubly_diminished and :doubly_augmented to the Pitch.quality type

v0.1.0, Tue 5/09/2017

(First release)