«Guitar feedback emulation» by nathanielvirgo
on 26 Aug'11 14:35 inA simulation of holding an electric guitar up to the amplifier, creating feedback. Press the mouse button to activate the whammy bar :)
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
( Ndef(\z, { // get fed back signal and add a little noise to get things going var sig = Ndef(\z).ar + WhiteNoise.ar(0.001!2); var a, k, delfreq, minfreqs, freqs, dry; // delay due to distance from amp - I chose 0.05s, or 20Hz delfreq = 20; sig = DelayN.ar(sig,1/10-ControlDur.ir,1/delfreq-ControlDur.ir); // guitar string frequencies - for some reason I had to pitch them down // a few octaves to get a good sound. // open strings //// freqs = (64+[0,5,10,15,19,24]).midicps/8; // e minor freqs = (64+[0,7,12,15,19,24]).midicps/4; // whammy bar modulates freqs: minfreqs = freqs*0.5; freqs = freqs*MouseButton.kr(1,0.75,4); // 6 comb filters emulate the strings' resonances sig = CombN.ar(sig!6,1/minfreqs,1/freqs,8).mean; // a little filtering... mouse Y controls amp sig = LPF.ar(sig,8000); sig = HPF.ar(sig*MouseY.kr(0,5),80); // and some not too harsh distortion - mouse X controls damping sig = RLPFD.ar(sig,MouseX.kr(200,10000,1)*[1,1.1],0.1,0.5); sig = sig + sig.mean; // and finally a spot of reverb dry = sig; 10.do { d = 0.2.rand; sig = AllpassN.ar(sig,d,d,5); }; (dry + sig)*0.125; }).play; )
descendants
full graph
«Baris» by anonymous (private)
«hkfotlkc» by anonymous (private)
«rrkotvmpbsl» by anonymous (private)
reception
Thanks NV, your code looks and sounds consistently impressive.
class not defined?
I think RLPFD is in the sc3-plugins (BhobUGens)