공부하거나 일할 때 배경으로 로파이(lofi) 음악을 틀어두는 습관은 이제 흔한 풍경이다. 대부분은 유튜브나 스트리밍 서비스에 올라온 긴 재생목록을 반복 재생하는 방식이다. 사파 엘말리(Safa Elmali)가 만든 웹 앱 'Lofi Cities'(loficities.com)는 여기서 한 걸음 더 나간다. 미리 녹음된 음원을 트는 것이 아니라, 사용자의 브라우저 안에서 음악을 실시간으로 작곡하고 합성한다. 화면에는 파리, 도쿄, 뉴욕, 홍콩, 시드니, 샌프란시스코 등 도시의 밤을 담은 픽셀아트 애니메이션이 흐르고, 그 위로 끝나지 않는 로파이 트랙이 계속 생성된다. 설치도, 회원가입도, 팝업도 없이 무료로 동작한다는 점이 특징이다.
샘플 없이 실시간으로 만드는 음악
기술적으로 흥미로운 부분은 음악이 재생되는 방식이다. Lofi Cities는 웹 오디오 API(Web Audio API)를 이용해 코드 진행, 드럼 그루브, 베이스 라인, 그리고 종종 멜로디까지를 그 자리에서 합성한다. 미리 준비된 샘플이나 녹음 파일을 조합하는 것이 아니라 소리 자체를 실시간으로 만들어내기 때문에, 이론상 스트림이 고갈될 일이 없다. 마지막에는 테이프 특유의 흔들림(tape wobble)과 바이닐 잡음(vinyl crackle)을 덧입혀 로파이 특유의 아날로그 질감을 낸다.
스타일은 'Vibe' 패널에서 고른다. 기본값인 재즈합(jazzhop)은 로즈 피아노와 재즈풍 코드에 68~88 BPM의 스윙 붐뱁 비트를 얹은 형태이며, 이 외에도 펠트 피아노, 앰비언트, 보사노바, 80년대 시티팝 신스, 로파이 하우스, 클린 일렉트릭 기타, 단조의 '새드 로파이', 그리고 류트와 리코더를 쓴 '중세 로파이'까지 선택할 수 있다. 여기에 chill·upbeat로 분위기를 조절하거나, 풀 밴드·드럼 제외·코드만 등으로 편성을 바꿀 수도 있다. 스타일 변경은 다음 트랙부터 적용된다.
화면과 소리가 맞물리는 구성
각 도시 장면은 480×270 픽셀 애니메이션으로, 4분마다 이음매 없이 반복되며 도시별 날씨와 랜드마크, 도시 소리를 갖는다. 음악과 별개로 '앰비언스 레이어'가 그 도시의 환경음을 음악 밑에 섞어주고, 트랙 제목도 화면 속 도시에서 영감을 받아 붙는다. 음악과 도시 소리는 각각 별도의 볼륨 슬라이더로 조절되며, 도시 소리 믹서는 빗소리·차량 소음·종소리 같은 개별 요소까지 따로 키우거나 끌 수 있다. 이 설정은 같은 소리를 가진 다른 도시로도 이어진다. 'W'로 부르는 날씨 칩은 비, 눈, 낙엽, 맑은 밤을 어느 도시에나 적용하고, 그에 맞춰 도시 소리와 트랙 제목도 함께 바뀐다.
실무적으로 눈여겨볼 기능도 몇 가지 있다. 25분 집중·5분 휴식(또는 50분·10분)을 반복하는 포모도로형 집중 타이머와, 15~90분 뒤 음악을 서서히 줄여 정지하는 취침 타이머가 내장돼 있다. 방송 제작자를 위해서는 OBS의 브라우저 소스에 도시 주소 뒤 '?obs'를 붙이는 방식으로 인터페이스 없이 소리를 자동 재생하도록 지원한다. 화면의 현재 프레임을 1080p PNG로 저장하는 기능, 다른 앱 위에 장면을 띄우는 PIP 미니 플레이어, 세로 화면에서 좌우로 끌어 도시를 둘러보는 모바일 대응도 갖췄다.
데이터를 남기지 않는 접근과 남는 과제
프라이버시 설계도 이 앱의 성격을 잘 보여준다. 로그인과 쿠키가 없고, 마지막 도시나 볼륨, Vibe 같은 설정과 통계·실시간 카운트를 위한 익명 무작위 ID는 쿠키가 아닌 브라우저 로컬 스토리지에 저장된다. Do Not Track 신호를 보내는 브라우저는 익명 사용 통계에서 제외된다. 도시 이름 아래 '지금 이 도시에 몇 명, 오늘 방문 몇 명' 같은 실시간 접속 표시나, 하트·쪽지·종이등불을 화면에 띄워 같은 도시에 있는 사람들과 익명으로 인사하는 'Together' 기능도 채팅이나 이름 없이 무작위 ID만으로 동작하며, 서버는 마지막 방문 약 25시간 뒤 이 정보를 잊는다. 한 번 접속해두면 오프라인에서도 도시와 음악이 모두 브라우저에서 생성되므로 인터넷 연결 없이 작동하고, PWA로 홈 화면에 설치할 수도 있다.
다만 도구로서의 한계도 분명하다. 실시간 합성은 스트림이 마르지 않는다는 장점이 있지만, 사람이 작곡·연주한 트랙에 비해 곡의 완성도나 변화의 폭에서 기대치를 조정할 필요가 있다. 절차적으로 생성되는 음악은 배경음으로는 훌륭해도 감상의 초점을 두기에는 반복적으로 느껴질 수 있기 때문이다. 수익 모델은 도시마다 배치된 픽셀아트 광고판 임대, 'Buy Me a Coffee' 후원, 그리고 음악이 빠진 4분짜리 1920×1080 60fps 영상 루프 판매(Gumroad)로 구성돼 있는데, 웹사이트 자체는 계속 무료로 유지된다는 방침이다. 최초 6개 도시로 시작해 홍콩·시드니·샌프란시스코·함부르크·암스테르담, 이후 두바이·마드리드·로마·프라하·뮌헨이 더해지며 총 16개 도시로 늘어난 점을 보면, 브라우저 네이티브 오디오 합성과 픽셀아트라는 비교적 가벼운 조합만으로도 지속적으로 확장 가능한 서비스를 만들 수 있음을 보여주는 사례라 할 만하다.