태그 보관물: mpd.conf

Ubuntu 12.10에서 MPD (music player daemon) 설치

MPD는 알고 있겠지만 음악을 재생해 주는 데몬이다. 리듬박스나 밴쉬가 있는데 왜 구태어 데몬으로 음악을 재생할까? 답은 환경이 GUI가 아닌 경우를 생각해 보면 된다. 그리고, 아주 많은 클라이언트가 있다. 예를들어 안드로이드 기기에 MPDroid를 설치하면 원격으로 MPD 조종할 수 있다. 우분투 12.10에서 패키지 매니저로 MPD를 설치하면 되지만, 아주 조금 더 좋아 보이는 방법을 설명한다.

MPD 최신 버전 설치

우분투 12.10 기본 저장소에서 MPD를 설치하면 0.16버전이 설치된다. 다음과 같이 PPA (ppa:gmpc-trunk/mpd-trunk)를 사용하면 최신 MPD를 설치할 수 있다.

user@computer:$ sudo add-apt-repository ppa:gmpc-trunk/mpd-trunk
user@computer:$ sudo apt-get update
user@computer:$ sudo apt-get install mpd

MPD 설정

/etc/mpd.conf 파일을 열고 다음과 같이 수정한다.

music_directory     "/music"
playlist_directory  "/var/lib/mpd/playlists"
db_file             "/var/lib/mpd/tag_cache"
log_file            "/var/log/mpd/mpd.log"
pid_file            "/var/run/mpd/pid"
state_file         "/var/lib/mpd/state"
user                  "mpd"
group               "audio"
bind_to_address     "0.0.0.0"

follow_outside_symlinks "yes"
follow_inside_symlinks    "yes"
default_permissions         "read,add,control,admin"

input {
        plugin "curl"
}

audio_output {
    type         "pulse"
    name      "My Pulse Output"
    server      "localhost"
    sink          "alsa_output.pci-0000_00_1b.0.analog-stereo"
    mixer_type      "software"          # optional
}

filesystem_charset      "UTF-8"
id3v1_encoding          "UTF-8"

1행에서 음악 파일이 있는 곳의 디렉토리의 위치를 설정하는데 여기서는 /music으로 되어 있다. 자신의 음악 디렉토리로 바꾸어 쓰면 된다. 이 디렉토리와 음악 파일은 적절하게 권한이 지정되어야 한다. 위 설정파일의 7행을 보면 MPD가 mpd 계정으로 수행 되기 때문에 디렉토리의 소유자(owner)가 mpd이 되게 설정하면 무난하게 작동한다.
9행의 주소가 0.0.0.0인 이유는 모든 주소를 바인딩 한다는 것이다. 다시말하면 127.0.0.1 이외에 DHCP 등으로 설정된 IP 주소로도 MPD에 접속한다는 의미다.
11~12행은 1행의 음악 파일 디렉토리 내부에 심볼릭 링크를 허용하는지 아닌지를 설정한다.
19~25행은 오디오 출력을 정의하는데 우분투는 PulseAudio를 사용하기 때문에 이 부분의 주석을 해제하고, ALSA에 주석을 추가했다. 여기서 23행의 sink 부분은 자신에 맞게 설정해 주어야 소리가 나온다. 오디오 출력 장치가 하나인 경우에는 지워도 된다. HDMI 출력이 되는 그래픽 카드, 또는 DAC 등을 사용하고 있다면 오디오 출력장치가 여러개인데 출력으로 사용될 장치의 이름을 지정한다. 출력 장치의 이름은 아래와 같이 pacmd 명령을 사용하면 알 수 있다.

user@computer:$ pacmd list-sinks
Welcome to PulseAudio! Use "help" for usage information.
>>> 2 sink(s) available.
index: 0
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo>
driver: <module-alsa-card.c
flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
....
active port:
* index: 1
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
....
active port: <analog-output>
>>>

2개의 장치를 볼 수 있는데 첫번째 장치는 HDMI 출력이고 두번째가 사운드 카드의 출력을 나타낸다. 이 name 값을 지정해 주면 된다.
여기까지만 해도 기본적으로 MPD를 사용할 수 있다. 약간의 문제가 있는데, MPD로 음악을 들으면서 유튜브 영상 따위를 보면 소리가 안 나온다. 잠시 MPD 재생 중인 것을 꺼 주고 재생하면 된다! 하지만 메신저에서 오는 알람 소리도 안 나온다. 사실 위 PulseAudio 관련된 설정(22행)에서 이미 이 문제를 해결을 시작했다. 문제는 PulseAudio다!

PulseAudio 설정

사용자의 PulseAudio로 출력을 돌리기 위해서 PulseAudio Preferences 설치한다.

user@computer:$ sudo apt-get install paprefs

PulseAudio Preferences를 설치했으면 실행 하자. 터미널에서 paprefs를 실행한다. 그림 같이 Network Server 탭의 세개의 항목을 체크 해 준다.

MPD 재시작 및 DB Update

이제 지겨운 설정은 끝났다. MPD를 재시작 하고 음악 디렉토리의 음악 파일들을 스캔하고 MPD 데이터베이스에 등록하자.

user@computer:$ sudo service mpd restart
[sudo] password for sangkle:
* Stopping Music Player Daemon mpd [ OK ]
* Starting Music Player Daemon mpd [ OK ]
user@computer:$ mpc update

파일 스캔 작업은 당연히 파일 수에 비례하겠고, 예상보다 빨르다. 스캔하는 동안에도 등록된 음악 파일을 재생할 수도 있다.

MPD 클라이언트 설치

MPD는 아주 매우 많은 수의 클라이언트가 있다. 터미널에서 사용할 수 있는 mpc를 비롯하여 그놈(Gnome) mpc인 GMPC, 안드로이드에서 사용할 수 있는 MPDroid 등이 있다. 클라이언트 목록은 Music Player Daemon Community Wiki에서 찾아 볼 수 있다.

user@computer:$ sudo apt-get install mpc gmpc