mirror of
https://github.com/kennethreitz/pytheory.git
synced 2026-07-21 18:19:30 +00:00
3c1fb15cc1
Fingering.tab(), Fretboard.tab(), and the `pytheory fingering` CLI rendered tablature inverted — low E on top, high e on the bottom — because they followed the fretboard's low-to-high data orientation instead of the fixed tab convention. ASCII tab has one universal rule: the highest-pitched string goes on top. All three now render high-e-on-top regardless of the board's high_to_low setting, matching Part.to_tab() which was already correct. The data model (positions, string_names, repr) is unchanged — only the rendered tab flips. SVG chord diagrams were already correct. Same "a render path honored only part of the convention" class as the recent audio/notation fixes. Docs, README, and the guitar skill examples updated to the corrected orientation. New tests: high-e-on-top ordering, orientation-independence across high_to_low boards, and parity between Fretboard.tab()/NamedChord.tab(). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
57 lines
1.5 KiB
TOML
57 lines
1.5 KiB
TOML
[project]
|
|
name = "pytheory"
|
|
version = "0.57.9"
|
|
description = "Music Theory for Humans"
|
|
readme = "README.md"
|
|
license = "MIT"
|
|
requires-python = ">=3.10"
|
|
authors = [
|
|
{ name = "Kenneth Reitz", email = "me@kennethreitz.org" },
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Education",
|
|
"Topic :: Multimedia :: Sound/Audio",
|
|
"Topic :: Multimedia :: Sound/Audio :: Analysis",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
]
|
|
dependencies = [
|
|
"sounddevice",
|
|
"scipy",
|
|
"rich>=14.3.3",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
live = ["python-rtmidi"]
|
|
link = ["LinkPython-extern"]
|
|
diagrams = ["cairosvg"] # PNG rasterization of SVG fretboard diagrams
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/kennethreitz/pytheory"
|
|
Documentation = "https://pytheory.org"
|
|
Repository = "https://github.com/kennethreitz/pytheory"
|
|
Issues = "https://github.com/kennethreitz/pytheory/issues"
|
|
|
|
[project.scripts]
|
|
pytheory = "pytheory.cli:main"
|
|
|
|
[dependency-groups]
|
|
dev = ["pytest", "LinkPython-extern"]
|
|
docs = ["sphinx", "myst-parser", "sphinx-design", "sphinx-copybutton"]
|
|
|
|
[build-system]
|
|
requires = ["setuptools"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
markers = ["slow: marks tests as slow (deselect with '-m \"not slow\"')"]
|
|
|
|
[tool.setuptools]
|
|
packages = ["pytheory"]
|