// title: Verber // author: LFSaw // description: // Reverb study // code: ( s.options.memSize_(65536 * 2); s.reboot; Spec.add(\damp, [0, 1]); Spec.add(\earlydiff, [0, 1]); Spec.add(\highband, [1000, 10000, \exp]); Spec.add(\highx, [0, 1]); Spec.add(\lowband, [100, 6000, \exp]); Spec.add(\lowx, [0, 1]); Spec.add(\mdepth, [0, 50]); Spec.add(\mfreq, [0, 10]); Spec.add(\midx, [0, 1]); Spec.add(\size, [0.5, 3]); Spec.add(\t60, [0.1, 60, \exp]); Spec.add(\wet, [0, 1]); Spec.add(\shelfslope, [1, 10]); Spec.add(\shelfFreq, \freq); ) Ndef(\src).clear ( Ndef(\src).fadeTime = 4; Ndef(\src).quant = 2; Ndef(\src, { var src = 10.collect{ Pan2.ar([HPF, LPF, ComplexRes].choose.performKeyValuePairs(\ar,[ \in, [Impulse, LFPulse].choose.ar( [4, 2, 1, 1/2, 1/3, 1/4, 1/6].choose, iphase: [0, 1/4, 1/8, 1/2, 1/3].choose, phase: [0, 1/4, 1/8, 1/2, 1/3].choose, width: [0.001, 0.0001, 0.01, 0.1, 0.2].choose, mul: [1, 2, 3, 4].choose.reciprocal * [1, -1].choose ), \freq, [10000, 2000, 1000, 500, 250, 125, 125/2].choose, \decay, [0.1, 0.2, 0.4, 1].choose, ] ), Rand(-1, 1)); }.sum; HighShelf.ar(src, \shelfFreq.kr(1000), \shelfslope.kr(1)); }) ) Ndef(\src).rebuild; Ndef(\src).play Ndef(\src).edit ( Ndef(\reverb).fadeTime = 1; Ndef(\reverb, { var src = Ndef(\src).ar * \amp.kr(1); src = JPverb.ar( src[0],src[1], \damp.kr(0, 0.05), \earlydiff.kr(0.707, 0.05), \highband.kr(2000, 0.05), \highx.kr(1, 0.05), \lowband.kr(500, 0.05), \lowx.kr(1, 0.05), \mdepth.kr(5, 0.05), \mfreq.kr(2, 0.05), \midx.kr(1, 0.05), \size.kr(1, 0.05), \t60.kr(1, 0.05) ); Limiter.ar(src); //Compander.ar(src, src, 0.4, 0.7); }); ) Ndef('reverb').set('lowx', 0.84375, 'amp', 0.66015625, 'damp', 0.671875, 'size', 0.94921875, 'highband', 4450.794062356, 't60', 16.362108855354, 'mdepth', 17.96875, 'mfreq', 0.0, 'highx', 0.0, 'lowband', 2450.0822520097, 'earlydiff', 0.421875, 'midx', 0.5546875); // Dreamverb song setting. // play with size and earlydiff Ndef('reverb').set('wet', 0.9921875, 'lowx', 0.609375, 'amp', 0.38092041015625, 'damp', 0.2890625, 'size', 0.6171875, 'highband', 7233.9416273667, 't60', 4.0375572334984, 'mdepth', 0.0, 'mfreq', 2.03125, 'highx', 0.2265625, 'lowband', 681.56675509913, 'fadeTime', 1, 'earlydiff', 0.765625, 'midx', 0.515625); Ndef('reverb').set('wet', 0.9921875, 'lowx', 0.84375, 'amp', 0.66015625, 'damp', 0.875, 'size', 0.5, 'highband', 5829.4153471361, 't60', 0.16483258382257, 'mdepth', 17.96875, 'mfreq', 0.0, 'highx', 0.0, 'lowband', 100.0, 'fadeTime', 1, 'earlydiff', 0.703125, 'midx', 0.5546875); s.latency = nil; Ndef(\reverb).play Ndef(\reverb).edit; //*ar { | in1, in2, damp(0.0), earlydiff(0.707), highband(2000.0), highx(1.0), lowband(500.0), lowx(1.0), mdepth(5.0), mfreq(2.0), midx(1.0), size(1.0), t60(1.0) | MIDIIn.connectAll /* MIDIdef.cc(\test, {arg ... args; args.postln}); MIDIdef.cc(\test).free; */ ( MIDIdef.cc(\t60, {|val, num| Ndef(\reverb).set(\t60, \t60 .asSpec.map(val/128))}, 0); MIDIdef.cc(\mdepth, {|val, num| Ndef(\reverb).set(\mdepth, \mdepth .asSpec.map(val/128))}, 2); MIDIdef.cc(\lowx, {|val, num| Ndef(\reverb).set(\lowx, \lowx .asSpec.map(val/128))}, 3); MIDIdef.cc(\midx, {|val, num| Ndef(\reverb).set(\midx, \midx .asSpec.map(val/128))}, 4); MIDIdef.cc(\highx, {|val, num| Ndef(\reverb).set(\highx, \highx .asSpec.map(val/128))}, 5); MIDIdef.cc(\vol, {|val, num| Ndef(\reverb).set(\amp, \amp .asSpec.map(val/128))}, 7); MIDIdef.cc(\size, {|val, num| Ndef(\reverb).set(\size, \size .asSpec.map(val/128))}, 16); MIDIdef.cc(\earlydiff, {|val, num| Ndef(\reverb).set(\earlydiff, \earlydiff.asSpec.map(val/128))}, 17); MIDIdef.cc(\mfreq, {|val, num| Ndef(\reverb).set(\mfreq, \mfreq .asSpec.map(val/128))}, 18); MIDIdef.cc(\lowband, {|val, num| Ndef(\reverb).set(\lowband, \lowband .asSpec.map(val/128))}, 20); MIDIdef.cc(\highband, {|val, num| Ndef(\reverb).set(\highband, \highband .asSpec.map(val/128))}, 21); MIDIdef.cc(\damp, {|val, num| Ndef(\reverb).set(\damp, \damp .asSpec.map(val/128))}, 22); MIDIdef.cc(\dryAmp, {|val, num| Ndef(\src ).vol_(\amp.asSpec.map(val/128))}, 23); MIDIdef.cc(\rebuild, {|val, num| (val > 0).if{ Ndef(\src).rebuild; } }, 39) )