4. Sample Accuracy
FTable lists can support sample accurate changes for ftable
changes that occur once per block. This is done by keeping
track of the index position in the block where the change
happens. From then on, any samples before the block position
use the previously selected entry found in prev
, and then
the next
entry anything at or after the block position.
int blockpos;
int prev, next;
The blockpos
, prev
, and next
values are all set to be
negative as indicator that they are uninitialized or unset.
A negative blockpos
value indicates that no switch has
occured, and to use the next
value. If both prev
and
next
are negative, the target
ftable is used as a
fallback.
ftl->blockpos = -1;
ftl->next = -1;
ftl->prev = -1;
In order for this kind of sample accuracy to work, the
ftlist must be reset at the beginning of each loop
(presumably inside of a node controlling it, such as the
sample tchoose
node provided).
A reset can be done with sp_ftlist_reset
.
void sp_ftlist_reset(sp_ftlist *ftlst);
A reset will clear any block positions set in the previous
block. It will also update the prev
and next
values.
void sp_ftlist_reset(sp_ftlist *ftlst)
{
ftlst->blockpos = -1;
ftlst->prev = ftlst->next;
}
prev | home | next