PDA

View Full Version : 뚱뎅이 윈앰프 다이어트와 분석


z
10-14-2007, 02:10 AM
윈앰프의 플러그인 구조는 매우 비효율적인데 그 이유는 윈앰프를 실행할 때 사용하지 않는 플러그인이라도 모조리 가상 메모리에 올리기 때문이다. 최신 윈앰 실행시 실행 속도가 떨어지는 게 바로 이런 이유다.

그래서 윈앰을 가장 효율적으로 사용하는 방법은 사용하지 않는 플러그인은 폴더를 하나 만들어서 그쪽에 이동시켜 놓는 것이다.

윈앰의 플러그인 파일의 정체를 잠깐 살펴보면

dsp_xxx.dll - 음향효과 플러그인
gen_xxx.dll - 일반적인 목적을 위한 플러그인
in_xxx.dll - 입력 플러그인, KMP로 치면 소스 필터 + 파서 + 디코더가 결합된 형태다.
out_xx.dll - 출력 플러그인, KMP로 치면 오디오 렌더러이다.

윈앰에서 음악을 재생하기 위해서 반드시 필요한 것은 KMP에서 재생시의 필터그래프와 대조해보면 짐작할 수 있지만 입력/출력 플러그인이다. 나머지는 있어도 그만 없어도 그만..

윈앰 최신 버전을 설치하고 Plugins 폴더로 들어가서 Unused 라는 폴더를 만들고 plugins폴더에 있는 모든 파일을 일단 옮겨보자.


그리고 아래 파일들을 Plugins로 복사한다.

gen_ff.dll - 모던 스킨 엔진이다. 이거 없으면 2.xx 대 클래식 스킨으로 실행된다.
in_mp3.dll - mp3 재생
in_mp4.dll - mp4 디코더. m4a (itune) 를 재생해 준다.
in_vorbis.dll - ogg 재생
in_wm.dll - wma 재생

재생할 음악 확장자만 선별해서 해당 플러그인만 Plugins폴더로 이동한다.

out_ds.dll - directsound 출력장치이다.

nscrt.dll - Nullsoft C++ 런타임 엔진.
tataki.dll - drawing 스킨 엔진이다. gen_ff.dll과 함께 있어야 함


나머지 파일 설명 - 읽어보고 사용할 생각이 있으면 Plugins에 복사한다.

gen_jumpex.dll - 재생목록 파일 찾기/재생큐 플러그인. 단축키는 J다. 윈앰프를 윈앰프스럽
게 만드는 강력한 도구중 하나. 다른 재생기에서 흉내는 내지만 이것에 미칠 바는 안된다.
글로벌 핫키로 설정해 놓고 써도 아주 훌륭하다.

in_dshow.dll - 동영상 재생 플러그인이다. 쉽게 말하면 윈앰에서 directshow
필터를 불러다 연결해서 사용할 수 있게 하는 거다. 윈앰과 KMP의 결정적인
차이는 오디오 렌더러에 있다. 윈앰에서 동영상을 재생하면 in_dshow.dll에서 정의된
확장자의 동영상의 필터그래프를 생성할때 directsound 렌더러 대신에 윈앰에서
사용하는 오디오 출력 장치(out_ds.dll)를 사용한다.

필터그래프에 out_ds.dll을 연결할 수 있다는 것은 다시 말해 오디오 디코더에서 출력된
PCM 데이터를 in_dshow.dll 에서 내부적으로 받아서 그걸 윈앰프의 오디오 프로세서
chain에 연결시킬 수 있다는 거다.
도식화하면 이렇다.

a.avi - splitter - directshow audio decoder|in_dshow.dll - dsp_xxx.dll - out_ds.dll
- directshow video decoder - directshow video renderer

즉 동영상 재생시에 윈앰프의 오디오 플러그인을 사용할 수 있게 된다.
이걸 유심히 보면 KMP는 반대의 처리를 해주고 있음을 알 수 있다. KMP는 윈앰프
입력 플러그인으로 디코딩된 PCM 오디오 데이터를 KMP Audio Transform filter에서
받아서 DirectSound 장치에 연결해 주고 있는 것이다.
물론 KMP Audio Transform filter는 내부적으로 윈앰의 DSP 플러그인을 사용할 수 있도록
되어 있다.

어느쪽이 더 유연한가 하면 의심할 것 없이 KMP쪽이다. 왜냐하면 KMP는 플러그인을
다중으로 실행할 수 있을 뿐만 아니라. LPCM 출력에 이어 사이버링크 디코더를 연결하여
말할 필요도 없이 강력한 상용 dsp processor를 이용할 수 있기 때문이다.

in_flac.dll - flac 오디오 디코더이다.
in_nsv.dll / nsvdec_vp5.dll / nsvdec_vp6.dll - 이건 NullSoft Video 스트리밍할 때
필요하다. 뒤쪽은 비디오 디코더이다. 참고로 vp5/vp6는 on2 테크놀로지사의
비디오 디코더임.

vis_milk2.dll - 밀크드랍 비주얼 플러그인.


[이하 .dll은 생략한다.]
dsp_sps - 윈앰프 기본 dsp 처리 프로세서
enc_aacplus / flac / lame / wav / wma - 각 인코더이다 cd-rip같은 거나
transcode할 때 필요하다.
- lame_enc - mp3 인코더 enc_lame과 함께 사용됨

gen_hotkeys - 글로벌 핫키
gen_ml - 미디어 라이브러리. 이걸 쓰려면 최소한 ml_local.dll 도 함께 복사해야 한다.
난 안쓴다. gen_mexp 사용함.

in_cdda - cd 재생시 필요
in_midi - 미디 파일 재생
in_mod / read_file - 칩튠, 모듈 파일 재생 (it, mod 같은)

ml_autotag - ml_ 이 붙는 것은 모두 gen_ml의 플러그인이다. 즉 ml상에서 동작한다.
autotag는 말 그대로 음악 파일 태그를 자동으로 처리해 주는 부분에 대한 플러그인
ml_bookmarks - 북마크 플러그인
ml_dash - 대쉬보드 플러그인 | 인터넷 액세스
ml_disc - cd 립하고 꿉기
ml_history - 윈앰으로 재생한 목록을 ml 상에 저장하고 관리해 주는 플러그인
ml_local - 이건 기본적인 ml 플러그인이다. 사용자 하드의 파일을 분류하는 플러그인
ml_nowplaying - 재생중인 파일 정보 출력 | 인터넷 액세스
ml_online - 샤우트캐스트같은 목록 출력함 | 인터넷 액세스
ml_org - [Only registered and activated users can see links] 에 가보라. 윈앰프 원격제어
ml_playlist - ml상에 재생목록 관리해주는 플러그인
ml_plg - 재생중 파일과 유사한 목록으 자동으로 생성해 주는 플러그인
ml_rg / replaygainanalysis - replay gain scanner
ml_transcode - 파일 변환
ml_wire - SC Wire

ml_pmp - pmp 기기와 연결
- pmp_activesync - pmp_는 ml_pmp의 플러그인이다.
- pmp_ipod / njb /p4s / usb 각각의 pmp 장치 플러인



윈앰 5.5 업데이트시 벤토 스킨은 all-in-one 스킨의 일종이다. 솔직히 폴더뷰 방식의 목록을 지원해 주기만 했어도 사용하고 싶을 만큼 깔끔하고 잘 정리된 스킨인데 윈앰의 미디어 라이브러리는 폴더뷰 방식의 정렬을 지원하지 않는다. 그래서 사용하고 있는 것이 MeXP이다. 윈앰의 미디어 라이브러리는 태그관리를 완벽히 하는 경우에는 무척 유용하지만 그렇지 않은 경우는 매우 불편하다.

음악파일, 오디오 북, 기타 오디오 강좌 파일들로 이만개 정도 되는 파일을 뭉뚱그려 관리하다 보니 태그를 넣기 애매한 파일도 있고 컴필레이션 음반은 가수나 앨범이 각자 따로국밥인 경우도 있어서 폴더뷰 방식의 정렬을 지원하지 않는 윈앰의 미디어 라이브러리는 사용할 수 없었다. MeXP도 개발이 중단된지가 오래되서 문제가 있는 부분이 있지만 아쉬운대로 사용중이다.

윈앰의 dsp 플러그인으로 많이들 사용하는 게 DFX인데 개인적으로는 OSS/3D R7에 더 후한 점수를 주고 싶다. 이 플러그인을 가만 보면 이 개발자가 음향에 대해 전문적인 지식을 쌓고 있음을 여실히 알 수 있다. 음악을 오래 듣다 보면 머리가 띵한데 이 플러그인은 사용자와 삼각 구도를 이루고 있는 정면 스테레오 사운드 출력이 사용자에게 집중되는 것을 분산시켜 줄 수 있도록 되어 있다. 흔히 찻집에 가보면 스피커 위치 설정과 이퀄라이져 설정을 통해 BGM(배경음악)을 재생하는데 OSS/3D R7는 이보다 한수 뛰어난 방식의 처리를 보여준다.

마지막으로 필자는 윈앰을 사용시 쉐이드 모드로 납작하게 접어서 모니터 오른쪽 상단에 붙여서 사용한다. 이 때 평상시에는 투명하게 재생하다가 마우스가 윈앰으로 올라가면 해제되도록 하는 설정을 추천한다 (첫번째 스샷). 이 쉐이드 모드상태에서 한글출력시 폰트가 제대로 나오지 않는 문제가 한가지 있는데 두번째 스샷처럼 설정하고 첨부 파일을 받아서 Winamp\Skins\Winamp Modern\xml\ 에 복사해 주면 된다. 세번째 스크린 샷이 패치후 결과물이다.

z.rar은 필자가 좋아하는 OSS/3D 세팅이다. 혹시 사용해 볼 마음이 있다면
4front-oss3d-7\Presets\ 에 복사한 후 플러그인을 실행하고 선택하면 된다.