From a6cdc49969d66ef66d54bf39c382b4d28ed7d9a9 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Wed, 1 Apr 2026 13:34:20 -0400 Subject: [PATCH] =?UTF-8?q?Raga=20Midnight:=20rewrite=20tabla=20solo=20?= =?UTF-8?q?=E2=80=94=20clean=204/4=20grid,=20no=20mixed=20durations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kaida in 8ths→16ths, tukra all 16ths, tihai with even spacing. No more 32nd/16th mixing or triplets fighting the groove. Co-Authored-By: Claude Opus 4.6 (1M context) --- tracks/raga_midnight.py | 124 +++++++++++++++++----------------------- 1 file changed, 54 insertions(+), 70 deletions(-) diff --git a/tracks/raga_midnight.py b/tracks/raga_midnight.py index 73fa5c6..2a34562 100644 --- a/tracks/raga_midnight.py +++ b/tracks/raga_midnight.py @@ -314,83 +314,67 @@ tabla.hit(tDHA, Duration.EIGHTH, velocity=100) tabla.rest(Duration.EIGHTH) tabla.hit(GEB, Duration.QUARTER, velocity=125) -# ── Bar 22: KAIDA — developing the theme ──────────────────────── +# ── Bar 22: KAIDA — developing, clean 8ths and 16ths ─────────── tabla.hit(tDHA, Duration.EIGHTH, velocity=108, articulation="accent") -tabla.hit(GE, Duration.SIXTEENTH, velocity=82) -tabla.hit(NA, Duration.SIXTEENTH, velocity=78) +tabla.hit(GE, Duration.EIGHTH, velocity=82) +tabla.hit(NA, Duration.EIGHTH, velocity=78) tabla.hit(tDHA, Duration.EIGHTH, velocity=102) -tabla.hit(TIT, 0.125, velocity=55) -tabla.hit(TIT, 0.125, velocity=50) -tabla.hit(NA, Duration.SIXTEENTH, velocity=75) -tabla.hit(KE, Duration.SIXTEENTH, velocity=65) -# Variation with bends -tabla.hit(tDHA, Duration.EIGHTH, velocity=112, articulation="accent") -tabla.hit(GEB, Duration.EIGHTH, velocity=118) +tabla.hit(GEB, Duration.EIGHTH, velocity=112, articulation="accent") +tabla.hit(NA, Duration.EIGHTH, velocity=80) +tabla.hit(tDHA, Duration.EIGHTH, velocity=105) +tabla.hit(KE, Duration.EIGHTH, velocity=65) +# Second half: 16ths +tabla.hit(tDHA, Duration.SIXTEENTH, velocity=110, articulation="accent") +tabla.hit(GE, Duration.SIXTEENTH, velocity=78) +tabla.hit(NA, Duration.SIXTEENTH, velocity=82) +tabla.hit(tDHA, Duration.SIXTEENTH, velocity=105) +tabla.hit(GEB, Duration.SIXTEENTH, velocity=115, articulation="accent") +tabla.hit(NA, Duration.SIXTEENTH, velocity=80) +tabla.hit(tDHA, Duration.SIXTEENTH, velocity=108) +tabla.hit(GEB, Duration.SIXTEENTH, velocity=118) +tabla.hit(tDHA, Duration.QUARTER, velocity=115, articulation="accent") +tabla.hit(GEB, Duration.QUARTER, velocity=120) + +# ── Bar 23: TUKRA — virtuosic, all 16ths on the grid ─────────── +tabla.hit(tDHA, Duration.SIXTEENTH, velocity=112, articulation="accent") +tabla.hit(GE, Duration.SIXTEENTH, velocity=82) +tabla.hit(NA, Duration.SIXTEENTH, velocity=85) +tabla.hit(TIT, Duration.SIXTEENTH, velocity=55) +tabla.hit(tDHA, Duration.SIXTEENTH, velocity=115, articulation="accent") +tabla.hit(GEB, Duration.SIXTEENTH, velocity=110) tabla.hit(NA, Duration.SIXTEENTH, velocity=82) tabla.hit(TIT, Duration.SIXTEENTH, velocity=55) -tabla.hit(tDHA, Duration.SIXTEENTH, velocity=100) -tabla.hit(TIT, 0.125, velocity=50) -tabla.hit(NA, 0.125, velocity=75) -tabla.hit(KE, 0.125, velocity=62) -# Faster variation -tabla.hit(tDHA, Duration.SIXTEENTH, velocity=110) -tabla.hit(TIT, 0.125, velocity=52) -tabla.hit(GEB, Duration.SIXTEENTH, velocity=115) -tabla.hit(NA, 0.125, velocity=78) -tabla.hit(tDHA, 0.125, velocity=105) -tabla.hit(TIT, 0.125, velocity=48) -tabla.hit(TIT, 0.125, velocity=45) -tabla.hit(KE, 0.125, velocity=60) -tabla.hit(tDHA, Duration.QUARTER, velocity=115, articulation="accent") - -# ── Bar 23: TUKRA — virtuosic display ─────────────────────────── -tabla.hit(GEB, Duration.QUARTER, velocity=127, articulation="accent") -tabla.rest(Duration.SIXTEENTH) -# 32nd note cascade -tabla.hit(tDHA, 0.125, velocity=112) -tabla.hit(TIT, 0.125, velocity=55) -tabla.hit(NA, 0.125, velocity=85) -tabla.hit(TIT, 0.125, velocity=50) -tabla.hit(tDHA, 0.125, velocity=115) -tabla.hit(TIT, 0.125, velocity=58) -tabla.hit(GEB, Duration.SIXTEENTH, velocity=110) -tabla.hit(NA, 0.125, velocity=82) -tabla.hit(GE, 0.125, velocity=100) -tabla.hit(NA, 0.125, velocity=78) -tabla.hit(TIT, 0.125, velocity=52) -tabla.hit(KE, 0.125, velocity=65) -# Second wave with bayan -tabla.hit(tDHA, 0.125, velocity=118) -tabla.hit(TIT, 0.125, velocity=55) -tabla.hit(TIT, 0.125, velocity=50) -tabla.hit(NA, 0.125, velocity=88) -tabla.hit(GEB, Duration.SIXTEENTH, velocity=122) -tabla.hit(TIT, 0.125, velocity=55) -tabla.hit(tDHA, 0.125, velocity=120) -tabla.hit(NA, 0.125, velocity=85) -tabla.hit(GEB, Duration.QUARTER, velocity=127, articulation="accent") - -# ── Bar 24: TIHAI — three-fold cadence to sam ─────────────────── -tabla.hit(tDHA, Duration.SIXTEENTH, velocity=105, articulation="accent") -tabla.hit(TIT, 0.125, velocity=58) -tabla.hit(NA, Duration.SIXTEENTH, velocity=82) -tabla.hit(GEB, Duration.EIGHTH, velocity=108) -tabla.rest(Duration.SIXTEENTH) -# 2nd +tabla.hit(GEB, Duration.SIXTEENTH, velocity=118, articulation="accent") +tabla.hit(NA, Duration.SIXTEENTH, velocity=80) +tabla.hit(tDHA, Duration.SIXTEENTH, velocity=112) +tabla.hit(GE, Duration.SIXTEENTH, velocity=78) +tabla.hit(tDHA, Duration.QUARTER, velocity=120, articulation="accent") +# Second half: 16ths building tabla.hit(tDHA, Duration.SIXTEENTH, velocity=115, articulation="accent") -tabla.hit(TIT, 0.125, velocity=65) +tabla.hit(NA, Duration.SIXTEENTH, velocity=85) +tabla.hit(GEB, Duration.SIXTEENTH, velocity=120) +tabla.hit(TIT, Duration.SIXTEENTH, velocity=58) +tabla.hit(tDHA, Duration.SIXTEENTH, velocity=118, articulation="accent") +tabla.hit(GEB, Duration.SIXTEENTH, velocity=122) tabla.hit(NA, Duration.SIXTEENTH, velocity=88) -tabla.hit(GEB, Duration.EIGHTH, velocity=118) -tabla.rest(Duration.SIXTEENTH) -# 3rd -tabla.hit(tDHA, Duration.SIXTEENTH, velocity=125, articulation="accent") -tabla.hit(TIT, 0.125, velocity=72) +tabla.hit(tDHA, Duration.SIXTEENTH, velocity=120) +tabla.hit(GEB, Duration.QUARTER, velocity=127, articulation="accent") + +# ── Bar 24: TIHAI — three-fold cadence, clean on the grid ────── +# 1st +tabla.hit(tDHA, Duration.EIGHTH, velocity=108, articulation="accent") +tabla.hit(NA, Duration.SIXTEENTH, velocity=82) +tabla.hit(GEB, Duration.SIXTEENTH, velocity=110) +tabla.rest(Duration.EIGHTH) +# 2nd +tabla.hit(tDHA, Duration.EIGHTH, velocity=118, articulation="accent") +tabla.hit(NA, Duration.SIXTEENTH, velocity=88) +tabla.hit(GEB, Duration.SIXTEENTH, velocity=118) +tabla.rest(Duration.EIGHTH) +# 3rd — strongest +tabla.hit(tDHA, Duration.EIGHTH, velocity=127, articulation="accent") tabla.hit(NA, Duration.SIXTEENTH, velocity=95) -tabla.hit(GEB, Duration.QUARTER, velocity=125) -# Triplet descent -tabla.hit(tDHA, Duration.TRIPLET_QUARTER, velocity=95) -tabla.hit(GE, Duration.TRIPLET_QUARTER, velocity=80) -tabla.hit(NA, Duration.TRIPLET_QUARTER, velocity=60) +tabla.hit(GEB, Duration.SIXTEENTH, velocity=125) # SAM tabla.rest(Duration.QUARTER) tabla.hit(tDHA, Duration.DOTTED_HALF, velocity=127, articulation="fermata")