Three new export methods on Score:
- to_lilypond() — complete LilyPond source files for PDF engraving
- to_musicxml() — MusicXML 4.0 for MuseScore/Sibelius/Finale
- to_tab() — ASCII guitar/bass tablature (also on Part)
All three handle multi-part scores, bass clef detection, tied notes
across barlines, chords, and drum tone filtering.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Five new synth waveforms: tape-replay Mellotron (strings/flute/choir
tapes with wow, flutter, saturation, 8s fadeout), hard sync oscillator,
ring modulation, wavefolding, and analog drift VCO with pitch
instability. 14 new instrument presets for Score.part(). Synth kwargs
now pass through play()/save()/_render(). 808 bass envelope fixed
from pluck to piano.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
20 WAV files covering quickstart, sequencing, drums, playback,
and cookbook examples. Audio players embedded after every code
block that calls play_score().
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Load any Standard MIDI File into a Score. Zero-dependency parser
handles Type 0 and Type 1 files. Each channel becomes a Part,
channel 10 becomes drum hits. Roundtrip with save_midi works.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Every page now ends on prose instead of a code block.
Chords, tones, scales, effects, drums, CLI, cookbook,
fretboard, playback, systems, theory — each with a
sentence that ties the page together.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sequencing: Score concept, time signatures for non-musicians, Parts as
DAW tracks, arpeggiator/legato/glide context with TB-303 and acid history.
Synths: synthesis philosophy, DX7/Juno/JP-8000 history, practical combos.
Effects: real-music context (The Edge, DJ knobs, shower reverb), why signal
chain order matters, automation as breathing, LFO as repeating automation.
Drums: drums-as-genre foundation, genre group cultural context, fills as
transition signals, drum synthesis as real drum machine techniques.
Playback: three output options context, MIDI as the working musician's path.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comprehensive effects docs with signal chain diagram, per-effect
reference, and combination examples (dub, acid, Drake-style 808).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rhythm guide: full Part API docs with synths, envelopes, chaining,
raw float beats, headless rendering, complete bossa nova example
- Playback guide: rewrite intro with quick-start showing both simple
and expressive usage, update all Score examples to use named parts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Chord.close_voicing(), open_voicing(), drop2(), drop3()
- Key.modulation_path() for pivot-chord modulation paths
- Scale.degree_name() for traditional function names
- Chord.extensions() for available 9th/11th/13th suggestions
- Tone.solfege for fixed-Do solfege syllables
- CLI identify and midi commands
- Comprehensive docs update covering all v0.9.0–v0.11.0 features
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- scale_diagram() showcased on homepage and quickstart
- New cookbook page: analyze a song, 12-bar blues, find chords in a key,
compare scales, guitar chord chart, explore intervals
- play_progression() for sequencing chord playback with gaps
- Scale and Note aliases exported
- Version bump to 0.8.0
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fretboard.chord(), .tab(), .chart() convenience methods
- Fingering.tab() for rendering ASCII tablature
- Fingering algorithm now considers muting, fret span, root-in-bass,
and contiguous bass-side muting for idiomatic voicings
- All docs converted from code-block:: python to pycon with >>> prompts
- All doc outputs verified against actual library output
- Tests for new methods; version test no longer checks exact string
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
RST cannot nest inline markup — **`link <url>`_** renders the raw
markup instead of a clickable link. Removed all 37 instances across
5 guide pages.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Link key music theory terms to Wikipedia across all guide pages
- Physics of Consonance section now demos .harmony, .dissonance,
.tension, and .beat_frequencies with code examples
- Copyright updated to 2026
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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>
- User guide: quickstart, tones, scales, chords, fretboard, playback
- API reference: autodoc for all modules
- alabaster theme with Napoleon for Google/NumPy docstrings
- Update project description in pyproject.toml
- Add sphinx to docs dependency group
Build with: uv run --group docs sphinx-build -b html docs docs/_build/html
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>