Add Interpretations album page to music section

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-03 13:29:18 -04:00
parent 99b8e2cde3
commit a63ebfea08
2 changed files with 73 additions and 0 deletions
+3
View File
@@ -6,8 +6,11 @@ I'm a percussionist by training. Twenty years of drums, starting with marching b
Currently making music on a **Teenage Engineering OP-XY**. Small, immediate, no screen to get lost in. The constraint is the point.
The latest project is something different entirely — a full album written in Python.
## Discography
- [**Interpretations**](/music/interpretations) (2025) — 24 tracks composed entirely in Python using pytheory. Indian classical raga, acid house, ambient drone, trap, and everything between. The code is the score.
- [**Unmastered Impulses**](/music/unmastered-impulses) (2016) — The debut. 13 tracks, almost entirely analog. Raw and unpolished on purpose.
- [**Resolution**](/music/resolution) (2017) — Recorded in my home studio in the spring. Closure and new beginnings.
- [**Messengers Rising**](/music/messengers-rising) (2017) — 14 tracks processing the bipolar diagnosis and its aftermath.
+70
View File
@@ -0,0 +1,70 @@
# Interpretations
*2025*
A full-length album of 24 original compositions, written entirely in Python. Not generated — *composed*. Every note, every drum hit, every filter sweep, hand-written in code using [pytheory](https://github.com/kennethreitz/pytheory), a music theory and synthesis library I built for this purpose.
The album is the answer to a question I've been asking for years: what happens when you treat Python not as a tool for making music, but as the instrument itself?
![Interpretations player](/static/images/interpretations-player.png)
## The Sound
Interpretations spans Indian classical raga, acid house, lo-fi hip hop, ambient drone, trap, drum and bass, and a few things that don't have names yet. The tracklist is a journey — opening with a sitar raga over 808s, climbing through electronic energy, descending into raw emotional territory, then dissolving into sacred space before finally settling into silence.
Three tuning systems live side by side: standard Western equal temperament for the electronic tracks, 22-tone shruti intonation for the Indian classical pieces, and just intonation for the meditative closers. Some tracks run at A=432Hz. The tuning is part of the composition, not an afterthought.
Reverb is treated as an instrument. The Taj Mahal impulse response appears on nearly every melodic part — it's the signature acoustic space of the record. Cathedral reverb for the organ pieces. Algorithmic reverb for tight electronic production.
## The Process
Every track is a Python file. A `Score` object defines the time signature and tempo. `Part` objects define instruments with their effects chains. Notes are added one at a time — pitch, duration, velocity. Drum patterns are hand-written step sequences. Filter sweeps are LFO automations. There is no DAW, no MIDI, no audio samples. The Python script *is* the score, and pytheory renders it to audio.
```bash
uv run play # Interactive player
uv run play tracks/raga_midnight.py # Play a specific track
```
The interactive player is a curses TUI that shows the full tracklist with keys, tempos, and tuning systems. It renders tracks to WAV on first play, then caches them for instant playback.
## Why Python
Twenty years of drums. A studio full of analog synthesizers, all sold. An OP-XY for portable sketches. And now this — an album where the composition language is the programming language I've spent my career thinking in.
Python is how I think. Writing music in Python isn't a constraint — it's a removal of constraints. No mouse clicking in a piano roll. No menu diving. Just the musical idea, expressed as directly as I can express it, in the language closest to how my mind works.
The same philosophy that made [Requests](/software/requests) feel obvious — that tools should match human mental models — applies here. pytheory's API is designed so that writing music reads like describing music. A sitar plays a note in D Phrygian with shruti tuning and Taj Mahal reverb. That's what the code says, and that's what you hear.
## Listen
Coming soon to Spotify, Apple Music, and all major streaming platforms.
The source code is the album. Clone the repo, run the player, read the scores. The music and the code that creates it are the same artifact.
- [GitHub](https://github.com/kennethreitz/interpretations)
## The Tracklist
1. **Raga Midnight** — D Phrygian, 90 BPM, shruti. Traditional Hindustani form: alap, jor, gat, jhala. Tambura drone, sitar melody, dhol, hand-written tabla solo. Then the 808 drops.
2. **Shruti Lofi** — Dm, 75 BPM, shruti. Microtonal lo-fi hip hop. Vinyl crackle, kalimba loops, Rhodes chords in 22-tone tuning.
3. **Ghost Protocol** — Fm, 128 BPM. Portishead darkness into a deadmau5 Strobe-style build. Dark Rhodes, trip-hop drums, hypnotic saw arpeggios.
4. **Silk Road** — Dm, 95 BPM. A caravan across continents: koto (China), sitar (India), mandolin (Persia), guitar (Mediterranean).
5. **The Observatory** — Gm, 112 BPM. Chapel organ through shortwave static. Theremin signal emerging from noise.
6. **Acid Reign** — Am, 140 BPM. Dual 303 acid lines with massive filter sweeps. Cajon and Rhodes grounding the chaos.
7. **Beast Mode** — Gm, 135 BPM. Trap drums, 808 slides, sitar hook, mellotron strings, timpani rolls.
8. **Apex** — Ebm, 140 BPM. Koto hook over wavefold bass. Mellotron strings and 32nd-note shreds.
9. **Voltage** — Fm, 138 BPM. Pure oscillators: sine, saw, pulse. Raw synthesis as composition.
10. **An Exception Occurred** — Eb, 80 BPM. Piano arc through major to minor. Theremin psychosis. Hymn recovery.
11. **Voices** — F#m, 65 BPM. Five vocal parts multiplying over piano. Auditory hallucinations rendered in polyphony.
12. **Intrusive** — Bbm, 92 BPM. A repeating saw synth you can't shake — the musical form of an intrusive thought.
13. **Gravity** — Cm, 88 BPM. Hip hop meets Eastern devotional. 808 boom bap, singing bowls, sitar bends.
14. **The Interruption** — Dm, 85 BPM. String quartet for 32 bars. Then drum and bass crashes in at bar 33. The strings fight back.
15. **Sleight of Hand** — Dm, 100 BPM. Nine genre shifts in 72 bars. The moment where a 303 plays through a choir reverb.
16. **Waveforms** — Fm, 118 BPM. A tour of every oscillator: sine, triangle, square, saw, FM, PWM, wavefold, noise.
17. **Emergence** — Em, 100 BPM. Acoustic instruments (bowls, didgeridoo, sitar) gradually give birth to electronic ones.
18. **Chakra** — 60 BPM, A=432Hz, shruti. Root to crown through seven sections. Metric modulation accelerates from 60 to 135 BPM.
19. **The Temple** — A Phrygian, 65 BPM, A=432Hz, shruti. Devotional layers in a stone chamber. Singing bowls, tambura, tabla, theremin.
20. **The Dialogue** — E Phrygian, 75 BPM, A=432Hz, shruti. Sitar (human) and theremin (machine) finding each other through call and response.
21. **Cathedral** — Dm, 60 BPM. Tubular bells, bagpipe drone, mellotron choir, pipe organ, timpani. Cathedral reverb on everything.
22. **Tape Memory** — Dbm, 90 BPM. Mellotron flute, FM bells, theremin, wavefold synthesis, hard sync. Analog nostalgia through digital means.
23. **Music Box Factory** — G, 108 BPM. Pure tuned percussion: kalimba, vibraphone, celesta, marimba, glockenspiel. No synths, no strings.
24. **Deep Time** — Bm, 40 BPM, just intonation. Seven and a half minutes of ambient drone. Tingsha, singing bowls, didgeridoo, sine drones, theremin, cello. The album dissolves into silence.