Linuxで組もう!DIY PC Audio 詳細解説 Vol.9

(7) MPD詳細設定


さて、いよいよMPDの詳細設定です。

が、その前に、


:~$ sudo apt update

:~$ sudo apt upgrade


apt updateは、現状でインストール可能なパッケージ一覧を更新します。

なので、このコマンドだけでは何も更新されません。されるのは「リスト」の更新だけです。

新たなソフトウェアのインストール前には、この操作を行う事が推奨されています。

当ブログでも、Real Time Kernelインストール前に、この操作を行いましたね。


それに対して、apt upgradeは、インストール済みのパッケージの更新を行い、新しいバージョンにアップデートします。

なので、apt update / upgradeは常に対の操作で行ってください。


また、新しいバージョン、と言っても、例えばMPDが0.21.5から最新のものにアップデートされる訳ではありません。

あくまでも、インストールしたバージョン内の修正にとどまるようです。


以上を終えたら、DebianマシンにUSB接続されたALSAデバイスである、DACなどのオーディオ機器の情報を取得します。


:~$ sudo cat /proc/asound/cards

 0 [PCH ]: HDA-Intel - HDA Intel PCH

                      HDA Intel PCH at 0xdc240000 irq 128

 1 [W2             ]: USB-Audio - Creative Bluetooth Audio W2

                      Creative Bluetooth Audio W2 at usb-0000:00:14.0-2, full speed

 2 [PMA2500NE ]: USB-Audio - PMA-2500NE

                      D&M Holdings Inc. PMA-2500NE at usb-0000:00:14.0-3, high speed


筆者環境では、メインオーディオのDENON PMA-2500NEに加えて、Bluetoothオーディオ再生のための通信用USBドングル(優れもの!)が装着されており、「W2」の名称でALSA機器として認識されています。
上記1と2の[  ]内、システム上で認識されたUSBオーディオの機器名称(ここで言えば、W2とPMA2500NE)を、以下のmpd.confのALSA機器設定に使用します。控えておきましょう。


:~$ sudo apt install lame


LAMEとは、24ビットのハイレゾPCMやDSDデータなどを含め、様々なフォーマットの音楽データを、全てmp3にエンコードし、ダウングレードするためのMP3エンコーダです。


MPDには、ここでメインにしているALSA以外にも、Pulse AudioやJack Audioなど、様々な出力のPluginオプションをデフォルトで実装しています。

その中の一つに、HTTPDという名前の、ビルトインされたhttpストリーミングサーバ機能があります。

これを設定すると、スマホ上のMPDクライアントが対応していれば、VPN(Vertual Private Network)を確立させて家のLANに「穴を開け」、その「穴」から、Debianマシンの8000番ポートを介して、LANの外にあるスマホにhttpストリーミングの形で音楽を配信させる事ができます。

つまり、家の外でも、家のNASにある音楽データを楽しむ事ができる訳です。

無論、それは国内に留まりません。海外だろうとなんだろうと、WIFIやMP4でインターネットに繋がる環境であれば、世界中どこでも配信可能です。


実はまあ、QNAPのNASをお使いの方ならご存知かと思いますが、これ、別にわざわざMPDを介さなくても、QNAP謹製のQmusicというアプリを使えば、わざわざその都度VPNの穴開けせずとも、NASから直接LAN外のスマホにストリーミング配信可能なのですが …。だったら、別に必要ないじゃん?


いやいや、Qmusicの場合、元データそのままのフォーマットで配信されてしまうんです。

つまり、24bit / 192kHzなどというハイレゾデータを再生させると、物凄いパケット通信量になる訳ですね。

まあ、パケット使い放題の青天井で、パケホ上限を気にしない契約も多々あるので、そんな方は別に問題ないですが、それでも、海外なんかで繋ごうと思うと、これは大変です。

また、Qmusicは、DSDフォーマットの再生には対応していません。


MPDのHTTPDサーバ機能を介せば、WAVだろうが、DSDだろうが、上記のLAMEを介して全てmp3にエンコードさせて容量を落とし、パケホの天井を気にせず楽しむ事が可能になります。

なので、ま、設定しておいた方が何かと便利かと。

必要でない方は、LAMEのインストール含め、この設定は飛ばして大丈夫です。


では、mid.confの設定に移りましょう。以下は、修正必要部分の抜粋です。


:~$ sudo nano /etc/mpd.conf

… (途中、略)

# General music daemon options ################################################

#

# This setting specifies the user that MPD will run as. MPD should never run as

# root and you may use this setting to make MPD change its user ID after

# initialization. This setting is disabled by default and MPD is run as the

# current user.

#

user "mpd"

#

# This setting specifies the group that MPD will run as. If not specified

# primary group of user specified with "user" setting will be used (if set).

# This is useful if MPD needs to be a member of group such as "audio" to

# have permission to use sound card.

#

group                          "audio"

#

# This setting sets the address for the daemon to listen on. Careful attention

# should be paid if this is assigned to anything other then the default, any.

# This setting can deny access to control of the daemon. Choose any if you want

# to have mpd listen on every address. Not effective if systemd socket

# activation is in use.

#

# For network

#bind_to_address "localhost"

#

# And for Unix Socket

#bind_to_address "/run/mpd/socket"

#

# This setting enables automatic update of MPD's database when files in

# music_directory are changed.

#

auto_update    "yes"

#

#

###############################################################################


# Zeroconf / Avahi Service Discovery ##########################################

#

# If this setting is set to "yes", service information will be published with

# Zeroconf / Avahi.

#

zeroconf_enabled "yes"

#

# The argument to this setting will be the Zeroconf / Avahi unique name for

# this MPD server on the network. %h will be replaced with the hostname.

#

zeroconf_name "debianmusic"

#

###############################################################################


# Audio Output ################################################################

#

# MPD supports various audio output types, as well as playing through multiple

# audio outputs at the same time, through multiple audio_output settings

# blocks. Setting this block is optional, though the server will only attempt

# autodetection for one sound card.

#

# An example of an ALSA output:

#

audio_output {

type "alsa"

name "DENON PMA2500NE"

device "hw:PMA2500NE,0"     # optional

# mixer_type      "hardware"          # optional

# mixer_device "default"     # optional

# mixer_control "PCM"     # optional

# mixer_index "0"     # optional

        dsd_usb         "yes"

}

#

audio_output {

        type          "alsa"

        name        "Bluetooth"

        device       "hw:W2,0"                        # optional

#      mixer_type      "hardware"                        # optional

#      mixer_device "default"       # optional

#      mixer_control "PCM"           # optional

#      mixer_index     "0"             # optional

}

#

# An example of a httpd output (built-in HTTP streaming server):

#

audio_output {

type "httpd"

name "My HTTP Stream"

encoder "lame" # optional, vorbis or lame

port "8000"

# bind_to_address "0.0.0.0"              # optional, IPv4 or IPv6

# quality "5.0" # do not define if bitrate is defined

bitrate "256" # do not define if quality is defined

format "44100:16:2"

# max_clients       "0"                     # optional 0=no limit

}

#


「 } 」のコメントアウトを外すのを忘れがちです。気を付けましょう。


上記ALSAアウトプットのdevice指定ですが、デフォルトにあるような数字指定ではなく、先にcat /proc/asound/cardsで調べておいた、Linuxが認識した機器名で指定する方が確実ですし、簡単です。


また、設定最終行のdsd usb “yes”の設定で、DoP (=DSD over PCM: PCMの伝送フォーマットに、無理矢理DSDフォーマットのデータを乗っけてしまう伝送方式) によるDSDネイティブ再生を可能にします。

ALSA設定二つ目の、W2というBluetooth用ドングルの記載には、dsdの記載がありませんが、逆にこれを省く事で、DSDデータもPCM変換され、Bluetooth経由での聴取を可能にします。


httpストリーミング指定は、256bpsで、16bit 44.1kHz のステレオ配信(= 44100:16:2の「2」が2chステレオ配信の指定部分です)で設定しています。

LAMEは、320bpsまで指定可能ですが、まあ、外で聴く分にはこんなもんで十分です。

どうせ、カーステにしろ、ヘッドフォンにしろ、結局ラストワンマイルはBluetooth配信になる事が多いでしょうから。でも、それでも十分いい音ですよ。


設定が終わって、保存したら、MPDだけリスタートさせて、設定を有効にします。


:~$ sudo systemctl restart mpd


Linuxで組もう!DIY PC Audio  目次

全過程  Vol.1: Debian buster インストール準備編

全過程  Vol.2: Debian buster インストール

全過程  Vol.3: Debian設定 全コマンドライン

全過程  Vol.4: MPDクライアント設定


詳細解説 Vol.1: PCオーディオのススメ

詳細解説 Vol.2: Linux / MPD / Real Time Kernelについて

詳細解説 Vol.3: コマンドライン(1) Linux テキストエディタのインストール

詳細解説 Vol.4: コマンドライン(2) 固定IPアドレス設定

詳細解説 Vol.5: コマンドライン(3) リモート作業環境の確立

詳細解説 Vol.6: コマンドライン(4) リアルタイムカーネルの実装と設定

詳細解説 Vol.7: コマンドライン(5) MPD / mpc / ALSA / Avahi Daemon + Safety Shutdown設定

詳細解説 Vol.8: コマンドライン(6) ジャケ写表示設定

詳細解説 Vol.9: コマンドライン(7) MPD詳細設定

詳細解説 Vol.10: コマンドライン(8) NAS上の楽曲データのマウント

詳細解説 Vol.11: コマンドライン(9) おまけ - WoL設定


(21/08/29更新)Debian bullseye & MPD 0.22.6 アップグレード!+ DSD再生情報

コメント

このブログの人気の投稿

Linuxで組もう!DIY PC Audio 全過程 Vol.1

Linuxで組もう!DIY PC Audio / INDEX

Linuxで組もう!DIY PC Audio 全過程 Vol.3