mirror of
https://github.com/kennethreitz/pytheory.git
synced 2026-06-05 06:46:14 +00:00
v0.35.0: JI ratios, 8.5x faster import, timpani, saxophone, rolls
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,27 @@
|
|||||||
|
|
||||||
All notable changes to PyTheory are documented here.
|
All notable changes to PyTheory are documented here.
|
||||||
|
|
||||||
|
## 0.35.0
|
||||||
|
|
||||||
|
- **8.5x faster import** — dropped pytuning/sympy, lazy-load scipy.
|
||||||
|
`import pytheory` now takes ~50ms instead of ~480ms (#44)
|
||||||
|
- **Proper shruti JI ratios** — 22 positions with 5-limit just intonation
|
||||||
|
(pure 3/2 fifths, 5/4 thirds), not 22-TET approximation
|
||||||
|
- **Arabic maqam JI ratios** — Zalzalian 11-limit ratios.
|
||||||
|
Mi↓ (the Rast third) is exactly 27/22 from Do
|
||||||
|
- **B#/Cb octave boundary fix** — B#4 = C5, Cb4 = B3 (#45)
|
||||||
|
- **Int tone names** — `Tone(0, system=TET(22))` works alongside strings.
|
||||||
|
Wrapping: `Tone(22)` → tone 0, octave+1. `System.tone()` convenience.
|
||||||
|
- **Timpani synth** — inharmonic membrane modes, felt mallet, copper kettle
|
||||||
|
resonance, cathedral reverb
|
||||||
|
- **Saxophone synth** — conical bore, reed buzz, brass body warmth.
|
||||||
|
4 presets: saxophone, alto_sax, tenor_sax, bari_sax
|
||||||
|
- **Part.roll()** — rapid repeated notes with velocity ramp for crescendo/
|
||||||
|
decrescendo rolls on any instrument
|
||||||
|
- **Vibrato tuning** — all instruments reduced to 0.001 depth for cleaner
|
||||||
|
ensemble sound
|
||||||
|
- 29 synth waveforms, 838 tests
|
||||||
|
|
||||||
## 0.34.0
|
## 0.34.0
|
||||||
|
|
||||||
- **16 dedicated instrument synths** — physical modeling and specialized
|
- **16 dedicated instrument synths** — physical modeling and specialized
|
||||||
|
|||||||
+1
-1
@@ -77,7 +77,7 @@ What's Inside
|
|||||||
numbers), scale recommendation, modulation, voice leading
|
numbers), scale recommendation, modulation, voice leading
|
||||||
- **Sequencing** — Score, Parts, arpeggiator, legato/glide, velocity,
|
- **Sequencing** — Score, Parts, arpeggiator, legato/glide, velocity,
|
||||||
swing, humanize, tempo changes, song sections with repeat
|
swing, humanize, tempo changes, song sections with repeat
|
||||||
- **Synthesis** — 27 waveforms (including Karplus-Strong pluck, Hammond organ,
|
- **Synthesis** — 29 waveforms (including Karplus-Strong pluck, Hammond organ,
|
||||||
bowed string, and 14 dedicated instrument synths), 10 envelopes, 40+
|
bowed string, and 14 dedicated instrument synths), 10 envelopes, 40+
|
||||||
instrument presets, configurable FM, sub-oscillator, noise layer, filter
|
instrument presets, configurable FM, sub-oscillator, noise layer, filter
|
||||||
envelope, velocity-to-brightness, analog oscillator drift, detune, stereo
|
envelope, velocity-to-brightness, analog oscillator drift, detune, stereo
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "pytheory"
|
name = "pytheory"
|
||||||
version = "0.34.1"
|
version = "0.35.0"
|
||||||
description = "Music Theory for Humans"
|
description = "Music Theory for Humans"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"""PyTheory: Music Theory for Humans."""
|
"""PyTheory: Music Theory for Humans."""
|
||||||
|
|
||||||
__version__ = "0.34.1"
|
__version__ = "0.35.0"
|
||||||
|
|
||||||
from .tones import Tone, Interval
|
from .tones import Tone, Interval
|
||||||
from .systems import System, SYSTEMS, TET
|
from .systems import System, SYSTEMS, TET
|
||||||
|
|||||||
Reference in New Issue
Block a user