«Wibbly Tones» by 38nonprivate

on 12 Aug'11 14:27 in texturetriadwibbles

Concept: instead of having 3 sustained tones making up a triad, how about having several tones that jump to the notes at random? If a number of these are heard together, the effect of hearing the triad will be the same, except the texture will be much more involving. Try setting noOfSynths to 1 or 2 to understand the concept. Room for improvement: pan the tones, perhaps using Splay to make a nice stereo effect.

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
(
SynthDef("wibbly", 
	{
	arg out = 0, freq = #[60, 65, 57], amp = 0.5, lagTime = 0.1, trigRate = 3, detune = 0.2, noOfSynths = 20;
	var output;
	var maxNoOfTones = 50;
	
	output = Mix.fill(
		maxNoOfTones,
		{
		arg index;
	
		var trig, pitches, dseq_index;
		trig = Impulse.kr(0) + Dust2.kr(trigRate);
		dseq_index = Drand([0, 1, 2], inf);
		
		pitches = 	
			Lag.kr(
				Select.kr(Demand.kr(trig, 0, dseq_index), freq) + TRand.kr(detune.neg, detune, trig),
				lagTime * Rand(0.8, 1.2)
			).midicps;
		
		
		SinOscFB.ar(
			pitches,
			Rand(0, 0.8), 
			amp * Lag.kr(TRand.kr(0.8, 1.0, trig), lagTime * Rand(0.8, 1.2))
		)
		*
		(if(index < noOfSynths, 1, 0));
	
		}
	);
	
	output = Mix(output) * (1 / noOfSynths) * Line.kr(0.0, 1.0, 0.3);
	
	Out.ar(out,
	 
		output ! 2
	);
	
	}
).send(Server.default);
)

// try different values for the 3 tones
a = Synth(\wibbly, [\freq, [60, 65, 69]]);
a.set( \freq, [60, 60.2, 60.4]);
a.set( \freq, [34, 39, 43]);
raw 1002 chars (focus & ctrl+a+c to copy)
reception
comments
john user 12 Aug'11 15:12

The SynthDef is named "wibbly", but the Synth calls "wibbly86d".

38nonprivate user 12 Aug'11 16:18

thanx

telephon user 14 Aug'11 16:31

You can write this a bit simpler: Select.kr(Demand.kr(trig, 0, dseq_index), freq) + …

Demand.kr(trig, 0, Dseq(freq, inf)) + …