title:: softVol_ summary:: set a nodeproxy's vol conditionally categories:: Libraries>JITLib>GUI related:: Reference/softSet, Reference/softPut description:: Extension method to link::Classes/NodeProxy:: to set vol conditionally. method:: softVol setter. argument:: val the volume value to set to argument:: within the normalized range within which the set is accepted argument:: pause a flag whether to pause the nodeproxy when volume is 0. waits for 0.2 seconds for volume to go down first. argument:: lastVal the previous value that the controller has set - can be argument:: spec a link::Classes/ControlSpec:: can be passed in. if nil, code::\amp.asSpec:: is used. Examples:: code:: Ndef(\test, { |freq=200| Splay.ar(SinOsc.ar(freq * Array.rand(12, 0.95, 1.05))) }); Ndef(\test).play(vol: 0.1); // example of softSet, softSet which knows lastVal, // softVol_ and softVol_ which knows lastVol: ( w = Window("softVol", Rect(500, 200, 400, 240)).front; w.view.addFlowLayout; NdefGui(Ndef(\test), 2, w); // same for volume - not too safe EZSlider(w, 340@30, \softVol, \amp, { |sl| Ndef(\test).softVol_(sl.value, 0.05) }); // safer EZSlider(w, 340@30, \knowLastV, \amp, Routine { |sl| var newVal, lastVal; loop { newVal = sl.value; Ndef(\test).softVol_(sl.value, 0.05, lastVal: lastVal); lastVal = newVal; \dummy.yield; } }); ) ::