After 5.07
sr = 44100; set sample rate in score as well
kr = 44100
ksmps = 1
nchnls = 1
#define fundamental #29.1#; choose a fundamental frequency 30 Hz or below (infrasound allowed)
;must be defined in score below with same values as well
#define fftsize #262144#
#define overlap #8192#
#define normalize #1#; normalize if necessary, 1 is normally OK (dynamic level changable)
;set tempo in score below
;the following 10 macros are not changable
#define lpartial #ip4=$fundamental*p4#
#define upartial #ip5=$fundamental*p5#
#define fftdelay #idel=($fftsize+($overlap*2))/sr#
#define envelope #aenv linseg 0, idel, 0, p6, 1, p3-p6-p6-idel, 1, p6, 0#
#define white(seed) #arnd rand 32767, $seed, 1#
#define fftanal #fsig pvsanal arnd, $fftsize, $overlap, $fftsize, 1#
#define cutoff #aflt linseg 0, idel, ip4, p3-idel, ip5#
#define bandpass #fbps pvsbandp fsig, ip4*.999, ip4, aflt, aflt*1.001#
#define resynth #atps pvsynth fbps#
#define output #out $normalize*atps*aenv#
instr 1
$lpartial
$upartial
$fftdelay
$envelope
$white(.05)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 2
$lpartial
$upartial
$fftdelay
$envelope
$white(.075)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 3
$lpartial
$upartial
$fftdelay
$envelope
$white(.7)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 4
$lpartial
$upartial
$fftdelay
$envelope
$white(.6)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 5
$lpartial
$upartial
$fftdelay
$envelope
$white(.88)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 6
$lpartial
$upartial
$fftdelay
$envelope
$white(.91)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 7
$lpartial
$upartial
$fftdelay
$envelope
$white(.28)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 8
$lpartial
$upartial
$fftdelay
$envelope
$white(.55)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 9
$lpartial
$upartial
$fftdelay
$envelope
$white(.08)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 10
$lpartial
$upartial
$fftdelay
$envelope
$white(.98)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 11
$lpartial
$upartial
$fftdelay
$envelope
$white(.02)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 12
$lpartial
$upartial
$fftdelay
$envelope
$white(.017)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
instr 13
$lpartial
$upartial
$fftdelay
$envelope
$white(.022)
$fftanal
$cutoff
$bandpass
$resynth
$output
endin
#define sr #44100#; must be the same as in orchestra
; must be the same as in orchestra; used to calculate fft-delay
#define fftsize #262144#
#define overlap #8192#
#define bpm #769#; set tempo here; version with Butterworth filters recommended for very fast tempi
t 0 $bpm
i1 0 [ (1 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 1 2 .0205
i2 1 [ (2 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 2 3 .0203
i3 3 [ (3 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 3 5 .0198
i4 6 [ (5 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 5 8 .0187
i5 11 [ (8 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 8 13 .0171
i6 19 [ (13 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 13 21 .0152
i7 32 [ (21 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 21 34 .0123
i8 53 [ (34 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 34 55 .0098
i9 87 [ (55 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 55 89 .0079
i10 142 [ (89 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 89 144 .006
i11 231 [ (144 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 144 233 .0043
i12 375 [ (233 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 233 377 .0034
i13 608 [ (377 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 377 610 .003
e