import { FALLBACK_TIMING_120BPM } from '../edit2025/getTimingFromDownbeats';
import createTrack from './createTrack';
import { StudioProjectState } from './types';

const DEFAULT_STATE: StudioProjectState = {
  amplitude: 1.0,
  lyricsCorrectionsByClipId: {},
  metronome: {
    enabled: false,
    amplitude: 1.0,
  },
  timing: {
    type: 'manual',
    ...FALLBACK_TIMING_120BPM,
  },
  tracks: [],
  selection: {
    anchorBeats: 0,
    focusBeats: 0,
    trackIds: [],
    focusedTrackId: null,
    focusedArea: null,
  },
  loop: {
    enabled: false,
    startBeats: 0,
    endBeats: 0,
  },
  songFadeInBeats: 0,
  songFadeOutBeats: 0,
};

export const getDefaultStateWithOneTrack: () => StudioProjectState = () => {
  const track = createTrack();
  return {
    ...DEFAULT_STATE,
    timing: {
      type: 'follow-track',
      trackId: track.id,
      fallbackBPS: 2,
    },
    tracks: [track],
  };
};

export default DEFAULT_STATE;
