16 lines
506 B
TypeScript
16 lines
506 B
TypeScript
import { chain } from "ramda";
|
|
import { Interval } from "../ast";
|
|
|
|
// Converts interval to array of intensity values for each second
|
|
const intervalToIntensities = ({ duration, intensity }: Interval): number[] => {
|
|
const seconds = [];
|
|
const { from, to } = intensity;
|
|
for (let i = 0; i < duration.value; i++) {
|
|
// Intensity in a single second
|
|
seconds.push(from + (to - from) * (i / duration.value));
|
|
}
|
|
return seconds;
|
|
};
|
|
|
|
export const intervalsToIntensities = chain(intervalToIntensities);
|