// title: Wibbly Tones // author: 38nonprivate // description: // 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. // code: ( 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]);