«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)) + …