;; stranger things theme ;; ;; Roger Dannenberg ;; 29 Jan 2026 function stenv() begin return env(0.03, 0.05, 0.1, 1, 0.3, 0.3) end function stnote(pitch: c4) begin return osc-pulse(step-to-hz(pitch), 0) * stenv() end function play-list(lis) begin if lis then return seq(set-logical-stop( stnote(pitch: first(lis)) ~ 1.3, 1), play-list(rest(lis))) else return set-logical-stop(s-rest(), 0) end function starp() begin with pitches = list(g1, b1, d2, fs2, g2, fs2, d2, b1) return play-list(pitches) ~ 0.18 end function stfilter(s) begin return lp(s, 530 + lfo(0.15, 100, *sine-table*, 270) * 500) end ; UNCOMMENT TO PLAY ; play stfilter(seqrep(i, 7, starp())) * pwzv(1, 6, 1, 8, 0) ;; Here's a version with score: function play-stscore() begin set st-arp-pat = make-palindrome(list(g1, b1, d2, fs2, g2), elide: t) exec score-gen(save: quote(stscore), name: quote(stnote), score-len: 57, ioi: 0.18, dur: 0.24, pitch: next(st-arp-pat)) play stfilter(timed-seq(stscore)) * pwzv(1, 6, 1, 8, 0) end ; UNCOMMENT TO PLAY exec play-stscore() exec score-print(stscore)