Work-in-progress announcement of the Interpretations project,
an album of compositions written as Python scripts using PyTheory.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Announces pytheory-opxy project — 69 multisampled instruments and 12 drum kits
for the Teenage Engineering OP-XY, all synthesized from Python using PyTheory.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
69 instruments and 12 drum kits generated from PyTheory's synthesis
engine for the OP-XY and OP-1. Includes step-by-step installation
for non-technical users.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bare SoundCloud URLs now auto-embed as the minimal 20px player strip
instead of the default large oEmbed widget. YouTube/Vimeo still use
standard oEmbed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SoundCloud, YouTube, and Vimeo URLs on their own line in markdown
are automatically replaced with embeds via oEmbed API. Results cached.
Updated NumPy synth essay to use bare SoundCloud URL.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tighter, less breathless. Same code and structure, fewer narrator
asides telling you how to feel about it.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Swagger UI Execute needs responses defined to display results.
Auto-detect search query params for /api/search routes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Schema at /api/schema now introspects api.router.routes for paths
and docstrings instead of maintaining a static dict. Skips catch-all
and internal routes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Schema served as JSON at /api/schema, docs rendered with Redoc at /api.
No more inline YAML — clean separation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Inline OpenAPI spec avoids catch-all route conflict. Elements UI
with sidebar layout, no external schema fetch needed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Avoids catch-all route intercepting /schema.yml.
Swagger UI at /api/docs, schema at /api/schema.yml.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Soundfonts are locked to equal temperament — math-based synthesis
lets you play any instrument in Pythagorean, meantone, or just
intonation because the frequency is just a parameter.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New essay on physical modeling synthesis in pure Python — Karplus-Strong
strings, tabla strokes, djembe cross-choking, Hammond organ drawbars.
Software pages:
- Responder: mention this site runs on it, link to colophon
- All pages: change pip install to uv add
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Details how tabla strokes are modeled from physical components:
membrane thuds, shell resonance, syahi harmonics, attack transients.
Every sound is math — NumPy and SciPy, nothing else.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
No longer "highly experimental thought exercise" — now shows the full
stack: theory, composition, synthesis, effects, sequencing, export.
Added links to both new essays.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
/api/icon/{article_path} didn't match paths with slashes like
essays/2026-03-25-foo. Changed to {article_path:path}.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The createFallbackIcon function generated colored circles with letters
when the /api/icon call failed. Now it just skips silently — either
the real generated icon loads or nothing shows.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>