상용 공간 음향 이펙트를 리버스 엔지니어링한 방법

How I reverse engineered a commercial spatial audio effect

epestr.com ▲ 95 댓글 32 epestr

요약

예전에 쓰던 상용 공간 음향 이펙트를 입출력 측정만으로 리눅스에 옮겼습니다.

리눅스용 실시간 오디오 보정 도구 Saq를 만든 개발자의 글입니다. 다른 운영체제에서 즐겨 쓰던 상용 프로그램의 효과를 리눅스에서도 쓰려고, 내부 알고리즘을 짐작하는 대신 소리가 어떻게 바뀌는지만 재서 복제했습니다.

왜 중요한가

  • 처리기 속을 몰라도 바깥에서 동작을 재면 효과를 되살릴 수 있음을 보여 줍니다.
  • 이 방법은 선형·시불변(입력 크기나 시점에 따라 반응이 바뀌지 않는) 부분에만 통한다는 한계도 확인됐습니다.

핵심 내용

  • 시험용 소리 파일 하나를 친구 노트북의 상용 프로그램에 한 번 통과시켜 녹음하고, 그 결과에서 필터를 뽑았습니다.
  • 임펄스(한 샘플짜리 짧은 신호), 사인 스윕, 여러 주파수의 톤을 넣어 반응이 일정한지 시험했습니다.
  • 주요 서라운드 모드는 거의 선형이었고, 좌우 채널 사이의 필터 4개로 효과를 담을 수 있었습니다.
  • 소리는 반대쪽 채널로 더 작고 조금 늦게 넘어갔고, 그 뒤에 긴 잔향이 붙었습니다.
  • 처음 시도한 HRTF(머리와 귀가 소리를 바꾸는 방식을 잰 데이터)는 머릿속에서 울리는 듯해 원하던 소리가 아니었습니다.

HN 반응

  • 기술은 흥미롭지만 저음을 과하게 부풀린 소리라 듣기 거북하다는 평이 여럿 나왔고, 작성자는 저음 강조 기본값을 20%로 낮췄습니다.
  • 일부 이용자는 Nothing Ear의 효과가 더 사실적이라고 비교했고, 작성자는 가장 정확한 데이터가 오히려 밋밋하게 들린다며 취향 문제라고 답했습니다.

댓글

23개 표시 · 전체 32개
  1. fxtentacle HN

    벌써 12년 전 일이지만, 제가 만든 상용 공간 음향 이펙트가 어떻게 동작하는지 블로그에 쓴 적이 있습니다: https://hajo.me/blog/2014/12/28/how-surround-sound-for-headphones-works/

    참고로 이렇게 나온 플러그인은 조지 루카스의 「레드 테일즈」 마스터링 때 쓰였으니, 음질은 괜찮았던 모양입니다 ;)

    제 맥 앱은 (애플이 KExt 권한을 막아 버려서) 오래전에 단종됐지만, 기술은 팔았고 지금도 살아 있습니다.

    공간 음향이 내장된 헤드폰 하드웨어를 만들어 볼까 하는 생각을 계속합니다. TV에는 돌비 애트모스로 보이지만 헤드폰에서는 가상 서라운드 사운드를 내는 제품입니다. 그런데 하드웨어는 마진이 낮은 편이라 투자해 주겠다는 사람을 끝내 못 찾았습니다. 이미 작동하는 프로토타입도 있는데 말이죠. 아, 이걸 발명한 오디오 엔지니어는 그 뒤로 그래미상 후보에 두 번이나 올랐습니다. 그리고 할리우드도 좋아하고요. 그래도 투자자를 설득하기는 여전히 어렵습니다.

  2. epestr HN

    공유해 주셔서 감사합니다. 저도 saqol에서 ITD, ILD, 바이쿼드 필터, 딜레이 라인으로 이펙트를 만들어 보려 했는데, 끝내 좋은 소리가 나오지 않았습니다(그래서 웹 버전에는 이 이펙트가 들어 있지 않습니다): https://github.com/mTvare6/saqol/blob/main/crates/saq-dsp/src/spatial_filter.rs

    혹시 작동하는 데모가 아직 어딘가에 있습니까? 글에 있는 링크는 죽은 것 같은데, 꼭 한번 들어 보고 싶습니다.

  3. jareklupinski HN

    사운드 엔진 두 개 중 하나는 NEW AUDIO TECHNOLOGY에서 라이선스를 받은 것

    게이밍 헤드셋에서 가상 서라운드를 쓰려면 계정에 로그인해야 하는 게 이것 때문인가요

  4. andai HN

    흥미로운 글이네요. 저는 소리 처리를 잘 모르지만, FL Studio의 Fruity Convolver가 떠올랐습니다. 어떤 소리(임펄스라고 하나요?)의 특성을 내 오디오 스트림에 입힐 수 있는 이펙트인데, 신기하게도 잘 됩니다. 특이한 공간에서 녹음한 리버브나 기타 앰프 같은 흥미로운 효과가 기본으로 들어 있습니다.

    글 맨 앞에 나온 오디오 클립을 끝부분에서도 비교해 봤으면 좋았을 텐데요! 그러지 못해서 제 목소리를 직접 녹음해야 했습니다. 게다가 이펙트를 켰다 끄는 방법이 없는 것 같아요. 그래서 실제로 뭘 하는지 감을 잡기가 좀 어렵습니다.

    2000년대에 나온 멋진 mp3도 생각납니다. 요즘은 유튜브에 있을지도 모르겠네요. 바이노럴 마이크로 녹음한 '버추얼 바버샵'이라는 곡입니다.

    수정: 찾았습니다! https://youtube.com/watch?v=IUDTlvagjJA

  5. epestr HN

    네, 그게 임펄스 응답(impulse response)입니다. 방이 선형(이고 시불변인) 필터처럼 작동한다면 이런 걸 전부 쉽게 알아낼 수 있고, 이 글은 기본적으로 그게 실제로 성립하는지, 그리고 재구성이 얼마나 잘 되는지를 시험하는 내용입니다.

    그리고 켜고 끄는 방법도 있습니다. 주황색 아이콘을 누르면 켜지고 꺼지고, 그 둘레의 링으로 내장된 '베이스'를 조절할 수 있습니다. 또 목소리에는 효과가 거의 없을 가능성이 높습니다. 더 복잡하게 편곡된 곡이라야 차이가 들립니다.

    저도 관심을 갖게 된 계기인 비슷한 예시가 위키백과에도 있습니다: https://en.wikipedia.org/wiki/File:BinauralPaper.ogg

  6. _joel HN

    네, 임펄스 응답이라고 합니다. 컨볼루션 리버브를 담아내는 데 쓰이고, 큰 홀 같은 "실제" 음향 공간을 모델링하는 데 활용됩니다.

  7. clzerv HN

    이걸 해낸 노력과 재능은 높이 평가하지만, 결과물은 형편없다고 생각합니다. 저는 이런 과한 소리 처리를 "보스 토사물(Bose barf)"이라고 부르는데, 보스 오디오는 거의 다 이런 소리가 나거든요. 들을 때마다 신경을 박박 긁습니다. 요즘은 TV, 블루투스 스피커, 헤드폰 같은 게 죄다 이런 공격적인 오디오 처리를 하는 것 같습니다. 값싼 초소형 드라이버의 한계를 덮으려는 거겠죠. 최대한 중립적인 사운드를 내는 기기는 갈수록 찾기 어렵습니다. 이런 오디오 처리를 거치면 음악이 1950년대 초등학교 강당 스피커에 테이프로 붙인 정원용 호스에서 나오는 소리처럼 들립니다. 저는 이게 왜 인기가 있는지 도무지 이해가 안 됩니다.

  8. epestr HN

    저음이 너무 묵직하게 느껴지면 서브우퍼 슬라이더(아이콘 둘레)가 있고, 이미 베이스를 부스트해서 처리된 곡이라면 그 값을 낮춰야 하는 곡도 있습니다.

    제 Jabra 헤드폰은 기본적으로 아무 처리도 안 하는 것 같은데, 저는 이 처리를 거친 소리가 더 마음에 듭니다. 헤드폰이 이미 베이스를 부스트하거나 다른 이펙트를 걸고 있다면 처리가 겹쳐서 거슬릴 수 있습니다(제가 영상을 녹화한 뒤 그걸 데몬이 돌아가는 상태에서 재생했을 때 겪어 봤습니다).

    결국 취향 차이인 것 같습니다. 저는 음악이 조금 먼 곳에서 들리는 듯한 느낌이 좋은데, 말씀하신 불쾌함은 아마 베이스 부스트에서 오는 게 아닐까 싶습니다.

  9. ryankrage77 HN

    원본 음원에 따라서도 달라지는 것 같아요. 페이지 맨 위의 데모는 좋게 들렸는데, 끝에 있는 데모에서 스테레오 이미지가 이미 꽤 넓은 록 음악을 틀어 봤더니 소리가 아주 '찌그러져서' 머릿속에서 울리는 것처럼 들렸고, 게다가 이상한 왜곡과 위상 문제도 많았습니다.

  10. epestr HN

    흥미롭네요. 저는 소리가 더 넓게 느껴지거나, 많아야 아무 변화가 없는 정도만 경험했지, 이미 넓게 들리는 곡이 찌그러지는 건 본 적이 없습니다. 어떤 곡을 틀어 보셨나요? 무슨 일인지 확인해 보겠습니다.

  11. ryankrage77 HN

    Ghost의 'Square Hammer'였습니다.

  12. tancop HN

    네, 기본 베이스 부스트는 너무 과해요. 저는 다이얼을 왼쪽 끝으로 돌려 놨더니 훨씬 좋아졌습니다.

  13. epestr HN

    글에서는 생략했는데, 원래 프로세서의 공간 필터에는 이미 이펙트 안에 베이스 부스트가 들어 있었고, 저는 그걸 그대로 가져와서 지금은 (당연히 비선형으로) 보간하고 있습니다.

    일단 페이지의 기본값은 20%로 바꿔 놨습니다.

  14. diydsp HN

    저도 보스는 같은 생각이에요. 기술과 과학은 존중하는데, 그 위에 가짜 미학 층을 덧씌우거든요.

    재즈를 좋게 들리게 하려는 거라고 생각해요. EQ로 키운 저음과 깎은 중음 덕분에 스탠딩 베이스는 더 도드라지고 피아노와 보컬은 더 앞으로 나오니까요.

    그런데 이러다 내가 제일 좋아하는 밴드를 싫어하게 된 건가 하는 생각까지 들었어요. 이번 주말에 이사 준비로 짐을 싸다가 CD 모음을 발견했거든요. Stereolab CD가 많았어요. 그걸 기본적인 어쿠스틱 도파관 라디오로 틀었어요. 물려받아서 거의 안 쓰던, 세련된 북셸프 모델이죠.

    45분 뒤에 저는 "세상에, 음악이 진짜 별로네... 끔찍한 반복뿐이잖아" 하고 있더라고요. 모토릭 베이스가 반복적인 건 맞아요... 하지만 이 밴드의 또 다른 핵심은 부드러운 노래와 정교하고 섬세한 신디사이저·오르간 멜로디인데... 그게 전부 중저음에 과하게 쏠린 오디오 엔지니어와 마케터의 사악한 쌍둥이 조합 때문에 완전히 막혀 버린 거예요.

  15. jeffreygoesto HN

    그래서 저는 1991년식 Harman-Kardon 앰프를 수리해서, 요즘은 CD와 LP를 점점 더 그걸로 듣고 있습니다. 그때 같이 샀던 Revox 스피커나 HifiMan Edition XS를 물려서 듣는데, 정말 놀랍습니다. 제 컬렉션 기준으로는 믹싱의 정점이 80년대였습니다. 70년대는 실험이 많았고, 90년대는 이미 너무 압축돼 있었어요.

  16. coldblues HN

    취미로 하는 오디오파일 커뮤니티에서는 5.1 서라운드이고 다이내믹 레인지가 훨씬 넓은 돌비 애트모스 음악을 다운믹스하는 데 관심이 쏠려 있습니다. 예를 들면: https://github.com/peqdb/macos

    Apple Music을 쓰고 윈도에 있다면 설정에 스테레오로 다운믹스하는 옵션이 있습니다. 여기 있는 아무 음악으로나 한번 해 보세요: https://helloatmos.app/library/

    HRTF로 공간 음향을 실험하는 사람들도 있는데, 음악에는 별로라고 생각합니다.

  17. epestr HN

    저는 주로 리눅스에서 일반 스테레오 음악에 이 효과를 내려고 했습니다. 멀티채널 오디오를 제공하는 곳이 워낙 드물어서요(넷플릭스는 맥에서는 제공하지만, 리눅스는 아직입니다). 이 링크는 기억해 두겠습니다. 다운믹스는 정말 좋은 추가 기능이 되겠네요.

    특정 주파수 대역을 서로 다른 소스로 보내면 괜찮게 들릴지, 그리고 그걸 다운믹스와 결합할 수 있을지도 궁금했습니다.

  18. haddr HN

    작성자가 기타 앰프를 NAM(Neural Amp Modeler) 모델로 캡처할 때 쓰는 방식과 비슷한 걸 따라 해 볼 수 있을지 궁금하네요. https://www.tone3000.com/capture

  19. epestr HN

    지금까지 원했던 건 전부 재구성했지만, 이건 계속 지켜보겠습니다. 이쪽도 (제가 쓴 기법처럼) 테스트 스윕을 녹음한 것만으로 학습하는 옵션이 있더군요. 학습된 모델은 비선형 모드에 유용할 것 같습니다. 지금의 제 접근법이 통하지 않을 때(이건 기존 테스트로 정량화할 수 있습니다) 더 복잡한 함수를 쓸 수 있게 해 줄 테니까요.

  20. schleck8 HN

    저는 납득이 안 됩니다. Nothing Ear의 공간 음향 효과(제가 알기로는 코덱이나 컨테이너와 무관한 순수 후처리입니다)가 훨씬 현실감 있게 들리는데, Nothing이 이 분야 최고의 알고리즘을 갖고 있을 것 같지는 않거든요.

  21. epestr HN

    Nothing Ear 효과와 비교해 보고 싶습니다. 그게 선형(이고 시불변)이라면 테스트 샘플을 틀어서 그 결과를 녹음하고, 자동화 스크립트로 응답을 뽑아내기만 하면 될 겁니다.

    이펙트 이야기를 하자면, 저는 가장 현실적인 공간 음향 알고리즘을 만들려던 게 아니라, 예전부터 좋아하던 특정한 효과를 재현하려고 했습니다. 이 스레드 다른 곳에서 언급된 earwax 효과도 제가 원하던 것에 꽤 가깝게 들립니다. 이 글을 올린 게 일종의 탐색 역할도 해서, 리버스 엔지니어링해 볼 만한 다른 이펙트를 좋은 추천으로 여럿 받았습니다.

  22. epestr HN

    게다가 기술적으로 가장 정확한 SADIE나 MIT 같은 것들이 오히려 들었을 때 가장 인상이 약합니다. 그렇다면 결국 어느 쪽이 "가장 좋게" 들리느냐가 문제인데, 그건 여전히 주관적이겠죠.

  23. jonathanstrange HN

    소리는 끔찍하게 들리지만, 글의 기술적인 면은 높이 평가합니다.

Hacker News에서 보기 ↗