시작페이지로 시작페이지로
즐겨찾기추가 즐겨찾기추가
로그인 회원가입 | 아이디찾기 | 비밀번호찾기 | 장바구니 모바일모드
홈으로 와싸다닷컴 PCFI 게시판 상세보기

트위터로 보내기 미투데이로 보내기 요즘으로 보내기 싸이월드 공감
스퀴즈박스에 새 생명을 - 우분투/데비안에 Inguz 설치하기
PCFI 게시판 > 상세보기 | 2011-10-01 14:43:41
추천수 7
조회수   1,222

제목

스퀴즈박스에 새 생명을 - 우분투/데비안에 Inguz 설치하기

글쓴이

이상헌 [가입일자 : 2001-02-18]
내용
편하게 보시려면 요기서 보세요.

http://php.chol.com/~active/bbs/?mid=linux&document_srl=262








스퀴즈박스의 궁극 유틸리티인 Inguz 를 소개할까 합니다.

Inguz 까지 설치할 정도면 스퀴즈박스의 활용도를 극한까지 확장시킬 수 있습니다.



스퀴즈박스나 다른 네트워크 플레이어를 유심히 관찰해보면 한 가지 공통점이 있습니다.

실제 클라이언트의 하드웨어 사양에 비해 EQ를 지원하지 않는다는 점입니다.

가령 린의 경우 FPGA에 PowerPC 코어가 들어가 있지만 EQ 기능은 없고,

스퀴즈박스도 ARM 코어가 들어 있지만 EQ 기능은 없습니다.



네트워크 스트리밍에서 EQ가 아예 불가능한 것은 아닙니다.

서버에서 스트리밍할 때 미리 EQ를 적용해서 전송하면 되기 때문입니다.

문제는 아직까지 서버쪽에서 DSP를 제대로 활용하는 것들이 없습니다.



지금 소개해드릴 Inguz는 서버쪽에서 전송하기 전에 PCM을 가로채서 DSP를 적용해주는 유틸입니다.

이런 것을 흔히 Convolver 혹은 Wrapper 라고 부릅니다.



원래 Inguz는 EQ를 위해 만들어진 것이 아니라 Digital Room Correction을 위해 만들어졌습니다.

DRC 라는 것은 실제 스피커에서 재생되는 사운드를 계측용 마이크로 녹음을 해서 소리의 특성을 분석하고 이를 DSP 상에서 보정하는 것입니다.

이때 실제 청취위치에 마이크를 설치하기 때문에 실제 청감상의 특성을 보정하게 됩니다.

가령 위상이 제대로인지, 좌우 밸런스가 적절한지, 주파수 대역에 피크나 딥이 없는지 등을 분석해서 보정하게 됩니다.



참고로 DRC에서 스윕(주파수 특성을 녹음하는 것)한 결과를 분석하고 보정해주는 것은 별도의 프로그램을 사용해야 합니다.



오픈소스로 공개된 솔루션도 있고 상용 프로그램들도 있습니다.

Inguz는 그런 프로그램들이 만들어낸 필터를 적용해주는 유틸입니다.

더불어 사용자가 아주아주 손쉽게 EQ를 조작하게 만들어줍니다.

Inguz의 궁극적인 활용은 EQ에 있는 것이 아니라 DRC에 있다는 것 정도만 알고 계시면 됩니다.



원래 Inguz는 윈도우즈 플랫폼에서 작동하도록 만들어졌습니다.

때문에 상대적으로 윈도우즈에서 설치해서 쓰는 것은 비교적 용이합니다만,

OSX나 리눅스에 설치하는 것은 상대적으로 매우 복잡 다단한 과정을 거쳐야 합니다.

Inguz가 2009년 말까지 업데이트 되다가 소스를 공개하고 개발이 중단된 탓에,

최신 버전의 스퀴즈박스 서버에 설치하려면 Inguz의 기본설정으로는 불가능합니다.



지금 소개해드릴 것은 우분투/데비안 배포판에서 설치하는 방법입니다.

제 경우 처음부터 우분투에 서버를 설치했기 때문에 다른 플랫폼의 설치는 설명하지 않겠습니다.



Inguz를 동작시키려면 상당한 스펙의 하드웨어가 필요한데,

제작자는 2GHz CPU와 512MB 램, 충분한 하드디스크 여유공간을 말하고 있습니다.

확실히 Inguz를 쓰면 CPU 점유율이 100% 에 육박할 정도로 부하가 큽니다.

다만 권장사항처럼 아주 빠른 CPU가 필요한 것은 아닙니다.

실제로는 1GHz가 넘어가는 모던한 CPU에서 잘 돌아갑니다.

포럼의 사용기로는 1.2GHz ARM 코어에서도 구동된다고 하니 참고하시기 바랍니다.

아무튼 Inguz는 빠른 CPU는 필수입니다.

Inguz 보다 가볍게 돌아가는 대체 프로그램으로 BruteFIR 도 있긴 합니다.

다만 BruteFIR은 Inguz같은 인터페이스가 없고 리눅스 전용입니다.



Inguz 플러그인 설치과정



1)

먼저 Inguz 홈페이지의 설치과정을 천천히 읽어보시기 바랍니다.

다만 읽어만 보시고 그대로 따라하지는 마세요. 앞서 말씀드렸지만 현재상태로는 최신버전의

스퀴즈박스 서버에 그대로 설치가 되지 않기 때문입니다.

http://inguzaudio.com/installation/debian/



2)

Inguz 플러그인을 다운받습니다.

http://www.inguzaudio.com/EQ/download.php



3)

압축을 풉니다.



4)

http://archive.msdn.microsoft.com/silverlightjs

위의 링크에서 silverlight.js 파일을 다운받습니다.



5)

다운받은 Silverlight.js 파일을 /InguzEQ/HTML/EN/plugins/InguzEQ 폴더로 덮어쓰기 합니다.

미리 Silverlight.js 파일이 어느 폴더에 저장되어 있는지 확인하시고 작업하세요.



6)

수정된 Plugin.pm을 InguzEQ 폴더에 덮어쓰기 합니다.

수정내용은 다음과 같습니다.



391행

수정전:

my @rootdirs = Slim::Utils::PluginManager:luginRootDirs();



수정후:

my @rootdirs = Slim::Utils::PluginManager::dirsFor($thisapp,'enabled');



742~747행

수정전:

Slim::Web::HTTP::addPageFunction("plugins/InguzEQ/index.html", \&handleWebIndex);

Slim::Web::HTTP::addPageFunction("plugins/InguzEQ/Silverlight.js", \&handleWebStatic);

Slim::Web::HTTP::addPageFunction("plugins/InguzEQ/Scene.js", \&handleWebStatic);

Slim::Web::HTTP::addPageFunction("plugins/InguzEQ/Model.js", \&handleWebStatic);

Slim::Web::HTTP::addPageFunction("plugins/InguzEQ/Scene.xaml", \&handleWebStatic);

Slim::Web::HTTP::addPageFunction("plugins/InguzEQ/inguz.png", \&handleWebStatic);



수정후:

Slim::Web::Pages->addPageFunction("plugins/InguzEQ/index.html", \&handleWebIndex);

Slim::Web::Pages->addPageFunction("plugins/InguzEQ/Silverlight.js", \&handleWebStatic);

Slim::Web::Pages->addPageFunction("plugins/InguzEQ/Scene.js", \&handleWebStatic);

Slim::Web::Pages->addPageFunction("plugins/InguzEQ/Model.js", \&handleWebStatic);

Slim::Web::Pages->addPageFunction("plugins/InguzEQ/Scene.xaml", \&handleWebStatic);

Slim::Web::Pages->addPageFunction("plugins/InguzEQ/inguz.png", \&handleWebStatic);



편집하기 귀찮기 때문에 미리 수정한 파일을 준비해 두었으니 참고하세요.

http://user.chol.com/~active/down/Plugin.pm



7)

InguzEQ 폴더를 /usr/share/squeezeboxserver/Plugins/ 에 복사합니다.

제대로 복사했다면 /usr/share/squeezeboxserver/Plugins/InguzEQ 폴더가 생기겠죠.



8)

복사한 폴더의 소유주를 바꿉니다.



chown squeezeboxserver /usr/share/squeezeboxserver/Plugins/InguzEQ/



9)

/usr/share/InguzEQ 폴더를 만듭니다.



mkdir /usr/share/InguzEQ



10)

/usr/share/InguzEQ 폴더의 소유주를 바꿉니다.



chown squeezeboxserver /usr/share/InguzEQ/



11)

스퀴즈박스를 재시작하시던지 그냥 리부팅하세요.

(참고로 프로그램은 /etc/init.d/squeezeboxserver 에 있습니다)



12)

스퀴즈박스 웹서버(http://ip주소:9000)를 불러서 Settings 버튼을 눌러 설정화면을 불러옵니다.

Plugins 탭에서 메뉴에 EQ (v0.9.30) 가 체크되어 있는지 확인합니다.



13)

스퀴즈박스 웹서버의 좌측 윈도우 홈메뉴의 가장 아래 Extras를 눌러서 EQ가 뜨는지 확인합니다.

EQ를 선택하면 스퀴즈박스를 재시작하라는 메시지가 뜹니다.

다시 스퀴즈박스를 재시작하시거나 그냥 리부팅하세요.



14)

Inguz 필터 프로세서를 다운받습니다.

http://www.inguzaudio.com/DSP/download.php



15)

압축을 해제합니다.



16)

파일을 /usr/sbin/ 폴더로 복사합니다.

여기서 InguzDSP 폴더를 복사하는게 아니라 그 속에 들어있는 파일들만 복사합니다.

그러니까 내용물은 그대로 /usr/sbin/ 폴더에 위치하게 되겠죠.



17)

셸 스크립트를 다운받아야 하는데 터미널에서 다음 명령어를 그대로 입력하세요.



cd /usr/sbin

wget http://inguzaudio.com/DSP/debian/InguzDSP

chmod +x InguzDSP



18)

Mono의 작업 디렉토리를 만들어야 하는데 터미널에서 그대로 입력하세요.

참고로 Inguz를 사용하려면 Mono가 설치되어 있어야 하는데 우분투 10.04 이상의 경우는 기본으로 깔려있습니다.



mkdir /usr/share/squeezeboxserver/.wapi

chown squeezeboxserver /usr/share/squeezeboxserver/.wapi



19)

설치가 제대로 되었다면

/usr/sbin/InguzDSP 를 실행해 보십시오.

아마 다음과 같은 메시지가 뜰 겁니다.

Usage: InguzDSP -id clientID [...etc...]



20)

로그 저장 준비를 합니다. 터미널에서 그대로 입력하세요.



cat /usr/share/InguzEQ/log.txt

(화면에 log 기록이 뜰겁니다)



chmod 666 /usr/share/InguzEQ/log.txt

chmod 666 /usr/share/InguzEQ/error





자.. 드디어 설치가 끝났습니다...



... 는 뻥입니다.





이대로는 바로 사용이 되지 않습니다.



스퀴즈박스 웹 서버의 Settings를 눌러 셋팅창을 불러 Advanced 탭을 선택하시고 File Types를 불러옵니다.

여기서 트랜스코딩 옵션을 손봐줘야 합니다.



가령 MP3 에 Inguz를 적용하고 싶으시다면

MP3 FLAC 을 lame/InguzDSP 로 바꾸시고

MP3 MP3 을 Disabled 로 바꾸십시오. (원래는 MP3 MP3 가 Native로 지정되어 있습니다)



이렇게 하면 원본 MP3를 재생할 때 InguzDSP가 가로채서 DSP를 적용하고 FLAC으로 인코딩해서 클라이언트로 전송하게 되는 것입니다.

이해가 가셨죠?



다른 파일 포맷들도 찾아서 Native가 적용되어 있는 것들은 모조리 Disabled로 바꾸시고

FLAC으로 변환하는 것들도 모조리 Disabled로 바꾸시고 InguzDSP를 적용시키시면 됩니다.

그러니까 예를 들어,

WAV FLAC 이 flac/sox 로 되어 있으면 이걸 Disabled 시키시고

WAV FLAC 을 InguzDSP/flac 만 남겨두시면 됩니다.

이렇게 해두시면 InguzDSP가 적용된 포맷들은 전부 InguzDSP가 적용되어 출력됩니다.



문제는 Inguz가 예전 버전이다보니 애플 포맷들에는 InguzDSP/flac 이 안뜰겁니다.

이 문제를 해결하려면 사실 Plugin.pm 에 미리 셋팅된 변환설정을 바꾸는게 정답인데

귀찮아서 임시방편으로 쓰던 방법을 적용하겠습니다.



/usr/share/squeezeboxserver/Plugins/InguzEQ 폴더를 보시면 custom-convert.conf 파일이 있습니다.

Inguz 를 제대로 설치했다면 이 custom-convert.conf 파일이 자동으로 생성되게 되는데 이 파일을 수정해서 사용하면 됩니다.



원파일에는 alc flc 부분만 있고 aac flc과 mp4 flc은 빠져 있으니, 중복되지 않게 수정/첨가를 하셔야 합니다.

단 이 custom-convert.conf는 내용에서 클라이언트마다 셋팅을 해주어야 하기 때문에

미리 클라이언트의 MAC address 를 아셔야 합니다.

MAC address는 스퀴즈박스 웹서버의 셋팅창의 Player 탭을 보면 다 나옵니다.

만약 다른 PC에서 SqueezePlay를 쓰시는 경우에도 이 수정사항을 적용해야 EQ가 먹힌다는거 주의하세요.

(즉 custom-convert.conf에서 클라이언트마다 변환셋팅을 따로 생성하게 됩니다)



alc flc * 00:00:00:00:00:00

# FT:START=-j %sU:END=-e %u

[faad] -q -w -f 1 $START$ $END$ $FILE$ | [InguzDSP] -id "00:00:00:00:00:00" -wav -wavo -d 24 | [flac] --compression-level-0 -0 --totally-silent -



aac flc * 00:00:00:00:00:00

# IF

[faad] -q -w -f 1 $START$ $END$ $FILE$ | [InguzDSP] -id "00:00:00:00:00:00" -wav -wavo -d 24 | [flac] -cs --totally-silent --compression-level-0 --ignore-chunk-sizes -



mp4 flc * 00:00:00:00:00:00

# FT:START=-j %sU:END=-e %u

[faad] -q -w -f 1 $START$ $END$ $FILE$ | [InguzDSP] -id "00:00:00:00:00:00" -wav -wavo -d 24 | [flac] -cs --totally-silent --compression-level-0 --ignore-chunk-sizes -



여기서 !주의! 하셔야 할 것은 위의 내용을 그대로 Copy & Paste 하시면 안됩니다.

위의 내용에서 00:00:00:00:00:00 을 전부 자기 클라이언트의 MAC address로 바꾸셔야 합니다.

꼭 잊지마세요.



참고로 Inguz는 SOX를 따로 적용하지 않도록 셋팅되어 있는데,

아마 써보진 않았지만 위의 custom-convert.conf 에서 적당히 수정하면 SOX 도 적용이 될 것 같습니다.



자.. 이제 정말로 셋팅이 다 되었습니다.

실제로 재생을 하면서 EQ 가 제대로 먹히는지 확인하시면 됩니다.

EQ 설정을 바꾸면 그 다음 트랙 재생부터 변동사항이 적용될 겁니다.

그리고 웹서버에서 모든 메뉴/옵션이 다 먹히는 것은 아니니 참고하시기 바랍니다.

가령 DRC 적용을 위해 미리 스윕할 때에는 직접 터치에서 Inguz 메뉴를 불러 테스트 시그널을 재생하면 됩니다. (웹서버에만 뜨는게 아니라 Touch에도 Inguz 화면이 뜹니다)



Inguz 사용법은 인터페이스가 직관적이라 보면 바로 알 수 있습니다.

참고로 이미 만들어져 있는 필터중에 헤드폰 사용자를 위한 크로스피드 필터도 있습니다.

필터를 다운받아 /usr/share/InguzEQ/MatrixImpulses 폴더에 복사해 넣고 Inguz에서 선택하면 됩니다.

추천스크랩소스보기 목록
한승헌 2011-10-01 17:06:17
답글

언제나 유익한 정보 진심으로 감사드립니다.

  • 광고문의 결제관련문의