«Wibbly Tones» by 38nonprivate
on 12 Aug'11 20:27 inConcept: 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]);
reception
The SynthDef is named "wibbly", but the Synth calls "wibbly86d".
thanx
You can write this a bit simpler: Select.kr(Demand.kr(trig, 0, dseq_index), freq) + …
Demand.kr(trig, 0, Dseq(freq, inf)) + …