«chillinoisy» by vividsnow

on 06 Jan'12 20:40 in experimentalbackground

background sound inspired by rukano tweet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
(
var max_spawn = 40; // reduce if get high load
var r_prob = 0.5; // prob of field rotation
fork { loop { // original rukano tweet: http://goo.gl/ttj30
	var len = 16.rrand(3.5);
	var h = [100,800,3000].choose;
	play {
		var sig = Splay.ar({
			    SinOsc.ar(exprand(60,h),0,0.1)
		    } ! max_spawn.rrand(2), 
			1, 
			LFGauss.ar(len,1/4.rrand(2.0),0,0,2)
		);
		r_prob.coin.if({ Rotate2.ar(sig[0],sig[1],LFSaw.kr((len/8).rrand(len).reciprocal * [-1,1].choose)) },{ sig });
	};
	len.wait;
}};
fork { loop {
	var len = 16.rrand(3.5);
	var top_freq = Array.rand(10, 100, 7000).choose;
	var ugens = [LFPulse,SinOsc,LFSaw,LFNoise2];
	var kind = 0.5.coin.if({ugens},{[ugens.choose]}); // mixed or not
	play { 
		var sig = Splay.ar({ kind.choose.ar(
			0.5.coin.if({
				Line.kr(
					top_freq.linlin(100, 7000, 40, 300).perform(0.5.coin.if({ \exprand },{ \rand }), top_freq),
					top_freq.linlin(100, 7000, 40, 300).perform(0.5.coin.if({ \exprand },{ \rand }), top_freq),
					len.rrand(len/4)
				)},{
					top_freq.linlin(100, 7000, 40, 300).perform(0.5.coin.if({ \exprand },{ \rand }), top_freq)
				}
			), 
			mul: 0.5.coin.if({0.05.rrand(0.25)},{Line.kr(0.3.rrand(0), 0.3.rrand(0), (len/4).rrand(len))})
		)} ! 5.exprand(max_spawn))
		*
		LFGauss.kr(
			Line.kr(
				(1..20).choose.linexp(1, 20, 1/10, 20), 
				(1..20).choose.linexp(1, 20, 1/10, 20), 
				len.rrand(len/4)
			), 
			(3,3.2..6).choose.reciprocal, 
			loop: 0.7.coin.binaryValue
		)
		*
		EnvGen.kr(Env([0,1,0],[0.03.exprand(2), len.rrand(len/2)],[4.rrand(-4)]), doneAction: 2);
		r_prob.coin.if({ Rotate2.ar(sig[0],sig[1],LFSaw.kr((len/8).rrand(len).reciprocal * [-1,1].choose)) },{ sig });
	};
	len.postln.wait;
}};
fork { loop { 
	var len = 40.rrand(5.0);
	var ugens = [Klank, DynKlank];
	var kind = 0.5.coin.if({ugens},{[ugens.choose]}); // mixed or not
	play {
		var sig = LPF.ar(
			Splay.ar({ kind.choose.ar(
				`[
					Array.perform(0.5.coin.if({\rand},{\exprand}), 10, 60.exprand(300), 18000.rrand(4500)),
					Array.rand(10, 0.05, 0.25),
					Array.rand(10, 0, pi),
				],
				Impulse.ar(TExpRand.kr(0.1, 10, Dust.kr((2,4..16).choose/len))),
				0.5.coin.if({1},{Line.kr(1, 0.5.rrand(3), 0.5.rrand(len))})
			) } ! 1.exprand(max_spawn)),
			2000.rrand(18000),
			EnvGen.kr(
				Env(
					Array.rand(8, 0.2, 0.01).add(0).normalize * 0.1.rrand(0.33), 
					Array.rand(7, 0, 1.0).add(1).normalizeSum * len,
					Array.rand(8, -4, 4.0) 
				), 
				doneAction: 2
			)
		);
		r_prob.coin.if({ Rotate2.ar(sig[0],sig[1],LFSaw.kr((len/8).rrand(len).reciprocal * [-1,1].choose)) },{ sig });
	};
	len.postln.wait; 
}};
)
raw 2671 chars (focus & ctrl+a+c to copy)
reception
comments
rukano user 09 Jan'12 03:03

Hey, I always get this error, then I hear the clusters anyway, but nothing else:

WARNING: FunctionDef contains variable declarations and so will not be inlined. in file 'selected text' line 5 char 50: var top_freq = Array.rand(10, 100, 7000).choose;•

var ugens = [LFPulse,SinOsc,LFSaw,LFNoise2];

a Routine ERROR: Message 'asInteger' not understood. RECEIVER: false ARGS: CALL STACK: DoesNotUnderstandError:reportError 143AAA50 arg this = <instance of DoesNotUnderstandError> Nil:handleError 143A9D90

vividsnow user 09 Jan'12 14:12

Hi! I replaced "asInterger" (which works in sc3.5) with "binaryValue" - hope it will help

rukano user 12 Jan'12 14:57

Works, nice! :)

beryann.parker user 16 Jan'12 08:31

excellent, complex and beautiful...!!

beryann.parker user 21 Feb'12 03:27

Some clicks each time it loops probably?