import { getSecondsFromZero } from '@suno/studiokit/timeMapping';

import { EditTiming } from './types';

export {
  default,
  FALLBACK_TIMING,
  FALLBACK_TIMING_120BPM,
} from '@suno/studiokit/getTimingFromDownbeats';

export const getDownbeatsFromTiming = (
  timing: EditTiming,
  startBeat: number,
  endBeat: number
) => {
  const downbeats: [number, number][] = [];
  const startSecond = getSecondsFromZero(startBeat, timing);
  for (let beat = Math.ceil(startBeat); beat < Math.floor(endBeat); beat++) {
    downbeats.push([
      getSecondsFromZero(beat, timing) - startSecond,
      (((beat % 4) + 4) % 4) + 1,
    ]);
  }
  return downbeats;
};
