핵심 요약
- 다른 OS에서 쓰던 편안한 입체 음향 효과를 리눅스에서 재현하고자 한 개발자가 상용 소프트웨어 역공학에 나섰습니다.
- 초기에는 LLM과 공개 HRTF 데이터를 썼으나 실패하자, 친구 노트북을 빌려 특수 신호의 입출력 임펄스 응답을 단번에 녹음·측정하는 방식을 고안했습니다.
- 단일 임펄스와 정규화된 사인 스윕(sine sweep) 기법을 동원해 필터의 주파수 반응과 위상차를 정밀하게 분석해냈습니다.
요약 다른 운영체제에서 쓰던 상용 실시간 공간 음향(Spatial Audio) 프로그램의 소리를 잊지 못한 한 개발자가, 리눅스(Linux) 환경에서 이를 직접 구현하기 위해 상용 프로그램을 역공학(리버스 엔지니어링)한 과정을 공개했습니다. 원본 프로그램은 음악을 들을 때 소리가 귀에 너무 밀착되지 않고 멀리서 들리는 듯 편안하고 덜 먹먹한 느낌을 주는 효과가 있었습니다.
작성자는 처음에 오디오 관련 배경지식이 전혀 없는 상태에서 파이프와이어(PipeWire)를 기반으로 LLM(인공지능)에 물어가며 표준 오디오 필터와 머리전달함수(HRTF) 데이터베이스를 적용해 보았습니다. 하지만 무향실에서 녹음된 MIT KEMAR 데이터베이스는 공간 반사음이 없어 소리가 귓속으로 파고드는 듯 조잡했고, 실내 반사음이 포함된 SADIE II 데이터셋을 적용해도 만족스럽지 않았습니다. 게다가 LLM이 점차 난해한 전문 용어만 쏟아내며 개선 방향을 제시하지 못하자 프로젝트는 한동안 중단되었습니다.
이후 개발자는 프로그램의 내부 알고리즘을 추측하는 대신, 필터의 외부 입출력 반응 자체를 측정하기로 전략을 바꿨습니다. 본인에게 프로그램 복사본이 없고 친구의 노트북에만 설치되어 있었기 때문에, 리눅스에서 특수 테스트 오디오 파일을 생성한 뒤 친구 노트북에서 해당 프로그램 필터를 통과시켜 출력음을 단 한 번에 녹음해 분석하는 방식을 택했습니다.
그는 필터가 '선형 시불변(LTI)' 특성을 가질 것이라는 가정하에 다양한 크기의 임펄스(단일 샘플) 신호를 좌우 채널 및 위상 반전 조합으로 배치하여 응답 감쇠 형태와 지연 시간을 측정했습니다. 또한, 단일 임펄스의 주파수별 에너지 부족 및 잡음 문제를 극복하기 위해 측정 논문에서 흔히 쓰이는 사인 스윕(Sine sweep)과 정규화 기법까지 동원해 주파수 응답과 위상 지연 데이터를 추출했습니다. 개발자의 집념과 체계적인 측정 방식이 돋보이는 역공학 기록입니다.
Sponsored · 광고