diff --git a/tracks/an_exception_occurred.py b/tracks/an_exception_occurred.py index b5cebe6..b801d46 100644 --- a/tracks/an_exception_occurred.py +++ b/tracks/an_exception_occurred.py @@ -519,6 +519,26 @@ theremin.add(Eb.add(-12), Duration.WHOLE, velocity=20, bend=-0.25) for _ in range(30): theremin.rest(Duration.WHOLE) +# ── RING — sparse ring mod hits, spectral accents ────────────── +ring = score.part("ring", synth="ring_mod", envelope="pluck", volume=0.12, + reverb=0.2, reverb_type="cathedral", + delay=0.1, delay_time=0.375, delay_feedback=0.15, + pan=0.35) + +# Bars 1-24: silence +for _ in range(24): + ring.rest(Duration.WHOLE) + +# Bars 25-32: sparse hits — every other bar +for _ in range(4): + ring.add(Eb.add(12), Duration.QUARTER, velocity=55) + ring.rest(Duration.DOTTED_HALF) + ring.rest(Duration.WHOLE) + +# Bars 33-68: silence — let it dissolve (remaining bars) +for _ in range(32): + ring.rest(Duration.WHOLE) + # ── ORGAN — the hospital, the hymn, bars 33-40 ───────────────── # Christian hymn on a pipe organ. Institutional. But grounding. # "Be still and know." diff --git a/tracks/deep_time.py b/tracks/deep_time.py index 576387e..1c66f6a 100644 --- a/tracks/deep_time.py +++ b/tracks/deep_time.py @@ -211,7 +211,7 @@ for i in range(6): bowl.rest(Duration.WHOLE) # ── HIGH TEXTURE — triangle shimmer, almost subliminal ───────── -shimmer = score.part("shimmer", synth="triangle", envelope="pad", volume=0.06, +shimmer = score.part("shimmer", synth="drift", envelope="pad", volume=0.06, reverb=0.9, reverb_type="taj_mahal", chorus=0.6, chorus_rate=0.05, chorus_depth=0.03, lowpass=2000, pan=-0.4) @@ -280,6 +280,23 @@ wind.lfo("volume", rate=0.015, min=0.01, max=0.05, bars=48, shape="triangle") for _ in range(48): wind.add(B, Duration.WHOLE, velocity=30) +# ── GRAIN — deep granular texture, barely perceptible ────────── +grain = score.part("grain", instrument="granular_pad", volume=0.06, + reverb=0.5, reverb_type="taj_mahal", + pan=0.35) + +# Bars 1-16: silence +for _ in range(16): + grain.rest(Duration.WHOLE) + +# Bars 17-40: low B drone, glacial +for _ in range(24): + grain.add(B.add(-12), Duration.WHOLE, velocity=30) + +# Bars 41-48: silence — dissolve +for _ in range(8): + grain.rest(Duration.WHOLE) + # ── THEREMIN — emotional break, center of the piece ───────────── theremin = score.part("theremin", instrument="theremin", volume=0.22, reverb=0.5, reverb_type="taj_mahal", diff --git a/tracks/ghost_protocol.py b/tracks/ghost_protocol.py index b8560a1..c862b1c 100644 --- a/tracks/ghost_protocol.py +++ b/tracks/ghost_protocol.py @@ -103,7 +103,7 @@ for _ in range(96): trip.rest(Duration.WHOLE) # ── THE ARP — the soul of the track, enters quietly bar 17 ───── -arp = score.part("arp", synth="saw", envelope="pluck", volume=0.22, +arp = score.part("arp", synth="drift", envelope="pluck", volume=0.22, reverb=0.35, delay=0.4, delay_time=0.234, delay_feedback=0.45, lowpass=1200, detune=6, pan=0.15, humanize=0.04) diff --git a/tracks/intrusive.py b/tracks/intrusive.py index 19312c2..46e8a32 100644 --- a/tracks/intrusive.py +++ b/tracks/intrusive.py @@ -43,7 +43,7 @@ def play_thought(part, vel_offset=0, rest_after=Duration.WHOLE): # ── THE THOUGHT — piano, the thing you can't unthink ────────── -thought = score.part("thought", synth="saw", volume=0.4, +thought = score.part("thought", synth="wavefold", envelope="organ", volume=0.4, lowpass=3000, distortion=0.1, distortion_drive=1.5, saturation=0.4, legato=True, glide=0.03, reverb=0.25, reverb_type="spring", diff --git a/tracks/the_interruption.py b/tracks/the_interruption.py index 96ea68a..46665ba 100644 --- a/tracks/the_interruption.py +++ b/tracks/the_interruption.py @@ -460,7 +460,7 @@ for vel in [85, 78, 70, 62, 55, 48, 40, 35, 30, 25, 22, 20, 18, 15, 12, 8]: sub.add(D.add(-24), Duration.WHOLE, velocity=vel) # ── REESE BASS — detuned saw, DnB signature ──────────────────── -reese = score.part("reese", synth="saw", envelope="pad", volume=0.28, +reese = score.part("reese", synth="drift", envelope="pad", volume=0.28, lowpass=400, detune=15, spread=0.3, distortion=0.2, sidechain=0.35, reverb=0.2, reverb_decay=1.5, diff --git a/tracks/voltage.py b/tracks/voltage.py index 3819841..31c1b8c 100644 --- a/tracks/voltage.py +++ b/tracks/voltage.py @@ -424,6 +424,24 @@ play_pattern(pulse, pulse_line, 4, vel_offset=-25) for _ in range(4): pulse.rest(Duration.WHOLE) +# ── SYNC — hard sync oscillator, enters late ─────────────────── +sync = score.part("sync", synth="hard_sync", volume=0.25, + lowpass=4000, distortion=0.2, distortion_drive=2.5, + reverb=0.15, reverb_type="spring", + delay=0.15, delay_time=0.234, delay_feedback=0.2, + pan=-0.15) + +# Bars 1-48: silence +for _ in range(48): + sync.rest(Duration.WHOLE) + +# Bars 49-72: plays saw_line_a pattern +play_pattern(sync, saw_line_a, 24) + +# Bars 73-96: silence +for _ in range(24): + sync.rest(Duration.WHOLE) + # ── KICK — enters at bar 41 ─────────────────────────────────── K = DrumSound.KICK kick = score.part("kick", volume=1.0, humanize=0.02,