kennethreitz 2fbe7dab3f Add Voltage (track 11), The Dialogue tweaks, remove 3AM
Voltage: F minor, 138 BPM — raw oscillators, arp solos, 32nd note peak.
The Dialogue: theremin octave up, sitar reverb tuned, house beat added.
Raga Midnight: sitar reverb reduced. 3AM removed for rework.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 12:43:12 -04:00
2026-03-30 17:24:16 -04:00

    _       _                        _        _   _
   (_)_ __ | |_ ___ _ __ _ __  _ __ | |_ __ _| |_(_) ___  _ __  ___
   | | '_ \| __/ _ \ '__| '_ \| '__/ _ \ __/ _` | __| |/ _ \| '_ \/ __|
   | | | | | ||  __/ |  | |_) | | |  __/ || (_| | |_| | (_) | | | \__ \
   |_|_| |_|\__\___|_|  | .__/|_|  \___|\__\__,_|\__|_|\___/|_| |_|___/
                         |_|          ~ written in python ~

Interpretations

An album of compositions written in Python using 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.
  10. The Dialogue — E Phrygian (Bhairavi), 75 BPM, shruti just intonation, A=432 Hz. Sitar (human) and theremin (machine) start alone, find each other through call-and-response, and become something neither could be on their own. House beat enters when they find the groove.
  11. Voltage — F minor, 138 BPM. Raw oscillators, nothing else. Sine sub, saw lead, pulse counter-rhythm. Rhythm is pitch. Saw arp solo, pulse arp solo, 32nd note chaos at the peak. Aggressive, monophonic, electric.

Usage

uv sync

Interactive player — pick a track, play/pause, seek:

uv run play.py

Play a specific track:

uv run play.py tracks/the_temple.py

Playback options:

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:

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.

See the changelog for detailed track history.

License

ISC

S
Description
No description provided
Readme ISC 1.1 GiB
Languages
Python 93%
HTML 7%