mirror of
https://github.com/kennethreitz/pytheory.git
synced 2026-06-21 15:00:57 +00:00
f61661ab3e
pytheory tune --chords names the chord you're strumming: browser page, terminal line, and SSE/WebSocket stream (chord/chord_notes/ chord_confidence fields). Behind it, audio.identify_chord() — a chromagram with harmonic discounting (3rd/5th/7th-partial spill is subtracted per pitch class so bright triads stop reading as maj7), a polyphony gate that rejects single notes, and template matching on all twelve roots. Calibrated by grid search against rendered guitar/piano/rhodes chords: 93% on an 81-case battery. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
55 lines
1.4 KiB
TOML
55 lines
1.4 KiB
TOML
[project]
|
|
name = "pytheory"
|
|
version = "0.50.0"
|
|
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"]
|
|
|
|
[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"]
|
|
|
|
[build-system]
|
|
requires = ["setuptools"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.pytest.ini_options]
|
|
markers = ["slow: marks tests as slow (deselect with '-m \"not slow\"')"]
|
|
|
|
[tool.setuptools]
|
|
packages = ["pytheory"]
|