Thu Apr 11 14:01:37 EDT 2013
For implementation, the important part is to keep things simple.
It's probably best to implement all delay lines in a single circular
buffer, as this requires only a single modulo operation, but it does
require some global state management. So let's not. The only global
thing is the delay offset counter, the rest should be handled locally,
i.e. per delay array.
I'm having a little trouble putting this in the right way. It should
be an operation on an identifier. It works fine for lvalues, but the
delay_read operation has the modulo before the addition.
What about making all array assignments modulo assignments? Then
removing the modulo-check is an optimization, which can be done inside
of loops, since the extents are known. ( added FIXME to the code ).