waveguide_input.0.tmp.dsp (Source)

 import("all.lib");

	  // use '(pm.)l2s' to calculate number of samples
	  // from length in meters:

	  segment(maxLength,length) = waveguide(nMax,n)
	  with{
	  nMax = maxLength : l2s;
	  n = length : l2s/2;
	  };




	  // one lowpass terminator
	  fc = hslider("lowpass",1000,10,10000,1);
	  rt = rTermination(basicBlock,*(-1) : si.smooth(1.0-2*(fc/ma.SR)));

	  // one gain terminator with control
	  gain = hslider("gain",0.99,0,1,0.01);
	  lt = lTermination(*(-1)* gain,basicBlock);


	  idString(length,pos,excite) = endChain(wg)
	  with{

	  nUp   = length*pos;

	  nDown = length*(1-pos);

	  wg = chain(lt : segment(6,nUp) : in(excite) : out : segment(6,nDown) : rt); // waveguide chain
	  };

	  length = hslider("length",1,0.1,10,0.01);
	  process = idString(length,0.15, button("pluck")) <: _,_;


Contents © Henrik von Coler 2021 - Contact