본문 바로가기

TIP&TECHNICAL

가상 사운드 장치로, 간단하게 가상 스테레오 믹스를 구성해 봤습니다.

가끔식 방송 테스트나 사운드 관련 뻘짓을 하면서, 유용하게 쓰던게 Windows 7의 스테레오 믹스인데,,,, 왜 노트북에는 없는건가요!? 어제 삽질좀 하려다가 없는거 이제야 확인하고 엄청 당황중이네요. 이게, 제가 사용하는 노트북 한정이 아니라 여러 노트북에서 스테레오 믹스 사용이 불가능한 경우가 많군요. 물론 근본적인 문제인 드라이버에서 미포함된 것을 해결하는 방법이랑, 소프트웨어로 가상 사운드 하드웨어를 만들어서 기존의 스테레오 믹스와 유사하게 사용하는 방법, 두가지가 있지요.

저 같은 경우는 애초에 노트북의 사운드 칩셋이 다른 드라이버와는 호환되지 않는 녀석인데다가(레노버용으로 커스터마이징 된 오디오 칩셋이라나 뭐라나) 핼로우 월드 띄우는 것도 힘들어하는 프로그래밍 실력으로 사운드 드라이버에 없어진 스테레오 믹스를 집어넣는건 가능성 제로의 영역을 달리니까, 소프트웨어적으로 해결 봤습니다. 이 부분에 관한 포스팅은 하지 않고 다른 블로그 링크 띄울께요. 저도 이 걸 보고 만들어 둔 거니까요. 참고로 이번 포스팅은 팁이나 기술과 관련된 것이 아니라 그냥 단순히 리뷰입니다.

http://blog.naver.com/jwillfly/90133202740

이 블로거의 설명대로 대충대충 설정해 놓고 적당히 만지고 놀다 보면 어느게 어느걸 의미하는지 대충 감이 잡히더라구요. 그래서 간단하게 정리를 해 보았습니다.



일단 제가 사용중인 노트북인 E320의 사운드 드라이버는 글 쓰는 목적과 같이 스테레오 믹스를 지원하지 않습니다. 기본적으로 재생 장비에는 스피커와 해드셋 뿐이고, 녹음 장치는 내장 마이크와 (포트도 없는데 왜 있는지 모르겠는) 외부 마이크, 두개 있습니다. 지저분해지는게 싫어서 외부 마이크는 사용 안함 설정해 놓고 숨겨뒀습니다.

우선 저 프로그램을 설치하면 소프트웨어로 구현되는 가상의 사운드 장비가 재생에 3개, 녹음에는 장치 유형 별로(라인, 마이크, 디지털 출력, 물론 다 가상입니다) 각각 3개씩 만들어 집니다. 제가 원하는 구성은 스테레오 믹스 뿐이기 때문에 다른 장비는 필요 없습니다. 그래서 숨겨두고 하나만 가지고 놉니다. 참고로, 저 프로그램의 가상 하드웨어 구현 능력이 그리 좋지 않아 간혹 소리가 늘어지거나 노이즈가 끼는등의 문제가 있으므로 저 프로그램 자체에 있는 출력 기능은 사용하지 않습니다. 즉, Windows 7의 오디오 믹서 설정과, 저 프로그램의 가상 라인(인풋, 아웃풋 각각 하나씩) 구현만 활용합니다. 참고로 Windows XP의 경우에는 이 방법이 어렵습니다. 이 방법을 이용하려면 기본 장비 믹서 설정에 따로따로 지정이 가능해야 하는데 XP는 기본 장비 설정을 해버리면 다른 장비에서는 연결 자체가 끊어지거든요.




자 이제 생각해 봅시다.

스테레오 믹스의 기본 기능은, 내가 듣는 소리를 따와서(출력) 녹음 프로그램등에 그 소리를 그대로 전해줄 주 있다(입력) 죠. 그러니까 간단하게 출력되는 신호를 입력으로 되돌릴 수 있다입니다. 단, 여기서 출력되는 신호는 별다른 영향 없이 그대로 나가야 합니다.  이걸 가상 하드웨어로 구성해 보면, 우선 가상의 출력 장비로 소리를 냅니다. 이 가상의 출력 장비는 바로 가상의 입력 장비로 연결되어서 입력으로 전환이 되었습니다.(이부분은 프로그램이 구현합니다.) 그러나, 출력이 입력으로 바로 연결되어 있어 실제로 소리가 출력되지는 않습니다. 그래서, 윈도우 오디오의 수신 대기 기능을 이용해 가상의 입력 장비의 신호를 실제 사운드 칩셋에 연결되어 있는 스피커로 내보내면 됩니다. 이 단계를 예를 들어 간단하게 나타내자면,,,

AIMP3 에서 음악 재생 -> AIMP3 프로그램은 가상 출력 장비로 소리를 전송 -> 가상 출력 장비는 가상 입력 장비로 소리를 전송 -> 가상 입력 장비는 실제 출력 장비인 스피커로 소리를 전송 -> 음악 감상

입니다. 생각해 봤으니 이제 실제로 해 봐야지요. 그래서 아래와 설정하고 테스트 합니다.



대충 구현 잘 되는듯 하군요. 기존의 스테레오 믹스를 쓸 때랑 전혀 차이가 없는 가상 스테레오 믹스 성능을 보여주고 있습니다. 다만, 스피커에 나오는 소리가 이 가상 스테레오 믹스의 구성을 다 거친 후에 나오는 소리이기 때문에 음성 캡쳐 프로그램이 이렇게 구성한 가상 스테레오 믹스의 사용 권한을 다 가져가면 스피커로 소리가 나오지 않는 문제가 있습니다. 위의 테스트 영상에서 주로 사용하는 골드웨이브를 사용하지 않고 윈도우 기본 녹음기로 사용한 것도 이 때문입니다. 예기치 않은 현상이라 포스팅 하면서 알게 된 것이지만요. 물론 아주 간단한 방법으로 해결 가능합니다.(장치 권한중에 독점으로 가져가는 옵션을 해제하시면 됩니다.)



소프트웨어적으로 드라이버와 칩셋이 지원하지 않는 기능을 사실상 완벽하게 구현해 낼 수 있다라는것이 상당히 놀라운데요. 아무리 좋다 해도, 소프트웨어적으로 구성시에 생기는 문제는 피해 갈 수 없었습니다.

그 첫번째는 시스템 자원 사용율입니다. 장치가 구성된 동안에는 소프트웨어적으로 처리가 계속 되어야 하는데, 아무래도 사운드와 관련된 장치이다 보니 시스템 자원소모율이 상당히 높습니다. i5 2430M 에서 아이들시 대략 2~4%는 계속 사용하고 있습니다. 신경쓰일 정도라고는 하기 뭣하지만 애초에 드라이버에서 지원해 주면 모든게 해결되는 문제 때문에 시스템 자원 소모해 가면서 써야하는지에 관해서는 의문이네요.

그리고 두번째는, 프로그램 자체의 사운드 출력보다는 상당히 나은 수준이지만 그래도 여전히 사운드가 밀려서 깨지고 노이즈가 끼는 등의 문제가 있습니다. 순간순간 CPU 처리량이 높아지면 생기는 문제 같은데, 프로그램 설정 부분에 버퍼 쪽을 조금씩 수정하면 문제가 해결 된다지만, 역시 찝찝한건 사실입니다. 더군다나 버퍼 용량을 늘리면 늘릴수록 사운드가 나올때까지 시간이 증가해 영상과 음성이 따로 놀 수 있는 문제도 있으니 이부분에 민감하시면 이런 구성은 힘들 듯 싶습니다.

세번째, 어찌보면 가장 중요한 것일지도 모르겠는데, 마스터 불륨이 제대로 먹히지 않습니다. 정확히 말하면 가상 장치에서는 볼륨이 전혀 먹지 않습니다. 즉, 소리 조절은 스피커의 불륨 조절을 해야 한다는 것인데, 노트북 유저들은 스피커의 불륨 조절을 마스터 볼륨 조절로 사용하고 있지요. 키보드에 딸린 노트북 기능키들 중 볼륨 조절은 당연히 기본 장치의 볼륨을 조절하는 데,  이 방법 사용시 기본 장치가 가상 장치로 설정되기 때문에, 볼륨 조절이 전혀 먹히지 않습니다. 이부분에 대해서는 포스팅하면서까지 생각한 문제인데도, 별다른 방법이 없다고 생각되네요.


결국은, 가상 장치입니다. 필요할 떄만 잠깐 잠깐 이용하시는것이 좋을 용도입니다. 이 구성을 가지고 실사용 하기에는 자잘한 문제들, 그리고 볼륨 조절이 안된다는 건 크리티컬이었어요.