Advertisement
Guest User

Untitled

a guest
Oct 31st, 2018
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. //in AbstractPlayControlc Class extensions - file: wrapForNodeProxy.sc. Add this to AbstractPlaycontrol.buildMethods dictionary
  3.             filter: #{ | func, proxy, channelOffset = 0, index |
  4.                 var ok, ugen;
  5.                 if(proxy.isNeutral) {
  6.                     ugen = func.value(Silent.ar);
  7.                     ok = proxy.initBus(ugen.rate, ugen.numChannels + channelOffset);
  8.                     if(ok.not) { Error("NodeProxy input: wrong rate/numChannels").throw }
  9.                 };
  10.  
  11.                 { | out |
  12.                     var e = EnvGate.new * Control.names(["wet"++(index ? 0)]).kr(1.0);
  13.                     if(proxy.rate === 'audio') {
  14.                         var innerArgNames = func.def.argNames.reject({arg it; it == \in});
  15.                         var controlSigs;
  16.  
  17.                         innerArgNames = innerArgNames.collect({arg innerArgName;
  18.                             innerArgName.asString ++ index ? 0;
  19.                         });
  20.                         controlSigs = innerArgNames.collect({arg innerArgName;
  21.                             Control.names([innerArgName]).kr(1.0);
  22.                         });
  23.                         "MY ARGS: %".format(innerArgNames).postln;
  24.                         "Controlnames: %".format(proxy.controlNames).postln;
  25.  
  26.                         XOut.ar(out, e, SynthDef.wrap(func, nil, [In.ar(out, proxy.numChannels)] ++ controlSigs ))
  27.                     } {
  28.                         XOut.kr(out, e, SynthDef.wrap(func, nil, [In.kr(out, proxy.numChannels)]))              };
  29.                 }.buildForProxy( proxy, channelOffset, index )
  30.  
  31.             },
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement