MPD の設定

MPD は、送出機として MPD を使用する場合のみ必要です。 一台の MaitouAPC 上で最大で三つの MPD を動作させることができ、MaitouAPC の送出機全てを MPD とすることが可能です。MPD を二つ以上動作させれば「一つの mpd で音楽を送出し、確定時刻で BG ダウン制御をかけ、もう一つの mpd で提供アナコメを送出し、提供アナコメが終わったら一つ目の BG ダウンを解除する」といった制御も可能です。

  1. パッケージでMPD (Music Player Daemon) をインストールします。
    # apt-get install mpd
    

一つ目の mpd の設定

/etc/mpd.conf の各項目を設定
  1. music_directory
    素材ファイル置場とする任意のパスを設定して下さい。MPD の実行ユーザは mpd で実行されます(設定による)ので、この実行ユーザが素材ファイルを読めるパスを設定して下さい。また、素材ファイルを他マシンから Samba 経由でここにインジェストしたい場合、Samba 経由でも書き込めるパスを選んで下さい。
  2. playlist_directory, db_file, log_file, pid_file, state_file
    デフォルトで構いません。

    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"
    
  3. user
    デフォルトの mpd のままで構いません。このユーザには、オーディオデバイスや上記各種ファイルやディレクトリに読み書きできる権限と、music_directory のファイルを読める権限が必要です。実行ユーザを変更する際はセキュリティに気を付けて下さい。

    user                            "mpd"
    
  4. bind_to_address
    外部の任意の MPD クライアントから MPD サーバを制御したい場合、その NIC の IP アドレスを設定して下さい。ローカル(MaitouAPC 本体)からしか制御しないのであれば “localhost” で構いません。

    bind_to_address                 "IPアドレス"
    
  5. port
    特に差し支えなければ、一つ目の mpd はデフォルト (6600) のままで構いません。 /etc/maitouapc.conf の SUB_DEVICEn 項目に、これらの IP アドレスとポート番号を指定するのでメモしておいて下さい。

    port                           "6600"
    
  6. audio_output
    一台で複数の MPD を動作させられるよう下記のように設定します(下記はオーディオドライバが ALSA の例)。

    audio_output {
    	type		"alsa"
    	name		"My ALSA Device"
    	options		"dev=dmixer"	# optional
    	device		"plug:dmix"	# optional
    	format		"44100:16:2"	# optional
    }
    
  7. mixer_type
    一台で複数の MPD を動作させられるよう下記のように設定します。

    mixer_type		"software"
    
  8. filesystem_charset
    素材ファイル名の文字コードをシステムに合わせて設定します(下記は UTF-8 の例)

    filesystem_charset	"UTF-8"
    
  9. id3v1_encoding
    音楽素材の id3v1 タグの文字コードを設定(下記は UTF-8 の例)

    filesystem_charset	"UTF-8"
    
mpd を自動起動対象にする
  1. mpd を自動起動対象とします(必要なランレベルに行って下さい)
    # mv /sbin/rc3.d/K30mpd /sbin/rc3.d/S30mpd
    
  2. 自動起動は次回起動時からなので、今回は手動で起動しておきます。
    # /etc/init.d/mpd start
    
/etc/maitouapc.conf を編集し MaitouAPC の送出機1に設定
  1. SUB_DEVICE_TYPE0
    一つ目の送出機のプロトコルモジュールを mpd に設定します。一つ目に MPD 以外の送出機を設定している場合は、二つ目として SUB_DEVICE_TYPE1 または三つ目として SUB_DEVICE_TYPE2 に設定します。

    SUB_DEVICE_TYPE0=mpd
    
  2. SUB_DEVICE0
    一つ目の送出機の制御デバイスを設定をします。MPD は TCP 制御のため、”IPアドレス:ポート番号” の形式で指定します。下記は MaitouAPC 本体(ローカルマシン)上で 6600 ポートで起動させている mpd を制御する場合の例です。SUB_DEVICE_TYPE0 と同様に、一つ目に MPD 以外の送出機を設定している場合は、SUB_DEVICE1 または SUB_DEVICE2 に設定します。

    SUB_DEVICE0=127.0.0.1:6600
    

二つ目以降の mpd の設定(必要な場合)

MPD を複数の送出機として使う場合 のみ、台数に応じて下記の設定を行います。

/etc/mpd.conf をコピー
  1. /etc/mpd.conf をコピーします。二つ目なら /etc/mpd2.conf 、三つ目なら /etc/mpd3.conf 等とします。以降、二つ目の設定例を示します。三つ目の設定は、/etc/mpd2.conf を /etc/mpd3.conf に読み替えて下さい。
    # cp /etc/mpd.conf /etc/mpd2.conf
    
/etc/mpd2.conf の各項目を設定
  1. music_directory
    一つ目と同じで構いません。一つ目と素材ディレクトリを別にしたい場合は変えても構いません。

    # cp /etc/mpd.conf /etc/mpd2.conf
    
  2. playlist_directory, db_file, log_file, pid_file, state_file 末尾に “2” (三つ目では “3”) などを付けて、台数ごとに異なる設定にします。
    playlist_directory		"/var/lib/mpd/playlists2"
    db_file				"/var/lib/mpd/tag_cache2"
    log_file			"/var/log/mpd/mpd2.log"
    pid_file			"/var/run/mpd/pid2"
    state_file			"/var/lib/mpd/state2"
    
  3. user
    一つ目と同じで構いません。

    user				"mpd"
    
  4. bind_to_address
    一つ目と同じマシン(NIC)で動作させる場合は同じ値になります。

    bind_to_address			"IPアドレス"
    
  5. port
    一つ目とは異なる値にします。特に差し支えなければ一つ目からの連番で、二つ目は 6601、三つ目は 6602 として下さい。

    port				"6601"
    
  6. audio_output
    一つ目と同じで構いません。

    audio_output {
    	type		"alsa"
    	name		"My ALSA Device"
    	options		"dev=dmixer"	# optional
    	device		"plug:dmix"	# optional
    	format		"44100:16:2"	# optional
    }
    
  7. mixer_type
    一つ目と同じで構いません。

    mixer_type			"software"
    
  8. filesystem_charset
    一つ目と同じで構いません。

    filesystem_charset		"UTF-8"
    
  9. id3v1_encoding
    一つ目と同じで構いません。

    filesystem_charset		"UTF-8"
    
素材フォルダを作成
  1. 素材フォルダを作成。下記は素材フォルダを /var/lib/mpd/playlist2、二つ目の mpd の実行ユーザを mpd (mpd の所属グループが audio)とした場合の例。
    # mkdir /var/lib/mpd/playlist2
    # chown mpd:audio /var/lib/mpd/playlist2
    
mpd 起動スクリプトを作成
  1. 起動スクリプト /etc/init.d/mpd をコピーします。コピー先は二つ目目なら /etc/init.d/mpd2 、三つ目なら /etc/init.d/mpd3 等とします。以降、二つ目の設定例を示します。三つ目の設定は、/etc/init.d/mpd2 を /etc/init.d/mpd3 に読み替えて下さい。
    # cp /etc/init.d/mpd /etc/init.d/mpd2
    
  2. /etc/init.d/mpd2 を編集し、MPDCONF の設定を書換えます。三つ目では /etc/mpd2.conf を /etc/mpd3.conf として下さい。
    MPDCONF=/etc/mpd2.conf
    
  3. 必要なランレベルで起動するよう、シンボリックリンクを張ります。
    % cd /etc/rc3.d
    # ln -s ../init.d/mpd2 S30mpd2
    
  4. 自動起動は次回起動時からなので、今回は手動で起動しておきます。
    # /etc/init.d/mpd2 start
    
/etc/maitouapc.conf を編集し MaitouAPC の送出機2に設定
  1. SUB_DEVICE_TYPE1
    二つ目の送出機のプロトコルモジュールを mpd に設定します。二つ目に MPD 以外の送出機を設定している場合は、三つ目として SUB_DEVICE_TYPE2 に設定します。

    SUB_DEVICE_TYPE1=mpd
    
  2. SUB_DEVICE1
    二つ目の送出機の制御デバイスを設定をします。MPD は TCP 制御のため、”IPアドレス:ポート番号” の形式で指定します。下記は MaitouAPC 本体(ローカルマシン)上で 6601 ポートで起動させている mpd を制御する場合の例です。SUB_DEVICE_TYPE1 と同様に、二つ目に MPD 以外の送出機を設定している場合は、SUB_DEVICE2 に設定します。

    SUB_DEVICE1=127.0.0.1:6601
    

Samba の設定

MPD の素材ディレクトリに他マシンから素材ファイルを Samba 経由でインジェストしたい場合に設定して下さい。下記はMPD の素材ディレクトリが /var/lib/mpd/music の場合の例です。

素材ディレクトリのパーミション
  1. 素材ディレクトリを Samba で使用するユーザが書き込めるパーミションにして下さい。パーミッション設定は各自のセキュリティポリシーに応じて設定下さい。環境によっては、下記の 777 は不適切ですのでご注意下さい。
    # chmod 777 /var/lib/mpd/music
    
  2. /etc/samba/smb.conf を編集し、MPD の素材フォルダを共有設定します。
    [MaitouAPC]
    	comment = MaitouAPC
    	path = /var/lib/mpd/music
    	read only = No
    
  3. 共有ユーザを Samba に登録します。下記は、”apc” ユーザを登録する例です。
    # smbpasswd -a apc
    
  4. Samba を再起動します。
    # /etc/init.d/smbd restart