Dear list (and Dan!)<br><br>LiSa.track() is brilliant! ( See; <a href="http://wiki.cs.princeton.edu/index.php/LiSa_examples">http://wiki.cs.princeton.edu/index.php/LiSa_examples</a> ). In the past days I&#39;ve had a renewed enthusiasm for experimenting with LiSa to try to emulate turntable scratches and now turntableist techniques/gestures as well. (You can read reports and see videos excerpts of the relevant sessions here; <a href="http://steim.org/jamboree08/">http://steim.org/jamboree08/</a> there is a interesting forum starting here; <a href="http://forum.itchymuzik.com/index.php">http://forum.itchymuzik.com/index.php</a> ). LiSa.track() seems especially well suited to emulating platter inertia; if I understand it all correctly a simple LPF over the tracking signal will give us most of this &quot;for free&quot;. Brilliant stuff, loads of cheap fun with breakbeats. This will be very useful indeed to many people, I imagine.<br>
<br>But... unless I&#39;m completely mistaken this was nowhere to be seen in the release notes. I knew it was comming, but I had no idea it was here already.<br><br>Yours,<br>Kas.<br><br>PS;<br>//===========================<br>
//&quot;abstract turntableism&quot; by Kas, hacked up in a few minutes<br>//Remixing strongly encouraged<br>//add your own break, tweaking may be needed<br><br>SndBuf b =&gt; LiSa l =&gt; Envelope cut =&gt; dac;<br><br>//add your own<br>
&quot;break2.wav&quot; =&gt; b.read;<br>b.samples()::samp =&gt; l.duration;<br>1 =&gt; l.record;<br>l.duration() =&gt; now;<br>0 =&gt; l.record;<br><br>b=&lt;l;<br><br>Step unity =&gt; Envelope e =&gt; LPF f =&gt; l;<br><br>
//inertia (sort of)<br>3 =&gt; f.freq;<br><br>unity.next(true);<br>1 =&gt; l.track;<br>1 =&gt; l.play;<br><br>.125::l.duration() =&gt; e.duration;<br><br>fun void fade()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; 1=&gt; int times;<br>&nbsp;&nbsp;&nbsp; while(1)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Std.rand2(2,6) =&gt; times;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (1.0/times)::e.duration() =&gt; cut.duration;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; repeat (times)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; !(cut.value() $ int) =&gt; cut.target;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cut.duration() =&gt; now;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>spork ~fade();<br><br>1=&gt; int direction;<br>while(1)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; -1 *=&gt; direction;<br>&nbsp;&nbsp;&nbsp; (.125 * Std.rand2(direction, 4* direction) + e.target()) % 1 =&gt; e.target;<br>&nbsp;&nbsp;&nbsp; e.duration() =&gt; now;<br>
&nbsp;&nbsp;&nbsp; }<br>