Boy, this all looks complicated when it's summarized like this.
I think this all works right for the instrument designer
in the greatest number of cases, which is why it is the way
it is.
>In optimizing dur, the hardest issue sfront had to deal with was
>that although dur is ivar, it has pseudo-ksig semantics, since
>it value changes at k-rate if tempo is varied. This makes doing
>rate-semantic optimization tricky.
I think you could deal with this by internally splitting 'dur'
into two names, one which is really an ivar and one which is
really a ksig. 5.8.6.8.7 is quite clear that if you use
dur in an otherwise ivar context, the values don't change
as dur changes:
instr foo() {
ivar x;
x = dur; // x stays at the initial duration regardless of
// changes to dur
...
}
(The reason why 'dur' is an ivar rather than a ksig is that
you really want to be able to use it in ivar contexts like the
length of a delay line:
x = delay(y, dur/2);
which you can't do if 'dur' is a ksig. Other COs are
similar.)
Best,
-- Eric
+-----------------+
| Eric Scheirer |A-7b5 D7b9|G-7 C7|Cb C-7b5 F7#9|Bb |B-7 E7|
|eds@media.mit.edu| < http://sound.media.mit.edu/~eds >
| 617 253 1750 |A A/G# F#-7 F#-/E|Eb-7b5 D7b5|Db|C7b5 B7b5|Bb|
+-----------------+
This archive was generated by hypermail 2b29 : Wed May 10 2000 - 12:15:40 EDT