Folia는 로컬 음악, Navidrome, 서드파티 NetEase Cloud Music을 지원하는 TypeScript 기반 음악 플레이어다. 하지만 README를 따라가다 보면 이 프로젝트의 중심은 플레이어 자체보다 가사를 다루는 방식에 있다.
보통 음악 앱에서 가사는 재생 화면 아래쪽에 붙는 보조 정보다. Folia는 그 위치를 바꾼다. 풀스크린 가사 애니메이션을 핵심 경험으로 두고, LDDC가 만든 향상형逐字 가사 포맷까지 처리한다. Fume, Lumi, Cad, Pat, Cappella, Tilt 같은 서로 다른 가사 효과는 곡을 듣는 화면을 작은 텍스트 PV처럼 만든다.
데이터 흐름도 흥미롭다. 온라인에서는 곡, 가수, 앨범을 검색해 재생하고 관련 커버와 가사를 자동으로 붙인다. 로컬 음악은 메타데이터와 같은 폴더의 같은 이름 파일을 확인해 .lrc, .vtt, .ttml, .qrc, .yrc, .krc 같은 다양한 가사 형식을 읽는다. 단순히 파일을 여는 것이 아니라, 흩어진 음악 메타데이터와 시간축 텍스트를 하나의 무대 재료로 정리한다.
배포 방식도 두 갈래다. 바로 쓰려는 사용자는 Electron 기반 Windows, macOS, Linux 데스크톱 버전을 받으면 되고, 모바일이나 브라우저 기반 접근을 원하면 Vercel에 Web 버전을 올릴 수 있다. Now Playing 서비스는 외부 플레이어의 곡 정보, 타임라인, 가사 정보를 받아 Folia의 stage view를 구동하게 만든다.
긴장은 바로 여기에 있다. 음악 플레이어는 소스 통합에서 끝나기 쉽고, 시각화 도구는 입력 데이터가 빈약하면 장난감처럼 보이기 쉽다. Folia는 그 중간을 파고든다. 로컬 라이브러리의 안전한 인덱싱, 수동 매칭 보정, 온라인 커버와 가사 매칭, 전면 가사 렌더링을 한 흐름으로 묶는다.
그래서 Folia의 포인트는 예쁜 가사 효과만이 아니다. 음악 파일 주변에 흩어진 가사와 커버와 테마를 추출해서, 감정과 시간축과 레이아웃으로 재조립하는 인터페이스다. 음악 플레이어가 곡을 재생하는 도구에서, 곡을 읽고 다시 무대화하는 도구로 이동하는 장면이 보인다.