Add changelog with retroactive history, include in docs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-25 04:20:50 -04:00
parent aa454ea7e9
commit 3b5a07dfce
3 changed files with 225 additions and 0 deletions
+102
View File
@@ -0,0 +1,102 @@
# Changelog
All notable changes to PyTheory are documented here.
## 0.8.3
- Add `Chord.symbol` property for standard shorthand notation (Cmaj7, Dm, G7, m7b5, etc.)
- Add `Key.common_progressions()` to realize all named progressions in a key
- Add CLI commands: `modes`, `circle`, `progressions`
## 0.8.2
- Use flat spellings in CHARTS `acceptable_tone_names` (e.g. Bbm now shows Bb/Db/F instead of A#/C#/F)
## 0.8.1
- Use musically correct flat spellings in flat keys (F major gives Bb, not A#)
## 0.8.0
- Add `Fretboard.scale_diagram()` for visual scale layouts on any instrument
- Add `play_progression()` for sequential chord playback with gaps
- Add cookbook documentation page with practical recipes
- Curated guitar fingering overrides for common open chords
- Fingering memoization with bounded cache, barre detection, 4-fret span constraint
- API ergonomics: `Fretboard.chord()`, convenience constructors, slow test markers
## 0.7.0
- Add `Fretboard.chord()` method for named chord lookups
- Improve fingering algorithm with better voicing selection
- Rewrite all documentation in REPL style with verified output
## 0.6.1
- Fix sawtooth and triangle wave generation
- Add WAV export via `save()`
- Add CLI tests and play module tests
- Skip play module tests when PortAudio is not available
## 0.6.0
- Support flat note names (Db, Bb, Eb, etc.) throughout the system
- Add `Fingering` class for labeled chord fingerings
- Add `pytheory play` CLI command for playing notes and chords
- Add 12 example scripts showcasing pytheory features
- Expand documentation with undocumented features and CLI guide
## 0.4.1
- Add `--temperament` flag to CLI tone command
- Add Symbolic Pitch section to tones docs
## 0.4.0
- Add key signatures, scale diagrams, chord building, and progression analysis
- Add CLI tool (`pytheory tone`, `pytheory chord`, `pytheory key`, etc.)
- Add Jupyter notebook tutorial
- Improve test coverage from 93% to 97% (476 tests)
- Add type hints, docstrings, and property caching throughout
## 0.3.2
- Add type hints and docstrings throughout the library
## 0.3.1
- Add capo support, chord merging (`+`), tritone substitution
- Add secondary dominants, Nashville number system
- Add more common progressions (blues, jazz, flamenco, modal)
## 0.3.0
- Add interval naming (`Tone.interval_to()`)
- Add MIDI conversion (`Tone.midi`, `Tone.from_midi()`)
- Add `Tone.from_frequency()`, `Tone.transpose()`
- Add `Chord.root`, `Chord.quality` properties
- Add `Chord.from_name()`, `Chord.from_intervals()`, `Chord.from_midi_message()`
- Add `Interval` constants (MINOR_THIRD, PERFECT_FIFTH, etc.)
- Add `PROGRESSIONS` dict with common named progressions
- Add `Tone.enharmonic` property
- Add inversions, harmonize, and Roman numeral progressions
- Add `Key` class with detection, signatures, relative/parallel keys
- Add `Scale.detect()` and `Chord.from_tones()` convenience constructors
- Add 25 instrument presets (mandolin family, violin family, banjo, harp, world instruments, keyboard)
- Add `Tone.circle_of_fifths()` and `Tone.circle_of_fourths()`
- Add chord identification (17 types), voice leading, tension scoring
- Add beat frequencies, Plomp-Levelt dissonance model, harmony scoring
## 0.2.0
- Add `Fretboard` class for guitar fretboards
- Add `play()` function with sine, sawtooth, and triangle wave synthesis
- Add chord harmony and dissonance calculations
- Modernize project structure (pyproject.toml, sounddevice)
## 0.1.0
- Initial release
- Western 12-tone system with tones, scales, and basic chord support
- Temperament support (equal, Pythagorean, meantone)
- Indian (Hindustani), Arabic, Japanese, Blues, and Gamelan systems
+117
View File
@@ -0,0 +1,117 @@
Changelog
=========
All notable changes to PyTheory are documented here.
0.8.3
-----
- Add ``Chord.symbol`` property for standard shorthand notation (Cmaj7, Dm, G7, m7b5, etc.)
- Add ``Key.common_progressions()`` to realize all named progressions in a key
- Add CLI commands: ``modes``, ``circle``, ``progressions``
0.8.2
-----
- Use flat spellings in CHARTS ``acceptable_tone_names`` (e.g. Bbm now shows Bb/Db/F instead of A#/C#/F)
0.8.1
-----
- Use musically correct flat spellings in flat keys (F major gives Bb, not A#)
0.8.0
-----
- Add ``Fretboard.scale_diagram()`` for visual scale layouts on any instrument
- Add ``play_progression()`` for sequential chord playback with gaps
- Add cookbook documentation page with practical recipes
- Curated guitar fingering overrides for common open chords
- Fingering memoization with bounded cache, barre detection, 4-fret span constraint
- API ergonomics: ``Fretboard.chord()``, convenience constructors, slow test markers
0.7.0
-----
- Add ``Fretboard.chord()`` method for named chord lookups
- Improve fingering algorithm with better voicing selection
- Rewrite all documentation in REPL style with verified output
0.6.1
-----
- Fix sawtooth and triangle wave generation
- Add WAV export via ``save()``
- Add CLI tests and play module tests
- Skip play module tests when PortAudio is not available
0.6.0
-----
- Support flat note names (Db, Bb, Eb, etc.) throughout the system
- Add ``Fingering`` class for labeled chord fingerings
- Add ``pytheory play`` CLI command for playing notes and chords
- Add 12 example scripts showcasing pytheory features
- Expand documentation with undocumented features and CLI guide
0.4.1
-----
- Add ``--temperament`` flag to CLI tone command
- Add Symbolic Pitch section to tones docs
0.4.0
-----
- Add key signatures, scale diagrams, chord building, and progression analysis
- Add CLI tool (``pytheory tone``, ``pytheory chord``, ``pytheory key``, etc.)
- Add Jupyter notebook tutorial
- Improve test coverage from 93% to 97% (476 tests)
- Add type hints, docstrings, and property caching throughout
0.3.2
-----
- Add type hints and docstrings throughout the library
0.3.1
-----
- Add capo support, chord merging (``+``), tritone substitution
- Add secondary dominants, Nashville number system
- Add more common progressions (blues, jazz, flamenco, modal)
0.3.0
-----
- Add interval naming (``Tone.interval_to()``)
- Add MIDI conversion (``Tone.midi``, ``Tone.from_midi()``)
- Add ``Tone.from_frequency()``, ``Tone.transpose()``
- Add ``Chord.root``, ``Chord.quality`` properties
- Add ``Chord.from_name()``, ``Chord.from_intervals()``, ``Chord.from_midi_message()``
- Add ``Interval`` constants (MINOR_THIRD, PERFECT_FIFTH, etc.)
- Add ``PROGRESSIONS`` dict with common named progressions
- Add ``Tone.enharmonic`` property
- Add inversions, harmonize, and Roman numeral progressions
- Add ``Key`` class with detection, signatures, relative/parallel keys
- Add ``Scale.detect()`` and ``Chord.from_tones()`` convenience constructors
- Add 25 instrument presets (mandolin family, violin family, banjo, harp, world instruments, keyboard)
- Add ``Tone.circle_of_fifths()`` and ``Tone.circle_of_fourths()``
- Add chord identification (17 types), voice leading, tension scoring
- Add beat frequencies, Plomp-Levelt dissonance model, harmony scoring
0.2.0
-----
- Add ``Fretboard`` class for guitar fretboards
- Add ``play()`` function with sine, sawtooth, and triangle wave synthesis
- Add chord harmony and dissonance calculations
- Modernize project structure (pyproject.toml, sounddevice)
0.1.0
-----
- Initial release
- Western 12-tone system with tones, scales, and basic chord support
- Temperament support (equal, Pythagorean, meantone)
- Indian (Hindustani), Arabic, Japanese, Blues, and Gamelan systems
+6
View File
@@ -100,3 +100,9 @@ It also works from the command line::
api/charts
api/play
api/systems
.. toctree::
:maxdepth: 1
:caption: Project
changelog