mirror of
https://github.com/kennethreitz/pytheory.git
synced 2026-06-05 23:00:20 +00:00
e1c2ef03d7
Every guide page rewritten with deep music theory content: - Tones: scientific pitch notation, frequency/pitch relationship, temperament history (equal/Pythagorean/meantone), interval table with song examples, circle of fifths - Scales: interval pattern construction, major/minor/harmonic minor theory, all 7 modes with character descriptions and song references, scale degree names and functions, diatonic harmony and common chord progressions (I-IV-V, I-V-vi-IV, ii-V-I) - Chords: triad and seventh chord construction tables, all 12 chord qualities with interval formulas, consonance/dissonance theory (Pythagoras to Plomp-Levelt), beat frequency perceptual ranges - Fretboard: how frets work, string interval explanation, reading fingering notation, 8 alternate tunings with musical context, custom instrument examples (banjo, mandolin) - Playback: waveform physics (harmonics, Fourier), temperament listening guide - Quickstart: updated feature list (6 systems, 40+ scales, 144 chords) - Fix duplicate logo/title in sidebar Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
63 lines
1.9 KiB
ReStructuredText
63 lines
1.9 KiB
ReStructuredText
Quickstart
|
|
==========
|
|
|
|
Installation
|
|
------------
|
|
|
|
::
|
|
|
|
$ pip install pytheory
|
|
|
|
Basic Usage
|
|
-----------
|
|
|
|
Create tones, build scales, and explore music theory:
|
|
|
|
.. code-block:: python
|
|
|
|
from pytheory import Tone, TonedScale, Fretboard, CHARTS
|
|
|
|
# Create a tone — A4 is the tuning standard (440 Hz)
|
|
a4 = Tone.from_string("A4", system="western")
|
|
print(a4.frequency) # 440.0
|
|
|
|
# Tone arithmetic — add semitones to move up the chromatic scale
|
|
c4 = Tone.from_string("C4", system="western")
|
|
e4 = c4 + 4 # Major third up (4 semitones)
|
|
g4 = c4 + 7 # Perfect fifth up (7 semitones)
|
|
print(e4, g4) # E4 G4
|
|
|
|
# Measure intervals between tones
|
|
print(g4 - c4) # 7 (semitones — a perfect fifth)
|
|
|
|
# Build a C major scale
|
|
c_major = TonedScale(tonic="C4")["major"]
|
|
print(c_major.note_names)
|
|
# ['C', 'D', 'E', 'F', 'G', 'A', 'B', 'C']
|
|
|
|
# Build diatonic triads from the scale
|
|
I = c_major.triad(0) # C E G (C major)
|
|
IV = c_major.triad(3) # F A C (F major)
|
|
V = c_major.triad(4) # G B D (G major)
|
|
|
|
# Guitar chord fingerings
|
|
fb = Fretboard.guitar()
|
|
fingering = CHARTS["western"]["Am"].fingering(fretboard=fb)
|
|
print(fingering) # (0, 1, 2, 2, 0, 0)
|
|
|
|
What's Included
|
|
---------------
|
|
|
|
- **6 musical systems**: Western, Indian (Hindustani), Arabic (Maqam),
|
|
Japanese, Blues/Pentatonic, Javanese Gamelan
|
|
- **40+ scales**: major, minor, harmonic minor, 7 modes, 10 thaats,
|
|
10 maqamat, 6 Japanese pentatonic scales, blues, pentatonic,
|
|
slendro, pelog, and more
|
|
- **Pitch calculation** in equal, Pythagorean, and meantone temperaments
|
|
- **Chord charts** with 144 pre-built chords (12 roots x 12 qualities)
|
|
- **Chord analysis**: consonance scoring, Plomp-Levelt dissonance,
|
|
beat frequency calculation
|
|
- **Fingering generation** for guitar (8 tunings), bass, ukulele, or
|
|
any custom fretted instrument
|
|
- **Audio playback** with sine, sawtooth, and triangle wave synthesis
|