프로젝트 소개

Mousiki는 키보드 중심 제어와 최소한의 인터페이스 계층을 선호하는 사용자를 위해 설계된 터미널(TUI) 음악 플레이어입니다. 속도와 가벼운 동작을 목표로 하며, 커스터마이즈와 터미널 안에서 완결되는 워크플로에 중점을 둡니다. **주요 기능:** - **로컬 음악 재생:** 로컬 라이브러리의 음악 파일을 쉽게 탐색하고 재생합니다. - **온라인 검색 및 스트리밍:** yt-dlp를 기반으로 온라인 소스에서 트랙을 직접 검색하고 스트리밍합니다. - **동기화 가사:** Better Lyrics(주)와 LRCLIB(대체)에서 Python 스크립트로 가져온 실시간 단어별 활성 가사 강조 표시를 제공합니다. - **시각화:** kissfft를 사용한 실시간 FFT 스펙트럼, 파형 렌더링, 회전 디스크 아트를 제공하며 유동성을 설정할 수 있습니다. - **큐 관리:** 효율적인 큐잉, 셔플, 반복, 폴더 기반 필터링을 지원합니다. - **높은 설정 가능성:** `$HOME/.config/mousiki/config.txt`의 텍스트 설정 파일을 통해 색상, 시각화 동작, 애니메이션, 단축키를 조정할 수 있습니다. **지원 플랫폼:** - Linux, macOS, Android(Termux 경유)를 네이티브로 지원합니다. - Windows 지원은 작성자가 검증하지 않았지만 동작할 수 있으며, 기여를 환영합니다. **시작하기:** - 저장소를 클론하고 `bash setup.sh`를 실행하면(macOS with Homebrew, Debian 기반 Linux, Termux) 의존성을 설치하고 기본 설정을 생성한 뒤 앱을 빌드합니다. - 수동 빌드에는 `cmake`, C++17 컴파일러, `ffmpeg`, `yt-dlp`, Python `requests` 패키지가 필요합니다. - 빌드 후 `./build/mousiki`를 실행합니다. **기본 키 바인딩(설정 가능):** - 검색: `/`(로컬), `/s: <query>`(온라인 스트림) - 현재 스트림 다운로드: `y` - 재생/일시정지: `p` 또는 `ENTER` - 다음/이전: `n` / `b` - 탐색: `ARROW_LEFT` / `ARROW_RIGHT` - 볼륨: `1` / `2` - 셔플/반복: `m` / `r` - 이동: `ARROW_UP` / `ARROW_DOWN` - 탭 전환: `TAB` - 큐에 추가/제거: `a` / `d` - 폴더 필터: `f` - 필터 지우기: `c` - 종료: `q` **설정:** 설정 파일은 자동 생성됩니다. 여러 개의 `LocalMusicPath` 항목을 추가하여 사용자 지정 음악 경로를 지정할 수 있습니다. 모든 키 바인딩과 시각 설정은 여기에서 편집할 수 있습니다. **의존성 및 출처 표기:** Mousiki는 miniaudio(오디오 재생), kissfft(시각화용 FFT), yt-dlp(온라인 스트리밍), FFmpeg(멀티미디어 처리), Python `requests`(가사)를 사용합니다. Apache License 2.0에 따라 배포됩니다.