사이드바 영역으로 건너뛰기

foobar 4 HRTF(Head-Related Transfer Function)

 

 

 

HRTF란 무엇인가 + 사용?법

근 몇년간 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의 제대로된 효과를 보기 힘듭니다.



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



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


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


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


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


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



몇가지 안내사항
1. HRTF 변환 소스를 스피커로 들으면 바보 소리 듣습니다.
2. HRTF 변환 소스를 포터블로 들고다니실 분은 foobar로 변환해서 들고 다니시면 됩니다.
3. 음량이 상당부분 줄어듭니다.
4. 원본소스의 샘플링주파수는 무조건 44.1KHz에 맞춰야 합니다. CD도 안된다는듯?
 
by Asurada | 2006/09/18 15:25 | review_tech | 트랙백 | 덧글(5)
트랙백 주소 : http://vasurada.egloos.com/tb/2530851
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by adieu at 2006/09/19 02:23 #
덕분에 신기한 경험을 했어요 ^ ^; 샘플을 들을땐 등골이 오싹했습니다;
시간을 들여서 좀더 맞는 샘플을 골라야겠습니다;
포터블로 사용할때 변환하는 방법은 어떻게 해야하는지;
아무리 찾아봐도 없네요 T-T ....
Commented by Asurada at 2006/09/22 01:28 #
diskwriter를 조지면 됩니다. 사용법 정도는 넷상에 많을텐데..
Commented by adieu at 2006/09/24 01:50 #
감사하옵니다!! T-T 덕분에 HRTF를 이용한 포터블 사용이 가능해졌어요 T-T

 

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크