Skip to main content

A music theory library, for humans.

Project description

PyTheory: Music Theory for Humans

This (work in progress) library attempt to make exploring music theory approachable to humans.


PyTheory is a music theory library, which procedurally generates all known Western tones, scales, and chord fingering charts (for custom fretboards).

It is capable of outputting either a rounded decimal for pitch representation, or the proper symbolic representation of the pitch (as a SymPy object).

True Scale -> Pitch Evaluation

>>> from pytheory import TonedScale

>>> c_minor = TonedScale(tonic='C4')['minor']

>>> c_minor
<Scale I=C4 II=D4 III=Eb4 IV=F4 V=G4 VI=Ab4 VII=Bb5 VIII=C5>

>>> c_minor[0].pitch()

>>> c_minor["I"].pitch(symbolic=True)

>>> c_minor["tonic"].pitch(temperament='pythagorean', symbolic=True)

Audibly play a note (or chord)

>>> from pytheory import play
play(c_minor[0], t=1_000)

Chord Fingerings for Custom Tunings

>>> from pytheory import Tone, Fretboard, CHARTS

>>> tones = (
...     Tone.from_string("F2"),
...     Tone.from_string("C3"),
...     Tone.from_string("G3"),
...     Tone.from_string("D4"),
...     Tone.from_string("A5"),
...     Tone.from_string("E5")
... )

>>> fretboard = Fretboard(tones=tones)
>>> c_chord = CHARTS['western']["C"]

>>> print(c_chord.fingering(fretboard=fretboard))
(0, 0, 0, 3, 3, 3)

It can also generate charts for all known chords for any instrument (accuracy to be determined!).


Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pytheory, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size pytheory-0.1.2-py2.py3-none-any.whl (10.4 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size pytheory-0.1.2.tar.gz (10.4 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page