//complexiteit verminderen, grenzen aan pitch ( var filename, sound, signal; filename = "Macintosh HD:Ass-mon.aiff"; //here give the full pathway to the soundfile sound = SoundFile.new; if (sound.read(filename), { signal = sound.data.at(0); Synth.play({arg synth; var src, pitch=1, freq, src2, hasFreq, out,amp, out2,out1; var pitch2=1, follow1, follow2, follow3, follow4, pitch3=1; var followfilt1,followfilt2,out0,out01; var signal1, signal2, signal3, signal4,oute1,oute2; var follow11, follow22, follow33, follow44, pitch0; var controla,controlb,controlc,controld; var controle,controlp1,controlp2,controlp3; var outg1, outg2,outg3, links, rechts, voor; var voorlinks,voorrechts; controla = MIDIController.kr (8,1, 0.001, 1,'exponential'); controlb = MIDIController.kr (8,2, 0.001, 1,'exponential'); controlc = MIDIController.kr (8,3, 0.001, 1,'exponential'); controld = MIDIController.kr (8,4, 0.001, 1,'exponential'); controle = MIDIController.kr (8,5, 0.001, 1,'exponential'); controlp1 = MIDIController.kr (8,6, 0.4, 0.1,'linear'); controlp2 = MIDIController.kr (8,7, 0.001, 1,'exponential'); controlp3 = MIDIController.kr (8,8, 0.001, 1,'exponential'); src2 = AudioIn.ar([1,2,3,4]); src = Normalizer.ar(src2, 0.4,0.6); # freq, hasFreq = Pitch.kr(AudioIn.ar(1)); amp = Amplitude.kr(src2); pitch0 = Slew.ar(freq, [25,23,35,2325,2353,4535,5,8,3,50,180,100], [50,50,100,50,180,100,5,3,5,2325,2353,4535]); pitch = Slew.ar(freq, [50,180,100],[2325,2353,4535]); pitch2 = Slew.ar(freq, [68,230,89],[2350,2410,4867]); pitch3 = Slew.ar(freq,[325,353,535], [50,180,100]); signal1 = Signal.newClear(Synth.sampleRate * 3); signal2 = Signal.newClear(Synth.sampleRate * 3); signal3 = Signal.newClear(Synth.sampleRate * 3); signal4 = Signal.newClear(Synth.sampleRate * 3); RecordBuf.ar([signal1,signal2,signal3,signal4], src, 0.8, 0.2, 0, 1, 1); follow1 = PlayBuf.ar(signal1, Synth.sampleRate, (pitch.at(0)/(pitch2.at(0)+0.01)), 0, 0, (signal1.size-2), 1); follow2 = PlayBuf.ar(signal2, Synth.sampleRate, ([pitch.at(1),pitch.at(2)]/ [(pitch2.at(1)+0.01),(pitch2.at(2)+0.01)]), 0, 0, (signal2.size-2), 1); follow3 = PlayBuf.ar(signal, Synth.sampleRate, 1, 0, 0, (signal.size-2), 1); followfilt1 = BPF.ar(follow3, max([pitch3.at(0),pitch0.at(4),pitch0.at(5)], 469.33), 0.01, 9); followfilt2 = BPF.ar(follow3, max(pitch3*3, 469.33), 0.01,9); follow11 = PlayBuf.ar(signal1, Synth.sampleRate, ([pitch0.at(0),pitch0.at(3),pitch0.at(4)] /(freq+0.01)), 0, 0, (signal1.size-2),[controla,controlb,controlb]); follow22 = PlayBuf.ar(signal2, Synth.sampleRate, ([pitch0.at(1),pitch0.at(2),pitch0.at(5)] /(freq+0.01)), 0, 0, (signal2.size-2), [controla,controla,controlb]); follow33 = PlayBuf.ar(signal3, Synth.sampleRate, ([pitch0.at(6),pitch0.at(7),pitch0.at(9)] /(freq+0.01)), 0, 0, (signal3.size-2), [controlc,controlc,controld]); follow44 = PlayBuf.ar(signal4, Synth.sampleRate, ([pitch0.at(8),pitch0.at(10),pitch0.at(11)] /(freq+0.01)), 0, 0, (signal4.size-2), [controlc,controld,controld]); //limiter followfilt1,followfilt2 out0 = Mix.ar(followfilt1); out01 = Mix.ar(followfilt2); out = Limiter.ar([out0,out01],[controlp2*amp.at(1),controlp3*amp.at(0)], 2.4); //normalizer follow4e out2 = Mix.ar(follow2); oute2 = Normalizer.ar([follow1,out2],[amp.at(0),amp.at(1)]*controle, 1.1); // limiter follow4a-d out1 = [Mix.ar(follow11),Mix.ar(follow22),Mix.ar(follow33),Mix.ar(follow44)]; oute1 = Limiter.ar(out1,amp,controlp1); // look-aheadtime van 0.1 = direct / 0.4 = goed / 1.1 = globaal voor = Mix.ar([oute2.at(0),oute2.at(1),out.at(0)]); links = Mix.ar([oute1.at(0),oute1.at(3)]); rechts = Mix.ar([oute1.at(1),oute1.at(2)]); 6.do({ links = AllpassN.ar(links, 0.040, [0.040.rand,0.040.rand], 2) }); 6.do({ rechts = AllpassN.ar(rechts, 0.042, [0.042.rand,0.042.rand], 2) }); 6.do({ voor = AllpassN.ar(voor, 0.045, [0.045.rand,0.045.rand], 2) }); voorlinks = Mix.ar([links.at(0),voor.at(0)]); voorrechts = Mix.ar([rechts.at(0), voor.at(1)]); [voorlinks,voorrechts, rechts.at(1), links.at(1),out.at(1)] }) },{ (filename ++ " not found.\n").post }); )