프로젝트 소개

Beatsync은 다중 기기 재생과 공간 오디오를 위해 설계된 고정밀 웹 오디오 플레이어입니다. 공식 애플리케이션은 beatsync.gg에서 호스팅됩니다. ### 주요 기능 - **밀리초 단위 정밀 동기화**: NTP에서 영감을 받은 시간 동기화 프리미티브를 활용하여 다중 기기 간 오디오 정렬을 매우 정밀하게 수행합니다. - **크로스 플랫폼**: 최신 브라우저가 있는 모든 기기에서 실행됩니다(최상의 성능을 위해 Chrome 권장). - **공간 오디오**: 가상 청취 소스를 통해 기기의 볼륨을 제어하여 독특한 음향 효과를 제공합니다. - **세련된 UI**: 부드러운 로딩 상태, 상태 표시기, 내장 인터페이스를 포함합니다. - **자체 호스팅 가능**: 몇 가지 간단한 명령으로 자신의 인스턴스를 쉽게 실행할 수 있습니다. ### 아키텍처 이 프로젝트는 Turborepo 모노레포로 구성되며 다음 워크스페이스를 포함합니다: - `apps/server`: Bun HTTP + WebSocket 서버. - `apps/client`: Tailwind 및 Shadcn/ui를 활용한 Next.js 프론트엔드. - `packages/shared`: 클라이언트와 서버 간의 타입 안전 스키마 및 공유 함수. ### 빠른 시작 프로젝트를 로컬에서 실행하려면: 1. `apps/client/.env`에서 환경 변수를 구성합니다(`NEXT_PUBLIC_API_URL` 및 `NEXT_PUBLIC_WS_URL`). 2. Bun을 사용하여 종속성을 설치하고 개발 서버를 시작합니다: - `bun install` - `bun dev` (클라이언트는 :3000, 서버는 :8080에서 시작) 참고: 이 프로젝트는 초기 개발 단계에 있으며 모바일 지원은 현재 실험적입니다.