All files / src/utils smooth.ts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20      2x 1x 1x   1x 2x   2x 2x     2x 2x 2x      
import { smoothFrame } from './smooth-frame';
import { getFrameData } from 'framesync';
 
export const smooth = (Estrength: number = 50) => {
  let previousValue = 0;
  let lastUpdated = 0;
 
  return (v: number) => {
    const currentFramestamp = getFrameData().timestamp;
    const timeDelta =
      currentFramestamp !== lastUpdated ? currentFramestamp - lastUpdated : 0;
    const newValue = timeDelta
      ? smoothFrame(previousValue, v, timeDelta, strength)
      : previousValue;
    lastUpdated = currentFramestamp;
    previousValue = newValue;
    return newValue;
  };
};