There are several places where rounding errors make for tricky code and bugs. Ideally:
- all
feed calls accept a sampleIndex: number instead of renderTime: TimeInstant
- TimeInstant can still be used for the external api, and when it makes sense to convert from Score values
- Add a
SampleTime.fromNanos(nanos:number, hz: number): number conversion utility to avoid instantiating so many TimeInstants.
TimeInstants are really useful for reading values from Scores, but should not be used as the base unit for sample math.