message: grainSize should be grainSize property not the elapsed time
  fixes
diff: @@ -194,8 +194,7 @@ export class GrainPlayer extends Source<GrainPlayerOptions> {
  private _tick(time: Seconds): void {
  // check if it should stop looping
  const ticks = this._clock.getTicksAtTime(time);
  - const grainSize = 1 / this._clock.frequency.getValueAtTime(time);
  - const offset = ticks * grainSize;
  + const offset = ticks * this._grainSize;
  this.log("offset", offset);
  if (!this.loop && offset > this.buffer.duration) {
  