HRTF란 무엇인가 + 사용?법

홈 > 시코마켓 > 특가정보 게시판

HRTF란 무엇인가 + 사용?법

Asurada () 18 10376 26
근 몇년간 HRTF를 써오면서 제가 쓰는 글마다 소스에 HRTF 변환소스를 사용했다는 멘트를 남겨서 그럴까.. 그동안도 간간히 그랬지만 최근 특히 저에게 다양한 루트를 통해 HRTF에 대해 문의해 오는 분들이 많아졌습니다. 제대로 소개도 안하고 니혼자 좋은거 쓰면 좋냐?라는거 같기도 하고 여튼 이래저래 HRTF에 대해 소개를 하지 않으면 안될 기분이 들어서 간만에 신나게 키보드를 두들겨 봅니다.



HRTF? 그거먹는거?

먹는거면 얼마나 좋겠습니까만은.. Head-Related Transfer Function, 줄여서 HRTF라 함은 두 귀가 머리를 사이에 두고 떨어져 있는 사람의 청각인지 구조상에서 생기는 음(정확히는 주파수)의 변화를 함수(Function) 관계로 정리한 것입니다. 쉽게 말해 머리가 장애물이 되어 음의 진행에 영향을 주는 정도를 수학적으로 정리한 거라고 할 수 있겠죠.

사람이 기본적으로 청각을 통해 방향감을 인지하는 요소는 두 귀가 서로 떨어져 있기 때문으로 흔히 알려져 있습니다. HRTF는 여기에서 더 나아가 두 귀 사이에 일종의 방해물처럼 존재하고 있는 머리라는 존재가 발생시키는 음의 변화까지 계산한 것이죠. 두 귀에 최대한 가까운 위치에 마이크로폰을 대고 주파수 반응을 측정해 보면 실제로 같은 음이라도 들리는 방향에 따라 주파수 반응이 달라집니다. 그런 같은 음을 발생해도 위치에 따라 달라지는 주파수 반응을 구면좌표계상의 모든 방향에 대해 측정하여 3차원적인 함수로 정리해 놓은 것이 바로 HRTF죠.



저런 식으로 사람 머리 주위의 공간상에 구면좌표계를 설정해 놓고
돌아가면서 주파수를 다 측정했다 이말



여기까지 설명을 들어도 모르겠다? 그러면 그냥 좋은거다 라고 생각하면 됩니다 :$ 여기까지 설명을 들어도 모르겠는데 그래도 꼭 알고싶다 하는 분은 책을 찾아보시길. (강성훈 강경옥 공저, {입체음향}. 기전연구사, 1997.)

기본적으로 우리가 흔히들 음장이라고 부르는 SRS나 BBS따위의 공간감 시뮬레이터들은 그런식으로 측정된 HRTF를 기초로 만들어집니다. 최대한 많은 사람들의 HRTF를 측정하여 그 데이터들의 평균값을 낸 표준적인 HRTF를 토대로 원하는 공간감을 시뮬레이션할 수 있는 것이죠.

그렇다면 HRTF를 가지고 PC에선 뭘 할 수 있느냐? HRTF를 사용하여 일반적인 스테레오 소스를 변환시키면 바이노럴 소스와 같은 효과가 나옵니다. 바이노럴은 또 뭔데? 인터넷상에 가끔 떠도는 뭐 귀에 대고 속삭이는 소리라거나 하는 신기한 소리 쯤으로 떠돌아 다니는 자료들이 다 바이노럴 소스들입니다. 이렇게 말하면 HRTF 변환이란게 어떤 효과가 있을지는 대략 짐작하시겠죠?


머리아픈 얘기는 이쯤하고 본론으로 넘어갑시다 -ㅅ-/



기초공사

위에서 공간감 시뮬레이터들은 표준적인 HRTF를 기준으로 만들어진다고 했습니다. 그런데 HRTF를 토대로 한 시뮬레이션이 아니라 HRTF를 바로 일반 소스에 적용시킬려면 어떻게 해야하나? 별수없습니다. 기존에 측정되어 있는 HRTF 모델들 중 자신과 가장 잘 맞는 모델을 찾아야지요. 물론 표준적인 HRTF를 사용하여 일률적으로 일반 소스에 적용시킬 수도 있으나 그러는 것보다는 아무래도 세부 모델 중 하나를 찾는게 보다 더 확실한 효과를 얻을 수 있기 때문입니다. 네모턱 + 세모턱의 데이터를 평균화하여 둥근턱의 데이터가 나왔는데 나는 네모턱이다.. 근데 둥근턱의 데이터만 쓸 수 있다고 하면 억울하겠죠?

사실 당연하지만 가장 좋은 방법은 HRTF를 연구하는 연구소에 찾아가서 자신의 HRTF를 측정하는 것입니다만.. 저도 그저 손톱만 빨 뿐입니다. 국내엔 카이스트에 그런거 연구하는 데가 있다는거 같긴 하던데 좀 아시는분? ㅠ.ㅠ


http://www.ircam.fr/equipes/salles/listen/sounds.html

위 페이지의 모델들은 프랑스 파리의 IRCAM이라는 동네에서 측정된 데이터들입니다. 이제 자신에게 가장 잘 맞는 샘플을 찾아보세요. 이어폰이나 헤드폰을 끼고 샘플들을 하나하나 들어보면서 머리 주위를 도는 백색잡음의 느낌이 가장 자연스러운 것을 찾습니다. 다른 거 볼 거 없이 백색잡음이 얼마나 머리를 자연스럽게 한바퀴 도느냐가 포인트.

http://www.ircam.fr/equipes/salles/listen/download.html

찾은 샘플 번호에 맞춰 위 페이지에서 실제 데이터를 다운받습니다.받은 압축파일 내의 compensate폴더의 wav파일들을 c:\\hrtf에 저장하시길.

그다음 커맨드 프롬프트(시작->실행->cmd 등의 방법)를 띄워서 c:\\hrtf로 이동한다음 dir/b > files명령으로 files라는 이름의 확장자가 없는 파일을 생성합니다. 생성후 이 파일을 메모장으로 열어서 가장 마지막줄에 files라는 부분을 없애주세요. files라는 파일 내의 목록에는 확장자가 wav로 된 파일 리스트 외엔 아무 것도 포함되어선 안됩니다.

그다음은 아래 두개를 클릭해서 다운받아주세요.

Foobar v0.8.3 special
HRTF DSP for foorbar v0.8.3

HRTF DSP를 구동하기 위한 dll파일은 푸바가 깔린 폴더 내의 components 폴더에 넣어줍니다. 안타깝게도 아직 0.9용 HRTF DSP가 없어서 HRTF를 쓰고 싶으면 부득이하게 0.8.3을 써야 합니다. 누구 좀 아무나 수소오디오(맞나?) 가서 HRTF 0.9용으로 만들어 달라고 해주실분 없을려나 :(


사실 가장 중요한건 이어폰/헤드폰의 준비인데.. 기본적으로 HRTF 변환 소스는 바이노럴 소스와 비슷한 특성을 보이는 관계로 중고음이 상당히 꺼집니다. 사실은 공간보정에 의한 당연한 결과이겠지만서도 일반적인 소스에 길들여져 있는 귀로 듣기엔 중고음이 꺼져 있다고 들리게 되죠. 뭐 사실은 그게 정상인 거니 별 신경쓸 필요는 없습니다.

중고음이 감쇄되는 특성을 보상해 줄 수 있는, 현재 시중에서 쉽게 구할 수 있는 바이노럴 소스 전용 이어폰은 ER-4B 하나밖에 모르겠군요. 뭐 ER-4B가 아니더라도 ER-4S 정도만 되도 충분하다면 충분. 단 슈어/웨스턴/UE계열 같이 안그래도 중고음~고음 감쇄특성을 보이거나 그라도/오테 계열처럼 지나치게 착색이 들어간 이어폰/헤드폰류에선 HRTF의 제대로된 효과를 보기 힘듭니다.



실제로 써먹어보기
* 캡쳐화면들은 클릭해서 보세요




http://pds2.egloos.com/pds/1/200609/18/09/c0029109_15243020.gif

푸바 실행화면입니다. 에? 뭔가 다르다구요? 그건 눈의 착각일 뿐입니다(뻥) 자세한 푸바 사용법에 대한 글이 아니므로 푸바 꾸미기 등의 설명은 다른 글들을 찾아 읽어보세요. 푸바의 세계는 무궁무진합니다 :$




http://pds2.egloos.com/pds/1/200609/18/09/c0029109_15243676.gif

여튼 Foobar2000 -> Preferences 로 들어갑니다. 단축키 뭐라 써져 있는지 보이시죠?




http://pds2.egloos.com/pds/1/200609/18/09/c0029109_15244050.gif

Playback -> DSP Manager에 가며 현재 깔려있는 DSP들이 모두 나타납니다. 왼쪽은 사용중인 DSP, 오른쪽은 사용가능한 DSP의 목록이죠. 오른쪽에서 원하는 DSP를 선택한 후 화살표를 누르거나 더블클릭하거나 해서




http://pds2.egloos.com/pds/1/200609/18/09/c0029109_1642390.gif

이렇게 왼쪽으로 옮깁니다. 그러면 실시간으로 HRTF 변환이 되서 출력됩니다.




http://pds2.egloos.com/pds/1/200609/18/09/c0029109_15244721.gif

Playback -> DSP Manager -> HRTF로 가면 구면좌표계상의 음원 방향을 조절할 수 있습니다. Theta는 수평면, Phi는 수직면 방향이므로 자신이 원하는 각도로 돌려 들으시면 됩니다. 아무리 조절해도 공간감이 부자연스럽네 하는 경우는 기초공사로 돌아가서 샘플부터 새로 선정해 볼 것을 추천드립니다.



몇가지 안내사항
1. HRTF 변환 소스를 스피커로 들으면 바보 소리 듣습니다.
2. HRTF 변환 소스를 포터블로 들고다니실 분은 foobar로 변환해서 들고 다니시면 됩니다.
4. 음량이 상당부분 줄어듭니다.
5. 원본소스의 샘플링주파수는 무조건 44.1KHz에 맞춰야 합니다. CD도 안된다는듯?


- Asurada.
| http://www.asnote.net |

18 Comments
건데기 2006.09.18 15:23  
  1등
Asurada 2006.09.18 15:24  
  2등 (응?)
그나저나 등수놀이 유행 지난거 아닙니까 :$
장태수 2006.09.18 15:33  
  관심은 있었는데 푸바를 제대로 사용할줄 몰라 선뜻 시도를 못해보고 있었는데
잘 정리된 게시물이 나왔네요^^
즐겁게 사용 해보도록 하겠습니다.
장태수 2006.09.18 15:37  
  그나저나 K1000 에서는 오히려 역효과 더군요.
요즘들어 새삼 K1000 의 자연스런 공간감에 놀라게 됩니다.
대동단결 2006.09.18 15:45  
  브라보콘님이 S to B 커넥터 공개해주시면 저도 저거 적극 활용할텐데요.. ㅜㅜ
Asurada 2006.09.18 15:48  
  K1000은 극단적인 경우로서 그건 이미 헤드폰이 아니라 스피커의 개념으로 봐야합니다 :$
[포라파]랩쏘디 2006.09.18 19:04  
  백색잡음듣는데 전부다 왜 오른쪽귀에서 머리 뒤로해서
왼쪽귀까지 갔다가 다시 머리뒤로해서 오른쪽귀로 가는거지..
원래 왼쪽귀에서 머리 앞으로해서 오른쪽으로 가야되는거 아니에요?ㅠㅠ
농약끊기 2006.09.18 19:22  
  Asurada님은//  ^^ 잘 정리된 게시물 수고하셨네요..

foobar 사용법도 극복해야겠지만 서도... 콤포넌트 자료수집만 잘하면 Winamp의 플러그인과는 다른 재미가... 있다고 들었습니다...( 지도 열심히 삽질중입니다.. )
보통은, 1042 , 1038 샘플을 권장하는듯, 어디선가 본듯한데,
Asurada님은, 몇번 이용하시는지...
저는, 1004가 좀 달리 들리더군요...

참고로, 푸바 보충용 링크 겁니다.... 무단링크라 좀 그러하지만서도, ^^ 이해를....
<a href=http://blog.naver.com/ttakiya target=_blank>http://blog.naver.com/ttakiya</a>

[포라파]랩쏘디 2006.09.18 19:34  
  농약끊기님/// 오우 1004 .... !!
브라보콘 2006.09.18 19:48  
  <a href=http://desk.mywork.co.kr/zboard/zboard.php?id=info&no=170 target=_blank>http://desk.mywork.co.kr/zboard/zboard.php?id=info&no=170 </a>

hrtf DATABASE 의 데모 샘플에 대한 간단한 정리입니다.
안회령 2006.09.18 20:01  
  재밌네요!

좋은 자료 고맙습니다.

[포라파]랩쏘디 2006.09.18 20:01  
  포터블로 들으려고 변환하려는데 PCM포맷 밖에 없군요.

어떻게 해야되나요?
Asurada 2006.09.18 21:53  
  추천 샘플은 사실 전혀 의미가 없다고 봅니다. 당장 저만 해도 female 모델을 쓰고 있으니 말이죠 :$ 샘플은 앞으로 안돌아오는거 같으면 앞으로 돌아오는 샘플을 찾을때까지 해보는 수밖에 없습니다 orz

푸바의 diskwriter쪽 옵션에 대해서는 부디 다른 글들을 찾아봐 주시길.. 그거까지 설명하려면 따로 글을 써야 될 분량이라 ^^;

안회령 2006.09.18 21:59  
  아수라다 님 글쓰니라 수고하셨슴~ 상당히 좋네요!

er4b 가 갑자기 땡기네요!


랩쏘디 님

"preference >>component >> diskwriter >> output presets" 에서 조정하세요!
Heal.P.XER0 2006.09.18 22:56  
  오랫만에 도움 되는 글 잘 읽었습니다(만 리시버가 오테 ES7이라....;;). 특히 개념 설명에 적절히 쓰인 이미지의 센스가-_-bb


아참, 실례가 되는 말인지도 모르겠으나 아스라다님께서 female 모델을 사용하시는 게 왠지 당연히 그럴법하다고 생각되는 이유는......
윤혁 2006.09.19 10:07  
  꼭 리시버에서 바이노럴소스를 받아줘야만 하는 건 아니더군요.
271s를 쓰는데 예전에 한동안 잘 써왔었습니다.
다만 파일을 변환시켜서 저장시키는 작업이 너무나 귀찮아서
지금은 그냥 쓰고 있지만 꽤나 즐거운 유틸이었습니다.
lovyz 2006.09.19 13:49  
  바이노럴 레코딩소스와 스테레오를 HRTF변환 한것과는 상당한 차이가 나더군요
ExErion 2006.09.19 13:53  
  er4b의 시대가 도래하리니...
ㅎㅎ시코랑 모 지인동 통틀어 er4b 쓰는분은 4분정도밖엔..

대부분 er4p 를 ㅎㅎ.... s도 요즘은 드문 ㅡ.ㅜ;..
제목