automation-events
Version:
A module which provides an implementation of an automation event list.
19 lines (15 loc) • 548 B
text/typescript
import { IExponentialRampToValueAutomationEvent } from '../interfaces';
export const getExponentialRampValueAtTime = (
time: number,
startTime: number,
valueAtStartTime: number,
{ endTime, value }: IExponentialRampToValueAutomationEvent
) => {
if (valueAtStartTime === value) {
return value;
}
if ((0 < valueAtStartTime && 0 < value) || (valueAtStartTime < 0 && value < 0)) {
return valueAtStartTime * (value / valueAtStartTime) ** ((time - startTime) / (endTime - startTime));
}
return 0;
};