After 5.07 sr = 44100; set sample rate in score as well kr = 44100 ksmps = 1 nchnls = 1 #define fundamental #9.95#; 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 #73#; 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 3 .0205 i2 1 [ (3 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 3 4 .0198 i3 4 [ (4 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 4 7 .0192 i4 8 [ (7 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 7 11 .0178 i5 15 [ (11 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 11 18 .0159 i6 26 [ (18 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 18 29 .0131 i7 44 [ (29 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 29 47 .0103 i8 73 [ (47 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 47 76 .0083 i9 120 [ (76 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 76 123 .0065 i10 196 [ (123 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 123 199 .0046 i11 319 [ (199 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 199 322 .0037 i12 518 [ (322 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 322 521 .0031 i13 840 [ (521 + (($fftsize + ($overlap * 2)) / $sr) * ($bpm / 60)) ] 521 843 .0029 e