After 5.07 sr = 96000; set sample rate in score as well kr = 96000 ksmps = 1 nchnls = 1 #define fundamental #21.7#; 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 #96000#; 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 #522#; 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