// title: fuzzy sirens // author: clarkenciel // description: // code: ( SynthDef(\bank, { arg startFreqs = #[300, 400, 500, 600], endFreqs = #[300, 400, 500, 600], vol = 40, bw = 0.0025, dur; var signal = WhiteNoise.ar; var shape = EnvGen.kr( Env([0, 1, 1, 0], [dur * 0.05, dur, dur * 0.05], [\sin, \hold, \lin]), doneAction: 2 ); signal = BBandPass.ar( signal, freq: (startFreqs +++ endFreqs).collect { arg freqPair; var freq = Line.kr(freqPair[0], freqPair[1], dur: dur); var wobble = SinOsc.kr(0.01 + 0.05.rand, mul: 10, phase: 1 - 2.rand); freq + wobble }, mul: shape * vol, bw: bw ); Out.ar(0, Mix.ar(signal) ! 2) }).store; ) ( var freqPairs = Pseq([ [[300, 400, 500, 600], 450 ! 4], [450 ! 4, [300, 400, 500, 600]] ], 1 ); Pbind( \instrument, \bank, #[startFreqs, endFreqs], freqPairs, \dur, 3600, \vol, 1.0, \amp, 0.9 ).play; ) // for recording ( var options = ServerOptions.new.numOutputBusChannels = 2; var freqPairs = Pseq([ [[300, 400, 500, 600], 450 ! 4], [450 ! 4, [300, 400, 500, 600]] ], 1 ); Pbind( \instrument, \bank, #[startFreqs, endFreqs], freqPairs, \dur, 1800, \vol, 1.0, \amp, 0.9 ).asScore(duration: 3960).recordNRT( "/home/danny/dev/live-code/sc/sketches/resources/20171126.osc", "/home/danny/dev/live-code/sc/sketches/sounds/20171126.wav", headerFormat: "WAV", options: options ); )