개발기
HomeSounds Sync 개발기 — HomePod과 책상 스피커의 어긋남 맞추기
개발 발행 3분 읽기
#HomeSounds Sync#개발기#macOS#오디오
HomeSounds Sync 프로젝트 보기HomeSounds Sync는 Apple Music을 HomePod·AirPlay 스피커와 Mac에 연결된 로컬 스피커에서 함께 재생하고, 서로 어긋난 소리를 맞추는 macOS 도구입니다. 여러 기기를 한 공간에서 틀었을 때 음악이 넓어지는 대신 메아리처럼 들리던 문제에서 시작했습니다.
함께 재생하는 것보다 같은 순간에 들리는 게 어려웠습니다#
AirPlay 스피커끼리는 같은 재생 시간에 맞춰 움직이지만, Mac에 직접 연결된 스피커는 별도의 짧은 경로로 소리를 냅니다. 두 쪽을 단순히 동시에 켜면 로컬 스피커가 먼저 들리고, 잠시 뒤 HomePod 소리가 겹치며 에코가 생깁니다. 출력 장치를 여러 개 고르는 것만으로는 해결되지 않는 문제였습니다.
게다가 Apple Music이 AirPlay로 직접 출력하는 동안에는 그 오디오를 앱에서 다시 받아 로컬 스피커로 보내기 어렵습니다. 결국 재생 버튼 하나를 더 만드는 일이 아니라, 소리가 흐르는 순서를 새로 짜야 했습니다.
오디오의 흐름을 거꾸로 설계했습니다#
해법은 Apple Music의 출력을 Mac에 둔 채 Core Audio의 프로세스 탭으로 소리를 받는 것이었습니다. 앱은 그 스트림을 로컬 스피커로 재생하면서, 별도의 OwnTone 프로세스에도 건네 AirPlay 쪽으로 보냅니다. AirPlay 스피커들이 만든 시간축을 기준으로 삼고 로컬 출력만 늦추는 구조입니다.
이 방식 덕분에 유선 스피커, USB 오디오, 모니터처럼 macOS 출력 장치로 보이는 기기를 같은 방법으로 다룰 수 있습니다. 한 개의 공통 지연값을 강요하지 않고, 각 로컬 장치마다 값을 저장하도록 한 것도 실제 하드웨어마다 경로가 다르기 때문입니다.
편리함과 보안 사이의 선택도 남았습니다#
최근 HomePod과 OwnTone을 연결하려면 기본 페어링 대신 임시 페어링을 쓰는 보완이 필요할 수 있습니다. 이 방식은 홈 앱의 스피커 접근 설정에 의존하므로, 설치 과정과 앱 안에 신뢰하는 네트워크에서만 사용하고 같은 네트워크로 접근을 제한하라는 안내를 분명히 넣었습니다.
오디오가 맞는지만 확인하고 끝낼 수 없는 도구였습니다. 설정 화면에서는 AirPlay와 로컬 장치를 나눠 보여 주고, 장치가 바뀌어도 다시 조절할 수 있게 했습니다. 편리한 자동화보다 사용자가 현재 연결 상태와 선택을 이해하는 쪽을 우선했습니다.
지금은#
HomeSounds Sync는 무료 오픈소스로 공개되어 있고, 여러 AirPlay·로컬 스피커와 기기별 지연 조절을 지원합니다. 다만 OwnTone의 AirPlay 호환성은 역공학에 기반하므로 Apple의 변경에 따라 다시 손봐야 할 수 있습니다. 완벽히 감추는 마법보다는, 집의 서로 다른 스피커를 직접 듣고 맞출 수 있는 투명한 도구로 유지하려 합니다.