Steve;<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">That&#39;s basically true.  It&#39;s not _impossible_ to optimize them<br>

(inlining &quot;tick&quot; functions, etc), but it would be a completely<br>
different problem to tackle.  A pretty interesting one however!<br>
<div class="im"></div></blockquote><div><br>That would be a interesting approach indeed. We would need to be careful and make sure we could still consider the internal state of individual UGens in such a graph, as we may want to change the UGen graph with as few glitches as possible.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im"><br>
</div>Sorry for the confusion.  I meant opcode as it is used in talking<br>
about compilers.  The word just refers to &quot;operation codes&quot;, i.e.,<br>
codes that represent machine instructions.  In ChucK, its VM opcodes<br>
are actually instances of the Chuck_Instr class.  Not the same as<br>
CSound&#39;s opcodes.  (Though, shamefully, I don&#39;t actually know CSound<br>
very well.)<br>
<div></div></blockquote><div><br>Ah, I see. IMHO CSound is nice as it&#39;s so old and established that many very worthwhile articles have been written with it in mind. It can pay off to be able to read it to be able to understand those articles. To me personally it does look a lot like a language that&#39;s decades old if we compare it to ChucK; I think you&#39;ll be fine without it.<br>
</div></div> Anyway, that&#39;s something completely different indeed. Fortunately we have words like &quot;spork&quot; and &quot;shred&quot;, at least those won&#39;t easily be confused with other concepts elsewhere!<br>
<br>Yours,<br>Kas.<br>