{
   "labels" : [
      "composition",
      "reverb"
   ],
   "code" : "(\r\ns.options.memSize_(65536 * 4);\r\ns.reboot;\r\n\r\nSpec.add(\\damp, [0, 1]);\r\nSpec.add(\\diff, [0, 1]);\r\nSpec.add(\\highband, [1000, 10000, \\exp]);\r\nSpec.add(\\highx, [0, 1]);\r\nSpec.add(\\lowband, [100, 6000, \\exp]);\r\nSpec.add(\\lowx, [0, 1]);\r\nSpec.add(\\modDepth, [0, 50]);\r\nSpec.add(\\modFreq, [0, 10]);\r\nSpec.add(\\midx, [0, 1]);\r\nSpec.add(\\size, [0.5, 3]);\r\nSpec.add(\\t60, [0.1, 60, \\exp]);\r\nSpec.add(\\wet, [0, 1]);\r\nSpec.add(\\shelfslope, [1, 10]);\r\nSpec.add(\\shelfFreq, \\freq);\r\nSpec.add(\\fb, [0, 1]);\r\nSpec.add(\\dtime, [0, 2]);\r\n)\r\n\r\n\r\n\r\n\r\ns.makeWindow\r\n(\r\nNdef(\\src, {\r\n    //SoundIn.ar([0, 1])\r\n    Splay.ar(Impulse.ar([1, 3, 5, 7, 9]).scramble);\r\n\r\n});\r\n)\r\n\r\n(\r\nNdef(\\src).fadeTime = 4;\r\nNdef(\\src).quant = 2;\r\nNdef(\\src, {\r\n    var src = 10.collect{\r\n        Pan2.ar([HPF, LPF, ComplexRes].choose.performKeyValuePairs(\\ar,[\r\n            \\in, [Impulse, LFPulse].choose.ar(\r\n                [4, 2, 1, 1/2, 1/3, 1/4, 1/6].choose,\r\n                iphase: [0, 1/4, 1/8, 1/2, 1/3].choose,\r\n                phase: [0, 1/4, 1/8, 1/2, 1/3].choose,\r\n                width:  [0.001, 0.0001, 0.01, 0.1, 0.2].choose,\r\n                mul:    [1, 2, 3, 4].choose.reciprocal * [1, -1].choose\r\n            ),\r\n            \\freq, [10000, 2000, 1000, 500, 250, 125, 125/2].choose,\r\n            \\decay, [0.1, 0.2, 0.4, 1].choose,\r\n        ]\r\n        ), Rand(-1, 1));\r\n    }.sum;\r\n    HighShelf.ar(src, \\shelfFreq.kr(1000), \\shelfslope.kr(1));\r\n})\r\n)\r\n\r\n\r\n\r\nNdef(\\src).play;\r\nNdef(\\hole).play;\r\n(\r\nNdef(\\hole, {\r\n    var src, verb, amp;\r\n\r\n    src = LeakDC.ar(Ndef(\\src).ar);\r\n    //amp = Amplitude.kr(src);\r\n    // src = Gate.ar(src, amp-0.0003)\r\n\r\n    src = src * \\amp.kr(1);\r\n    // var src = Impulse.ar(0.5);\r\n    verb = GreyholeRaw.ar(\r\n        src, src,\r\n        \\damp.kr(0.1),\r\n        \\dtime.kr(0.1),\r\n        \\diff.kr(0.707),\r\n        \\fb.kr(0.1),\r\n        \\modDepth.kr(0.01),\r\n        \\modFreq.kr(2),\r\n        \\size.kr(1)\r\n    );\r\n    verb\r\n}\r\n)\r\n)\r\n\r\nNdef(\\hole).edit;\r\nNdef(\\src).edit;\r\n\r\nMIDIIn.connectAll\r\n\r\nMIDIdef.cc(\\test, {arg ... args; args.postln});\r\nMIDIdef.cc(\\test).free;\r\n\r\n(\r\n    MIDIdef.cc(\\dtime,     {|val, num| Ndef(\\hole).set(\\dtime,     \\dtime    .asSpec.map(val/127))},  0);\r\n    MIDIdef.cc(\\fb,        {|val, num| Ndef(\\hole).set(\\fb,        \\fb       .asSpec.map(val/127))},  1);\r\n    MIDIdef.cc(\\modDepth,    {|val, num| Ndef(\\hole).set(\\modDepth,    \\modDepth   .asSpec.map(val/127))},  2);\r\n    // MIDIdef.cc(\\lowx,      {|val, num| Ndef(\\hole).set(\\lowx,      \\lowx     .asSpec.map(val/128))},  3);\r\n    // MIDIdef.cc(\\midx,      {|val, num| Ndef(\\hole).set(\\midx,      \\midx     .asSpec.map(val/128))},  4);\r\n    // MIDIdef.cc(\\highx,     {|val, num| Ndef(\\hole).set(\\highx,     \\highx    .asSpec.map(val/128))},  5);\r\n    MIDIdef.cc(\\amp,       {|val, num| Ndef(\\hole).set(\\amp,       \\amp      .asSpec.map(val/127))},  7);\r\n\r\n    MIDIdef.cc(\\size,      {|val, num| Ndef(\\hole).set(\\size,      \\size     .asSpec.map(val/127))}, 16);\r\n    MIDIdef.cc(\\diff,      {|val, num| Ndef(\\hole).set(\\diff,      \\diff     .asSpec.map(val/127))}, 17);\r\n    MIDIdef.cc(\\modFreq,     {|val, num| Ndef(\\hole).set(\\modFreq,     \\modFreq    .asSpec.map(val/128))}, 18);\r\n    MIDIdef.cc(\\lowband,   {|val, num| Ndef(\\hole).set(\\lowband,   \\lowband  .asSpec.map(val/127))}, 20);\r\n    MIDIdef.cc(\\highband,  {|val, num| Ndef(\\hole).set(\\highband,  \\highband .asSpec.map(val/127))}, 21);\r\n    MIDIdef.cc(\\damp,      {|val, num| Ndef(\\hole).set(\\damp,      \\damp     .asSpec.map(val/127))}, 22);\r\n    MIDIdef.cc(\\dryAmp,    {|val, num| Ndef(\\src).vol = val/127}, 23);\r\n    MIDIdef.cc(\\rebuild,   {|val, num|\r\n        (val > 0).if{\r\n            Ndef(\\src).rebuild;\r\n        }\r\n    }, 39)\r\n)",
   "is_private" : null,
   "id" : "1-5hG",
   "author" : "LFSaw",
   "name" : "greyball",
   "description" : "reverb study",
   "ancestor_list" : []
}
