( SynthDef(\wtable_vosc_dual, { var env, sig, freq, buf, wtmod, wtpos; var wtbufnumRange = [ ~wtbufnums.minItem, ~wtbufnums.maxItem ]; // Main controls var gate = \gate.kr(1); freq = \freq.kr(220); buf = \bufn.kr(wtbufnumRange[0]); wtmod = \wtmodbufn.kr(wtbufnumRange[1]); // Envelope env = EnvGen.kr( Env.perc( \attack.kr(0.1), \release.kr(1.0) ), gate, doneAction: 2 ).lag(\envLag.kr(0.1)); // Wavetable oscillator modulation wtpos = VOsc.ar( wtmod, \wtmodfreq.kr(2), \phase.kr(0), \wtmodamp.kr(1) ) + env.pow(1.4) + buf; wtpos = wtpos.lag(1.8).mod(wtbufnumRange[1] - wtbufnumRange[0]) + wtbufnumRange[0]; // Final signal sig = VOsc.ar(wtpos, freq, \phase.kr(0), 1) * env * \amp.kr(0.2); // Output Out.ar(\out.kr(0), sig ! 2); }).add; )