Verber


reverb study

Till Bovermann (2014)

(
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)
)

image image image