1////////////////////////////////////////////////////////////////////////// 2 3( 4// analog bubbles 5{ 6 f = LFSaw.kr(0.4, 0, 24, LFSaw.kr([8,7.23], 0, 3, 80)).midicps; // glissando function 7 CombN.ar(SinOsc.ar(f, 0, 0.04), 0.2, 0.2, 4) // echoing sine wave 8}.play) 9 10////////////////////////////////////////////////////////////////////////// 11 12( 13// LFO modulation of Pulse waves and resonant filters 14play({ 15 CombL.ar( 16 RLPF.ar(LFPulse.ar(FSinOsc.kr(0.05,0,80,160),0,0.4,0.05), 17 FSinOsc.kr([0.6,0.7],0,3600,4000), 0.2), 18 0.3, [0.2,0.25], 2) 19})) 20 21////////////////////////////////////////////////////////////////////////// 22 23( 24// moto rev 25{ 26 RLPF.ar(LFPulse.ar(SinOsc.kr(0.2, 0, 10, 21), 0.1), 100, 0.1).clip2(0.4) 27}.play) 28 29////////////////////////////////////////////////////////////////////////// 30 31( 32// scratchy 33play({ RHPF.ar(BrownNoise.ar([0.5,0.5], -0.49).max(0) * 20, 5000, 1) }) 34) 35 36////////////////////////////////////////////////////////////////////////// 37 38( 39// sprinkler 40play({ 41 BPZ2.ar(WhiteNoise.ar(LFPulse.kr(LFPulse.kr(0.09, 0, 0.16, 10, 7), 0, 0.25, 0.1))) 42})) 43 44( 45play({ 46 BPZ2.ar(WhiteNoise.ar(LFPulse.kr(MouseX.kr(0.2,50), 0, 0.25, 0.1))) 47})) 48 49////////////////////////////////////////////////////////////////////////// 50 51( 52// harmonic swimming 53play({ 54 var f, p, z, offset; 55 f = 50; // fundamental frequency 56 p = 20; // number of partials per channel 57 z = 0.0; // start of oscil daisy chain 58 offset = Line.kr(0, -0.02, 60); // causes sound to separate and fade 59 p.do({ arg i; 60 z = FSinOsc.ar( 61 f * (i+1), // freq of partial 62 0, 63 max(0, // clip negative amplitudes to zero 64 LFNoise1.kr( 65 6 + [4.0.rand2, 4.0.rand2], // amplitude rate 66 0.02, // amplitude scale 67 offset // amplitude offset 68 ) 69 ), 70 z 71 ) 72 }); 73 z 74})) 75 76////////////////////////////////////////////////////////////////////////// 77 78( 79// harmonic tumbling 80play({ 81 var f, p, z, trig; 82 f = 80; // fundamental frequency 83 p = 10; // number of partials per channel 84 z = 0.0; // start of oscil daisy chain 85 trig = XLine.kr([10,10], 0.1, 60); // trigger probability decreases over time 86 p.do({ arg i; 87 z = FSinOsc.ar( 88 f * (i+1), // freq of partial 89 0, 90 Decay2.kr( 91 Dust.kr( 92 trig, // trigger rate 93 0.02 // trigger amplitude 94 ), 95 0.005, // grain attack time 96 0.5.rand // grain decay time 97 ), 98 z 99 ) 100 }); 101 z 102})) 103 104////////////////////////////////////////////////////////////////////////// 105 106( 107{ 108// Klank - bank of resonators excited by impulses 109var n, p, z; 110n = 5; // number of simultaneous instruments 111p = 15; // number of partials per instrument 112 z = `[ // filter bank specification : 113 Array.fill(p, { 80 + 10000.0.linrand} ), // frequencies 114 Array.fill(p, { 1.0.rand2 }), // amplitudes 115 Array.fill(p, { 0.2 + 8.0.rand } ) // ring times 116 ]; 117 Pan2.ar( 118 Klank.ar(z, Dust.ar(0.7, 0.04)), 119 1.0.rand2 120 ) 121}.play; 122) 123 124////////////////////////////////////////////////////////////////////////// 125 126( 127{ 128// Klank - excited by noise bursts 129var n, p; 130var exciter, spec; 131n = 5; // number of simultaneous instruments 132p = 8; // number of partials per instrument 133 exciter = Decay.ar(Dust.ar(0.6, 0.001), 3.1, WhiteNoise.ar); 134 spec = Array.fill(2, { 135 `[ 136 Array.fill(p, { 80 + 10000.0.linrand} ), 137 nil, 138 Array.fill(p, { 0.2 + 4.0.rand } ) 139 ] 140 }); 141 Klank.ar(spec, exciter) 142}.play; 143) 144 145////////////////////////////////////////////////////////////////////////// 146 147( 148// what was I thinking? 149{ 150 z = RLPF.ar( 151 Pulse.ar( 152 max( SinOsc.kr(4, 0, 1, 80), 153 Decay.ar(LFPulse.ar(0.1, 0, 0.05, Impulse.ar(8, 0, 500)), 2) 154 ), 155 LFNoise1.kr(0.157, 0.4, 0.5), 156 0.04), 157 LFNoise1.kr(0.2, 2000, 2400), 158 0.2); 159 y = z * 0.6; 160 z + [ 161 CombL.ar(y, 0.06, LFNoise1.kr(0.3.rand, 0.025, 0.035), 1) 162 + CombL.ar(y, 0.06, LFNoise1.kr(0.3.rand, 0.025, 0.035), 1) 163 , 164 CombL.ar(y, 0.06, LFNoise1.kr(0.3.rand, 0.025, 0.035), 1) 165 + CombL.ar(y, 0.06, LFNoise1.kr(0.3.rand, 0.025, 0.035), 1) 166 ] 167}.play; 168) 169 170////////////////////////////////////////////////////////////////////////// 171 172( 173// police state 174var n; 175n = 4; // number of sirens 176play({ 177 CombL.ar( 178 Mix.arFill(n, { 179 Pan2.ar( 180 SinOsc.ar( 181 SinOsc.kr(0.1.rand + 0.02, 2pi.rand, 600.rand, 1000 + 300.rand2), 182 0, 183 LFNoise2.ar(100 + 20.0.rand2, 0.1) 184 ), 185 1.0.rand2 186 ) 187 }) 188 + LFNoise2.ar(LFNoise2.kr([0.4,0.4], 90, 620), LFNoise2.kr([0.3,0.3], 0.15, 0.18)), 189 0.3, 0.3, 3) 190})) 191 192////////////////////////////////////////////////////////////////////////// 193 194( 195{ 196// cymbalism 197var p; 198 var z, f1, f2; 199p = 15; // number of partials per channel per 'cymbal'. 200 f1 = 500 + 2000.0.rand; 201 f2 = 8000.0.rand; 202 z = Array.fill(2, { 203 `[ // sine oscil bank specification : 204 y = Array.fill(p, { f1 + f2.rand} ), // frequencies 205 nil, // amplitudes default to 1.0 206 Array.fill(p, { 1.0 + 4.0.rand }) // ring times 207 ] 208 }); 209 Klank.ar(z, Decay.ar(Impulse.ar(3.0.rand + 0.5), 0.004, WhiteNoise.ar(0.03))); 210}.play; 211) 212 213////////////////////////////////////////////////////////////////////////// 214 215( 216// synthetic piano 217var n; 218n = 6; // number of keys playing 219play({ 220 Mix.ar(Array.fill(n, { // mix an array of notes 221 var delayTime, pitch, detune, strike, hammerEnv, hammer; 222 223 // calculate delay based on a random note 224 pitch = (36 + 54.rand); 225 strike = Impulse.ar(0.1+0.4.rand, 2pi.rand, 0.1); // random period for each key 226 hammerEnv = Decay2.ar(strike, 0.008, 0.04); // excitation envelope 227 Pan2.ar( 228 // array of 3 strings per note 229 Mix.ar(Array.fill(3, { arg i; 230 // detune strings, calculate delay time : 231 detune = #[-0.05, 0, 0.04].at(i); 232 delayTime = 1 / (pitch + detune).midicps; 233 // each string gets own exciter : 234 hammer = LFNoise2.ar(3000, hammerEnv); // 3000 Hz was chosen by ear.. 235 CombL.ar(hammer, // used as a string resonator 236 delayTime, // max delay time 237 delayTime, // actual delay time 238 6) // decay time of string 239 })), 240 (pitch - 36)/27 - 1 // pan position: lo notes left, hi notes right 241 ) 242 })) 243}) 244) 245 246////////////////////////////////////////////////////////////////////////// 247 248( 249var a, c, d, s, z, y; 250// reverberated sine percussion 251d = 6; // number of percolators 252c = 5; // number of comb delays 253a = 4; // number of allpass delays 254 255play({ 256 // sine percolation sound : 257 s = Mix.ar(Array.fill(d, { Resonz.ar(Dust.ar(2/d, 50), 200 + 3000.0.rand, 0.003)}) ); 258 259 // reverb predelay time : 260 z = DelayN.ar(s, 0.048); 261 262 // 7 length modulated comb delays in parallel : 263 y = Mix.ar(CombL.ar(z, 0.1, LFNoise1.kr(Array.fill(c,{0.1.rand}), 0.04, 0.05), 15)); 264 265 // chain of 4 allpass delays on each of two channels (8 total) : 266 a.do({ y = AllpassN.ar(y, 0.050, [0.050.rand,0.050.rand], 1) }); 267 268 // add original sound to reverb and play it : 269 s+(0.2*y) 270})) 271 272////////////////////////////////////////////////////////////////////////// 273 274( 275// reverberated noise bursts 276var a, c, d, s, z, y; 277play({ 278 // pink noise percussion sound : 279 s = Decay.ar(Dust.ar(0.6, 0.2), 0.15, PinkNoise.ar); 280 281 // reverb predelay time : 282 z = DelayN.ar(s, 0.048); 283 284 // 6 modulated comb delays in parallel : 285 y = Mix.ar(CombL.ar(z, 0.1, LFNoise1.kr(Array.fill(6,{0.1.rand}), 0.04, 0.05), 15)); 286 287 // chain of 4 allpass delays on each of two channels (8 total) : 288 4.do({ y = AllpassN.ar(y, 0.050, [0.050.rand,0.050.rand], 1) }); 289 290 // add original sound to reverb and play it : 291 s+y 292})) 293 294////////////////////////////////////////////////////////////////////////// 295 296( 297 // sample and hold liquidities 298 // mouse x controls clock rate, mouse y controls center frequency 299{ 300 var clockRate, clockTime, clock, centerFreq, freq, panPos, patch; 301 302 clockRate = MouseX.kr(1, 200, 1); 303 clockTime = clockRate.reciprocal; 304 clock = Impulse.kr(clockRate, 0.4); 305 306 centerFreq = MouseY.kr(100, 8000, 1); 307 freq = Latch.kr(WhiteNoise.kr(centerFreq * 0.5, centerFreq), clock); 308 panPos = Latch.kr(WhiteNoise.kr, clock); 309 patch = CombN.ar( 310 Pan2.ar( 311 SinOsc.ar( 312 freq, 313 0, 314 Decay2.kr(clock, 0.1 * clockTime, 0.9 * clockTime) 315 ), 316 panPos 317 ), 318 0.3, 0.3, 2 319 ); 320 patch 321}.play; 322) 323 324////////////////////////////////////////////////////////////////////////// 325 326( 327// sweepy noise - mouse controls LFO 328{ 329 var lfoDepth, lfoRate, freq, filtered; 330 lfoDepth = MouseY.kr(200, 8000, 'exponential'); 331 lfoRate = MouseX.kr(4, 60, 'exponential'); 332 freq = LFSaw.kr(lfoRate, 0, lfoDepth, lfoDepth * 1.2); 333 filtered = RLPF.ar(WhiteNoise.ar([0.03,0.03]), freq, 0.1); 334 CombN.ar(filtered, 0.3, 0.3, 2, 1, filtered); 335}.play 336) 337 338////////////////////////////////////////////////////////////////////////// 339 340( 341{ 342 var a, a0, a1, b, c, pan; 343 a0 = 200.0.rand + 40; 344 a1 = a0 + 1.0.rand2; 345 a = [a0, a1]; 346 b = 2000.0.rand; 347 c = [a0 + 1.0.rand2, a1 + 1.0.rand2]; 348 SinOsc.ar(SinOsc.ar(a, 0, 1.0.rand * b, b), 0, SinOsc.kr(c, 0, 0.05, 0.05)) 349}.play; 350) 351 352////////////////////////////////////////////////////////////////////////// 353 354( 355 356// aleatoric quartet 357// mouse x controls density 358 359play({ 360 var amp, density, dmul, dadd, signal; 361 amp = 0.07; 362 density = MouseX.kr(0.01,1); // mouse determines density of excitation 363 364 // calculate multiply and add for excitation probability 365 dmul = density.reciprocal * 0.5 * amp; 366 dadd = dmul.neg + amp; 367 368 signal = Mix.ar( // mix an array of 4 instruments 369 Array.fill(4, { 370 var excitation, freq; 371 372 excitation = PinkNoise.ar( 373 // if amplitude is below zero it is clipped 374 // density determines the probability of being above zero 375 max(0, LFNoise1.kr(8, dmul, dadd)) 376 ); 377 378 freq = Lag.kr( // lag the pitch so it glissandos between pitches 379 LFNoise0.kr( // use low freq step noise as a pitch control 380 [1, 0.5, 0.25].choose, // choose a frequency of pitch change 381 7, // +/- 7 semitones 382 66 + 30.rand2 // random center note 383 ).round(1), // round to nearest semitone 384 0.2 // gliss time 385 ).midicps; // convert to hertz 386 387 Pan2.ar( // pan each intrument 388 CombL.ar(excitation, 0.02, freq.reciprocal, 3), // comb delay simulates string 389 1.0.rand2 // random pan position 390 ); 391 })); 392 393 // add some reverb via allpass delays 394 5.do({ signal = AllpassN.ar(signal, 0.05, [0.05.rand,0.05.rand], 1) }); 395 LeakDC.ar( signal, 0.995); // delays build up a lot of DC, so leak it out here. 396}) 397) 398 399//////////////////////////////////////////////////////////////////////////////////////////////// 400 401( 402{ 403 var mix, out, n=8; 404 r = LFNoise0.kr(rrand(0.2,1.0), 1,1).squared * MouseX.kr; 405 mix = Klank.ar( 406 `[ 407 Array.fill(n, { exprand(1.0,20.0) }), 408 nil, 409 Array.fill(n, { 0.2.rand }) 410 ], 411 Blip.ar(r, [rrand(2,5),rrand(2,5)], 0.1) 412 ).fold2(0.2).cubed * 12; 413 mix = Mix.arFill(3, { CombL.ar(mix, 0.1, 0.03.linrand, 4.0.linrand) }); 414 out = mix.distort * 0.5; 415 6.do({ out = AllpassN.ar(out, 0.05, [0.05.rand, 0.05.rand], 3) }); 416 out = LeakDC.ar(out); 417}.play 418) 419 420//////////////////////////////////////////////////////////////////////////////////////////////// 421 422( 423{ 424 var root, scale; 425 426 // struck string 427 var trig, p, exc, x, freq, s; 428 root = rrand(3,6); 429 scale = #[0,2,4,5,7,9,11]; 430 431 freq = (scale.choose + #[24,36,48,60,72,84].choose + root).midicps; 432 exc = BrownNoise.ar( 433 Decay2.kr( 434 Impulse.kr(#[0.125,0.25,0.375,0.5,0.75,1,1.5,2,3,4].choose,0,[0.05,0.05] 435 ), 0.005, 0.05)); 436 s = (Klank.ar(`[ 437 Array.series(16, freq, freq), 438 Array.geom(16,1,rrand(0.7,0.999)), 439 Array.fill(16, {rrand(0.1,2.5)}) 440 ], exc) * 0.1).softclip; 441}.play 442) 443 444/////////////////////////////////////////////////////////////////////////////////////////////// 445 446( 447{ 448 var root, scale, s; 449 // wind chords 450 var trig, p, n, exc, x, base, range; 451 //root = rrand(3,6); 452 root = 5; 453 scale = #[0,2,4,5,7,9,11]; 454 n = 5; 455 exc = BrownNoise.ar([0.007,0.007]) * max(0, LFNoise1.kr(exprand(0.125,0.5), 1.25, -0.25)); 456 s = (Klank.ar(`[Array.fill(n, {(scale.choose + #[36,48,60,72,84].choose + root).midicps}),nil,Array.fill(n, {rrand(0.1,2.0)})], exc) * 0.1).softclip; 457}.play; 458) 459 460/////////////////////////////////////////////////////////////////////////////////////////////// 461 462( 463{ 464 465 // wind metals 466 var trig, s, p, n, exc, x, base, range; 467 n = 6; 468 base = exprand(60,4000); 469 range = rrand(500.0,8000.0); 470 exc = BrownNoise.ar([0.007,0.007]) * max(0, LFNoise1.kr(exprand(0.125,0.5), 0.75, 0.25)); 471 s = (Klank.ar(`[Array.fill(n, {linrand(range)+base}),nil,Array.fill(n, {rrand(0.1,2.0)})], exc) * 0.1).softclip; 472}.play; 473) 474 475/////////////////////////////////////////////////////////////////////////////////////////////// 476 477( 478{ 479var root, scale; 480 // bowed string 481 var trig, p, s, exc, x, freq; 482 //root = rrand(3,6); 483 root = 5; 484 scale = #[0,2,4,5,7,9,11]; 485 freq = (scale.choose + #[24,36,48,60,72,84].choose + root).midicps; 486 exc = BrownNoise.ar([0.007,0.007]) * max(0, LFNoise1.kr(exprand(0.125,0.5), 0.6, 0.4)); 487 s = (Klank.ar(`[ 488 Array.series(12, freq, freq), 489 Array.geom(12,1,rrand(0.7,0.9)), 490 Array.fill(12, {rrand(1.0,3.0)}) 491 ], exc) * 0.1).softclip; 492}.play; 493) 494 495/////////////////////////////////////////////////////////////////////////////////////////////// 496 497( 498{ 499 var root, scale, s; 500 // whistle 501 var trig, p, exc, x, freq; 502 root = 5; 503 scale = #[0,2,4,5,7,9,11]; 504 freq = (scale.choose + #[84,96].choose + root).midicps; 505 exc = BrownNoise.ar([0.05,0.05]) * max(0, SinOsc.kr(exprand(0.125,0.5), 2pi.rand)); 506 s = (Klank.ar(`[ 507 Array[freq], 508 nil, 509 Array[0.3] 510 ], exc) * 0.1).softclip; 511}.play 512) 513 514/////////////////////////////////////////////////////////////////////////////////////////////// 515 516( 517{ 518 519 // metallic 520 var trig, p, exc, x, s; 521 exc = BrownNoise.ar(Decay2.kr(Impulse.kr(#[0.125,0.25,0.375,0.5,0.75,1,1.5,2].choose,0,[0.04,0.04]), 0.005, 0.05)); 522 s = (Klank.ar(`[Array.fill(16, {linrand(8000.0)+60}),nil,Array.fill(16, {rrand(0.1,2.0)})], exc) * 0.1).softclip; 523}.play 524) 525 526/////////////////////////////////////////////////////////////////////////////////////////////// 527 528( 529{ 530 var x, r, f; 531 x = Mix.fill(4, { 532 LFSaw.ar((LFPulse.kr(0.06,0,0.5,2,34 + {0.1.rand2}.dup)).midicps, 0, 0.01) 533 }); 534 r = MouseY.kr(0.1,0.7); 535 f = LinExp.kr(SinOsc.kr(0.07),-1,1,300,5000); 536 x = RLPF.ar(x, f, r).softclip; 537 x = RLPF.ar(x, f, r).softclip; 538}.play; 539) 540 541( 542{ 543Pan2.ar( 544 SinOsc.ar(rrand(24,108).midicps, 2pi.rand, 545 546 Mix.ar(SinOsc.ar(exprand(0.3,8) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand], 0.1)).max(0) 547 * Mix.ar(SinOsc.ar(exprand(6,24) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand], 0.1)).abs 548 ), 1.0.rand2); 549 550}.play; 551) 552 553 554( 555{ 556 Pan2.ar( 557 HPZ1.ar(LFTri.ar(rrand(24,128).midicps, 2pi.rand, 558 559 Mix.ar(SinOsc.ar(exprand(0.3,8) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand], 0.04)).max(0) 560 * Mix.ar(SinOsc.ar(exprand(6,24) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand])).abs 561 )), 1.0.rand2); 562}.play; 563) 564 565( 566{ 567 568 x = Pan2.ar( 569 LPZ2.ar(LFPulse.ar(80 * rrand(1,32), 2pi.rand, 0.1, 570 571 Mix.ar(SinOsc.ar(exprand(0.3,8) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand], 0.04)).max(0) 572 * Mix.ar(SinOsc.ar(exprand(6,24) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand])).abs 573 574 )), 1.0.rand2); 575 2.do({ x = AllpassN.ar(x, 0.05, [0.05.rand,0.05.rand], 3.0.rand, 2); }); 576 x 577 578}.play 579) 580 581 582( 583{ 584 x = Pan2.ar( 585 LPZ2.ar(LFPulse.ar(80 * (1 + 32.linrand), 2pi.rand, 0.1, 586 587 Mix.ar(SinOsc.ar(0.125 * [2**rrand(0,6),2**rrand(0,6)], [2pi.rand,2pi.rand], 0.04)).max(0) 588 * Mix.ar(SinOsc.ar(4 * [rrand(1,6),rrand(1,6)], [2pi.rand,2pi.rand])).abs 589 590 )), 1.0.rand2); 591 2.do({ x = AllpassN.ar(x, 0.05, [0.05.rand,0.05.rand], 4.0.rand, 2); }); 592 x 593 594 }.play; 595) 596 597( 598{ 599 600 Pan2.ar( 601 BPZ2.ar(LFPulse.ar(120 * 100.rand, 2pi.rand, 0.5, 602 603 Mix.ar(SinOsc.ar(exprand(0.3,8) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand], 0.04)).max(0) 604 * Mix.ar(SinOsc.ar(exprand(6,24) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand])).abs 605 )), 1.0.rand2); 606}.play 607) 608 609( 610{ 611 612 Pan2.ar( 613 Resonz.ar(LFPulse.ar(exprand(50,600), 2pi.rand, 0.5, 614 615 Mix.ar(SinOsc.ar(exprand(0.3,8) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand], 0.1)).max(0) 616 * Mix.ar(SinOsc.ar(exprand(6,24) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand])).abs 617 ), exprand(100,2000), 0.2), 1.0.rand2); 618}.play 619) 620 621( 622{ 623 624 Pan2.ar( 625 RLPF.ar(LFPulse.ar(exprand(50,600), 2pi.rand, 0.5, 626 627 Mix.ar(SinOsc.ar(exprand(0.3,8) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand], 0.1)).max(0) 628 * Mix.ar(SinOsc.ar(exprand(6,24) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand])).abs 629 ), exprand(100,2000), 0.2), 1.0.rand2); 630}.play 631) 632 633{ SinOsc.ar(exprand(100,6000), 0, LFNoise2.ar(exprand(4,24),[0.07,0.07])) }.play; 634 635( 636{ 637 638 Pan2.ar( 639 RLPF.ar(LFPulse.ar(exprand(50,600), 2pi.rand, 0.5, 640 641 Mix.ar(SinOsc.ar(exprand(0.3,8) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand], 0.1)).max(0) 642 * Mix.ar(SinOsc.ar(exprand(6,24) * [rrand(0.7,1.3),1], [2pi.rand,2pi.rand])).abs 643 ), exprand(100,2000), 0.2), 1.0.rand2); 644}.play; 645) 646 647///////////////////////////////////////////////////////////////////////////////// 648 649 650( 651{ 652 var freq, x; 653 freq = LFPulse.kr(20.0.rand, 0, 1.0.rand, 654 LFPulse.kr(4.0.rand, 0, 1.0.rand, 8000.rand, 2000.rand)); 655 freq = freq + LFPulse.kr(20.0.rand, 0, 1.0.rand, 656 LFPulse.kr(4.0.rand, 0, 1.0.rand, 8000.rand, 2000.rand)); 657 x = LFPulse.ar(freq+[0.5,0.5].rand2, 0, 0.5, 0.15, -0.05); 658 AllpassN.ar(x, 0.05, [0.05,0.05].rand, 0.3); 659}.play 660) 661 662( 663{ 664 var out, lfoDepth, lfoRate, freq, filtered; 665 lfoDepth = MouseY.kr(200, 8000, 1); 666 lfoRate = MouseX.kr(4, 60, 1); 667 freq = LFSaw.kr(lfoRate, 0, lfoDepth, lfoDepth * 1.2); 668 filtered = RLPF.ar({WhiteNoise.ar(0.03)}.dup, freq, 0.1); 669 out = CombN.ar(filtered, 0.3, 0.3, 2, 1, filtered); 670 out 671}.play; 672) 673 674///////////////////////////////////////////////////////////////////////////////////////////////////////////////// 675 676 677// adding many things to the top level spawn. 678( 679{ 680 var exc, amp; 681 amp = LFPulse.kr(4,0,0.1,0.002); 682 exc = LPZ1.ar(GrayNoise.ar([amp,amp])); 683 Klank.ar(`[FloatArray.fill(4, { rrand(80.0,400.0) }), 684 nil, 685 FloatArray[1, 1, 1, 1]], exc); 686}.play; 687) 688 689( 690{ 691 var exc, amp; 692 amp = LFPulse.kr(8,0,0.1,0.002); 693 exc = LPZ1.ar(GrayNoise.ar([amp,amp])); 694 Klank.ar(`[FloatArray.fill(4, { rrand(80.0,400.0) }), 695 nil, 696 FloatArray[1, 1, 1, 1]], exc).abs; 697}.play; 698) 699 700( 701{ 702 CombN.ar(LPF.ar(LFNoise0.ar(MouseX.kr([300,2200])*[1,1.1],LFPulse.kr(1,0,0.3,0.1)), 800).abs, 0.2, [0.2,0.17], 5); 703}.play; 704) 705 706( 707{ 708 var amp, my; 709 amp = LFPulse.kr(0.5,0,0.5); 710 my = MouseY.kr(400,3200); 711 Mix.arFill(8, { 712 var x; 713 x = Formlet.ar(Dust.ar(12,[0.05,0.05]) * amp, my * exprand(0.5,2.0), 0.005, 0.1); 714 AllpassN.ar(x, 0.05,0.05.rand, 8); 715 }); 716}.play; 717) 718