class:: StreamClutch summary:: buffers a streamed value related:: Classes/Routine, Classes/FuncStream, Classes/EventStreamPlayer categories:: Streams-Patterns-Events ClassMethods:: method::new argument::pattern a pattern or stream to be buffered. argument::connected if true it will call the next stream value for each time next is called. if false it returns the last value. Examples:: code:: a = Pseq([1, 2, 3], inf); b = StreamClutch(a); 6.do({ b.next.postln }); b.connected = false; 6.do({ b.next.postln }); //statistical clutch a = Pseq([1, 2, 3], inf); b = StreamClutch(a, { 0.5.coin }); 12.do({ b.next.postln }); :: code:: s.boot; //sound example: ( var clutch, pat, decision; decision = Pseq([Pn(true,10), Prand([true, false], 10)], inf).asStream; pat = Pbind(\freq, Pseq([200, [300, 302], 400, 450], inf), \dur, 0.3); clutch = StreamClutch(pat, decision); clutch.asEventStreamPlayer.play; ) :: code:: // independant stepping ( var clutch, pat, decision; pat = Pbind(\freq, Pseq([200, [300, 302], 400, 450], inf), \dur, 0.3); b = StreamClutch(pat); b.connected = false; b.asEventStreamPlayer.play; ) b.step; ::