Files
interpretations/README.md
T
2026-04-01 11:34:15 -04:00

72 lines
3.8 KiB
Markdown

```
_ _ _ _ _
(_)_ __ | |_ ___ _ __ _ __ _ __ | |_ __ _| |_(_) ___ _ __ ___
| | '_ \| __/ _ \ '__| '_ \| '__/ _ \ __/ _` | __| |/ _ \| '_ \/ __|
| | | | | || __/ | | |_) | | | __/ || (_| | |_| | (_) | | | \__ \
|_|_| |_|\__\___|_| | .__/|_| \___|\__\__,_|\__|_|\___/|_| |_|___/
|_| ~ written in python ~
```
# Interpretations
An album of compositions written in Python using [pytheory](https://github.com/kennethreitz/pytheory).
Each track is a `.py` file. Run it to hear it.
## Tracks
1. **Raga Midnight** — D Phrygian (Bhairavi), shruti just intonation, 90 BPM. Tabla, sitar, tambura, dhol. Hand-written tabla solo with tihai cadence.
2. **Culture Clash** — D minor, 95 BPM. Didgeridoo drone, Rhodes, tabla with fills, sitar arps, NES Mario theme, Hotline Bling on steel drum, theremin solo, marching snare military finale with DCI cadence. 808 sub bass throughout.
3. **Chakra** — Root to crown frequency activation journey. Shruti tuning at A=432 Hz. Ukulele opening, singing bowls, harmonium, tambura, sitar, theremin. Metric modulation tempo changes (60 → 90 → 108 → 135 BPM) ascending through seven chakras.
4. **Ghost Protocol** — F minor, 128 BPM. Portishead-style dark Rhodes intro with trip-hop beat, morphing into a Strobe-inspired hypnotic build. Saw arp emerges, kick doesn't arrive until bar 49. NES square wave melody at the emotional peak.
5. **Acid Reign** — A minor, 140 BPM. Dual 303 acid bass lines (saw + square) with resonant filter sweeps (Q up to 20). Cajon in cathedral reverb, Rhodes pad, 808 sub. Five hand-written groove patterns.
6. **Silk Road** — D minor, 95 BPM. A caravan picking up musicians along the ancient trade route. Koto solo (China) → sitar + tabla (India) → mandolin + doumbek (Persia) → guitar + cajon (Mediterranean) → all together. Nobody leaves, everyone adds their voice.
7. **Deep Time** — B minor, 40 BPM, just intonation. Ambient drone. Tingsha, rainstick, finger cymbals, singing bowls, didgeridoo, sine drones, harmonium, theremin, choir, cello. 7.5 minutes of deep listening.
8. **The Interruption** — D minor, 85 BPM. A baroque harpsichord and string quartet playing beautifully. Then at bar 33, a drum & bass breakbeat slams in with sub bass and reese. The strings keep playing like nothing happened. The beat dissolves, the quartet wins.
9. **The Temple** — A Phrygian (Bhairavi), 65 BPM, shruti just intonation, A=432 Hz. Devotional layers inside a vast stone chamber. Singing bowls, tambura drone, harmonium, sitar, bansuri, tabla. The reverb is the instrument. Everything enters slowly, sings together, then dissolves back into silence.
## Usage
```bash
uv sync
```
**Interactive player** — pick a track, play/pause, seek:
```bash
uv run play.py
```
**Play a specific track:**
```bash
uv run play.py tracks/the_temple.py
```
**Playback options:**
```bash
uv run play.py tracks/acid_reign.py --from 17 --to 32 # measure range
uv run play.py tracks/the_temple.py --from-time 3:30 # seek to time
uv run play.py tracks/ghost_protocol.py --solo arp,kick # solo parts
uv run play.py tracks/deep_time.py --mute wind # mute parts
uv run play.py tracks/the_temple.py --pitch 440 # override tuning
uv run play.py tracks/acid_reign.py --bpm 160 # override tempo
uv run play.py tracks/silk_road.py --loop 3 # loop playback
```
**Export & inspect:**
```bash
uv run play.py tracks/raga_midnight.py -o raga.wav # export WAV
uv run play.py tracks/culture_clash.py --info # show metadata
uv run play.py tracks/the_interruption.py --parts # list parts
uv run play.py --list # list all tracks
```
`Ctrl+C` to stop playback.
## License
ISC