Tom;<div><br>I'm grateful that Kassen dropped some code for LiSa, because I didn't<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

understand his description until I was knee deep in CurveTables and<br>
had finally worked through all the problems Kassen's succinct proposal<br>
addresses.</blockquote><div><br></div><div>You're welcome, as always. It's also nice to see how a formal language can sometimes be *easier* to understand than a natural one. I think that's a non-trivial point if we want to consider the relative importance of livecoding. :¬)</div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"> While I got the CurveTable working, I can't get real sharp<br>
transitions between the quantization levels because CurveTable crashes<br>
if I give it a coefs array with more than 35 points.<br>
<br></blockquote><div><br></div><div>Weird, and what a odd number for it to crash at; I'd expect a power of 2. Just increasing the resolution should help but as you note; LiSa is happy to deal with hundreds of thousands of points. Interestingly, for this niche-application; LiSa, unlike SndBuf, has no option to turn off interpolation. If she did we could stick to far smaller tables and a lower overhead setting them. Not sure that's worth "fix" because this is a bit of a niche application and a "proper" crusher might be a much nicer investment of dev-time.</div>
<div><br></div><div>As a side-note; a big part of the sound of older d-a converters came from deviations in the actual value of the resistors in them compared to their nominal value (to put it bluntly; cheap crap was used). Basically that means the "steps" aren't all the same height. If you really want to emulate that things will get a bit more tricky. It's interesting though, because if we discard quantisation in the time domain the errors of bit-depth crushing should all be harmonic so such errors should give slightly different spectra. I don't think many implementations do this.</div>
<div><br></div><div>Yours,</div><div>Kas.</div></div></div>