Commit Graph

21 Commits

Author SHA1 Message Date
kennethreitz 866b110afa Sync all summary pages with current feature set
index.rst: add figured bass, pitch class sets, scale recommendation,
stereo, detune, pan/spread, master compressor, REPL
quickstart.rst: same updates to "What's in the Box"
README.md: add stereo, sidechain, compressor, repl, forte numbers
drums.rst: document stereo drum panning
playback.rst: document stereo output and master compressor
cli.rst: add REPL section with cross-reference

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 07:29:12 -04:00
kennethreitz 094887c849 v0.25.1: pytheory demo command, README rewrite
- `pytheory demo` plays a randomly generated track (6 moods, different every time)
- README rewritten to showcase full feature set: composition, effects, drums,
  sidechain, automation, MIDI export, AI collaboration

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 15:28:42 -04:00
kennethreitz b3110c6e0e Fix TODOs, add WAV export, CLI tests, and play module tests
Play module:
- Add save() for WAV file export
- Add _render() to separate rendering from playback
- Expand play() docstring with args and examples
- Add comments to SAMPLE_RATE/SAMPLE_PEAK constants
- Remove orphaned comment at EOF

Code cleanup:
- Remove 3 TODO comments (_statics.py, systems.py, scales.py)
- Remove commented-out incomplete scale definitions
- Fix silent return in TonedScale.get() to explicit return None

Tests (15 new):
- CLI: tone, scale, chord, key, fingering, progression, detect commands
- Play: _render for tones and chords, all synth engines, WAV save

README:
- Add CLI section with usage examples
- Mention WAV export in audio and features sections

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 20:39:12 -04:00
kennethreitz d23de92713 Update docs to use newer APIs (Key, Fingering, convenience constructors)
- Circle of fifths: use tone.circle_of_fifths() instead of manual loop
- Fingerings: show labeled Fingering class with string names, identify()
- Chords: document from_tones(), from_name(), from_intervals(), from_midi_message()
- Scales: add Key class, Key.detect(), Key.progression(), nashville()
- Playback: simplify examples with Chord.from_name()
- README: add Keys section, update fingering output format
- Quickstart: add chord identification from fret positions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 19:57:06 -04:00
kennethreitz 875f281633 Accept string system names in TonedScale and Key
TonedScale(tonic="Sa4", system="indian") now works — no need to
import SYSTEMS. Same for Key("C", "major", system="blues").

Updated README and all docs to use the cleaner string syntax,
removing 'from pytheory.systems import SYSTEMS' boilerplate.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 07:18:35 -04:00
kennethreitz 240d2564a4 Remove logo from README
Removed logo image from README.
2026-03-22 07:03:41 -04:00
kennethreitz c6e3f56136 Add Key class, Note alias, rewrite README
Key class — the friendliest entry point for music theory:
  Key("C", "major").chords → all diatonic triads
  Key("C", "major").seventh_chords → all diatonic 7th chords
  Key("C", "major").progression("I", "V", "vi", "IV")
  Key("C", "major").relative → Key("A", "minor")
  Key("C", "major").parallel → Key("C", "minor")

Note = Tone alias for discoverability.

README rewritten to showcase the full API:
  tones, scales, diatonic harmony, chord analysis,
  6 systems, 25 instruments, audio playback,
  comprehensive feature list.

381 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 07:00:22 -04:00
kennethreitz c3f9e98332 Add chord identification, voice leading, harmonic analysis, tension, overtones
New features:
- Chord.identify(): name any chord (17 patterns — triads, 7ths, 9ths, sus, power)
- Chord.voice_leading(other): find smoothest voice motion between chords
- Chord.analyze(key): Roman numeral analysis (I, ii, V7, etc.)
- Chord.tension: score with tritone count, dominant function detection
- Tone.overtones(n): harmonic series frequencies

Also:
- Rewrite README with all current features and docs link
- Add all new features to chords guide with music theory context
- Remove logo from docs sidebar
- 296 tests passing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 06:25:31 -04:00
kennethreitz 39aa185f19 Merge pull request #27 from monovon/patch-1
Fix: minor language mistake
2022-07-10 09:39:19 -04:00
Artur Barseghyan 095e9fe477 Correct link to the gist
Correct link to the gist to generate charts for all known chords
2021-05-29 00:52:59 +02:00
monovon c107f29fdb Fix: minor language mistake 2021-01-13 15:31:36 +03:00
Özcan Yarımdunya ca6dcb2f03 Fix issue #23 2019-04-23 23:57:47 +03:00
kennethreitz b392a73253 readme 2018-09-06 09:23:49 -04:00
kennethreitz 609b37a8c5 improvements 2018-09-06 08:46:26 -04:00
kennethreitz 4850131ffc readme 2018-09-06 08:05:50 -04:00
kennethreitz e527f9e401 iteration 2018-09-03 04:29:53 -04:00
kennethreitz a80d57585f better way for referencing scales 2018-09-02 04:26:41 -04:00
kennethreitz ff28886370 sp 2018-09-02 04:21:14 -04:00
kennethreitz bf78ea0cd7 logo 2018-09-02 04:19:51 -04:00
kennethreitz 55f6481937 cleanup readme 2018-08-29 07:05:16 -04:00
kennethreitz 6cea1be5d3 readme 2018-08-29 07:04:15 -04:00