; vla-adttn (rd) (define vla '((-49.43290 1.99165) (0.00000 1.09187) (-2.53835 -2.73340) (-8.55317 0.73919) (-7.58952 -0.75267) (-8.48353 1.70372) (-13.92700 1.64759) (-39.93130 -2.25142) (-19.87800 -3.12024) (-34.19660 -1.58899) (-18.82040 -1.39847) (-21.22520 2.04672) (-21.33070 -0.14754) (-31.08620 2.05345) (-42.51880 -0.55890) (-41.19730 0.23896) (-46.80570 1.71249) (-47.17510 2.37942) (-37.97520 -0.83005) (-38.32750 -2.49358) (-44.79280 -1.16301) (-49.11850 1.33082) (-45.26480 -0.45146) (-46.27050 -0.15578) (-63.14360 -3.13979) (-44.27590 -2.59826) (-40.19680 -2.16540) (-56.83330 0.48774) (-56.62160 -0.84155) (-55.76370 1.59076) (-59.36050 -0.99090) (-55.42520 -0.58264) (-64.99020 0.00110) (-63.45910 1.55117) (-64.77610 2.68228) (-68.27080 -1.82120) (-71.90240 1.80545) (-79.13910 2.99369) (-64.94640 -3.12388) (-59.41810 1.84679) (-86.33570 1.81713) (-88.53500 1.01834) (-64.17470 -1.52081) (-61.24430 1.45757) (-69.88980 -0.47708) (-65.39420 0.82882) (-73.84740 0.41623) (-72.26330 0.31856) (-73.88560 2.64035) (-70.86610 -0.43802) (-67.86130 -0.43389) (-80.76020 -2.50016) (-66.44520 2.26219) (-83.49810 2.57825) (-66.01220 -2.08254) (-65.30220 -2.83644) (-74.05780 0.21665) (-72.69060 -2.78729) (-75.49700 2.96210) (-69.45200 0.72293) (-75.36160 0.14687) (-70.21110 1.42155) (-79.34420 0.76044) (-81.56200 2.16997) (-84.20670 3.11095) (-74.40450 -2.98094) (-76.67820 1.96564) (-79.95980 2.68183) (-77.31420 -1.92260) (-74.60450 -1.89189) (-67.98670 1.99457) (-80.17960 -1.95013) (-79.44400 -2.70955) (-81.89010 3.12971) (-80.18220 1.76888) (-82.94420 2.77531))) (define prep (lambda (p) (let ((ampl (list-ref p 0)) (phase (list-ref p 1))) (list (s:db-amp ampl) phase)))) ; ((vla-partial 440 1 1 0) 1) (define vla-partial (lambda (freq rise fall detune) (lambda (n) (let* ((m (* n 2)) (ampl (kr: (BufRd 1 0 m 0 0))) (phase (kr: (BufRd 1 0 (+ m 1) 0 0)))) (Mul (FSinOsc (kr: (Mul3 freq (+ n 1) (Add (Mul (LFNoise1 1) detune) 1))) phase) (Linen ; kr only - requires kr gate input (kr: (Impulse 0 0)) (Mul rise (Rand 0.75 1.25)) ampl (Mul fall (Rand 0.75 1.25)) doNothing)))))) ; (vla-plyr 1) (define vla-plyr (lambda (n) (letc ((buf 0) (ampl 0.1) (freq 129.897) (rise 0.1) (fall 0.5) (loc 0.0) (detune 0.001)) (let ((s (foldl1 Add (map (vla-partial freq rise fall detune) (enumFromTo 0 (- n 1)))))) (Mrg2 (Pan2 s loc ampl) (DetectSilence s 0.001 0.2 removeSynth)))))) (define vla-get-cps (lambda (b) (s:midi-cps (+ (s:l-choose b) (s:degree-to-key (s:l-choose (list 0 1 2 3 4 5 6 7 8)) (list 0 2 3 5 7 8 10) 12))))) (define pattern (lambda (fd) (begin (sendMessage fd (s_new "plyr36" -1 addToTail 1 (list "buf" 0 "loc" (s:rand -1 1) "ampl" (s:rand 0.05 0.1) "freq" (vla-get-cps (list 24 36)) "detune" (s:rand 0.001 0.005) "rise" (s:rand 1 2) "fall" (s:rand 4 7)))) (thread-sleep 5) (pattern fd)))) (withSc3 (lambda (fd) (begin (async fd (b_alloc 0 (* (length vla) 2) 1)) (sendMessage fd (b_setn1 0 0 (flatten (map prep vla)))) (sendSynth fd "plyr36" (Out 0 (vla-plyr 36))) (pattern fd))))