2020.11.7 追記
DENON DCD-1500RE で接続検証をページ末尾に追加しました。
以前、手持ちのシングルボードコンピュータでミュージックサーバを立ち上げる際、手軽な DietPi を利用して構築しました。
- DietPi でミュージックサーバを構築した記事
Volumioではなく、”DietPi-HiFi”にしました〜DietPi 導入編〜 – あららぼ
DietPi-HiFiで音楽鑑賞 – あららぼ - 失敗した経緯はこちら
NanoPi NEO で ミュージックサーバ(失敗編) – あららぼ
その後、NanoPi NEO(DietPi-HiFi)は使わなくなりました。
シングルボードコンピュータは(だいたいが本体に電源ボタンがないため)リビングに置くには、ちょっと不便と感じています。
電源 OFF 後に再度電源投入する際は、電源ケーブルなりを抜き差ししないといけないので。。。
結局、スマホの Bluetooth で飛ばすような生活になりました。
そうはいっても、スマホに楽曲を入れておくのは容量的にも厳しくなってきたので、(リビングではなく)自室用に再度シングルボードコンピュータで構築することにしました。
今回はケースの見栄えの問題で、Nano Pi NEO ではなく Orange Pi One にしました。
目次
環境
今回は自室なので CD レシーバで鳴らします。
- SBC 本体
Orange Pi One - USB-DDC
FX-D03J | North Flat Japan(株式会社ノースフラットジャパン公式)
サンプリングレートの上限が 96kHz のモデルになります。
つなぐアンプが下記 R-K711 で、こちらの上限も 96kHz なのでちょうどいいかな〜と選びました。 - アンプ
R-K711 |商品情報|ケンウッド
当時としては珍しい普及価格帯で光デジタル(TOSLINK)端子搭載の意欲的なモデルでした。
環境構築
準備
事前に Orange Pi One に Armbian を導入後、アップデートと最低限の設定(タイムゾーンや IP アドレス)を済ませておきます。
mpd・mpc インストール
以下をインストールします。
- mpd
Music Player Daemon(ミュージック・プレイヤ・デーモン)の略で、ミュージックサーバ本体になります。 - mpc
mpd をコントロール(操作)するための CUI クライアントです。
特にこれと言って用途は思いつかないのですが、テスト用に入れておきます。
※たぶん、クライアントソフトから操作することになりそうなので。
$ sudo apt install mpd mpc -y
USB-DDC の確認
USB-DDC を接続する前は、HDMI のみ認識されています。
$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: sun8ih3hdmi [sun8i-h3-hdmi], デバイス 0: 1c22800.i2s-i2s-hifi i2s-hifi-0 [1c22800.i2s-i2s-hifi i2s-hifi-0]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
USB-DDC を接続すると、追加されます。
$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: sun8ih3hdmi [sun8i-h3-hdmi], デバイス 0: 1c22800.i2s-i2s-hifi i2s-hifi-0 [1c22800.i2s-i2s-hifi i2s-hifi-0]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 1: Audio [NFJ USB Audio], デバイス 0: USB Audio [USB Audio]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 1: Audio [NFJ USB Audio], デバイス 1: USB Audio [USB Audio #1]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
mpd 設定確認
mpd の設定ファイルは以下に作成されました。
- /etc/mpd.conf
以下を編集しています。
- bind_to_address
許可する ip アドレス。 - port
クライアントツールから接続する際に使うポートを指定。 - auto_update
mpd データベースを自動で更新するか。
※私はyes
にしましたが、結局クライアントツールから都度更新しているので、いらない気がしています。 - device
デバイス情報です。
上記 aplay コマンドの結果を元に編集します。
深く考えずにトライ&エラーするのも手です。 - mixer_type
音量をクライアントツールから行う場合はsoftware
を指定します。 - format
音声の出力フォーマットです。
下記例(format "96000:16:2")だと以下のようになります。- サンプリング周波数: 96kHz
- 量子化ビット数: 16bit
- チャンネル数: 2チャンネル
$ diff -u /root/mpd.conf /etc/mpd.conf
--- /root/mpd.conf 2020-09-11 21:54:33.002606752 +0900
+++ /etc/mpd.conf 2020-09-11 22:21:22.554433892 +0900
@@ -82,7 +82,7 @@
# activation is in use.
#
# For network
-bind_to_address "localhost"
+bind_to_address "any"
#
# And for Unix Socket
#bind_to_address "/run/mpd/socket"
@@ -90,7 +90,7 @@
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
-#port "6600"
+port "6600"
#
# This setting controls the type of information which is logged. Available
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
@@ -121,7 +121,7 @@
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
-#auto_update "yes"
+auto_update "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself. There is no limit by default.
@@ -239,8 +239,9 @@
audio_output {
type "alsa"
name "My ALSA Device"
-# device "hw:0,0" # optional
+ device "hw:1,0" # optional
# mixer_type "hardware" # optional
+ mixer_type "software" # optional
+ format "96000:16:2"
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
mpd 起動確認
ステータスを確認すると、起動していません。
どうも log ファイルを作成できずにエラーになっているようです。
$ sudo systemctl status mpd
● mpd.service - Music Player Daemon
Loaded: loaded (/lib/systemd/system/mpd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2020-09-11 22:01:51 JST; 1min 35s ago
Docs: man:mpd(1)
man:mpd.conf(5)
file:///usr/share/doc/mpd/user-manual.html
Process: 1482 ExecStart=/usr/bin/mpd --no-daemon $MPDCONF (code=exited, status=1/FAILURE)
Main PID: 1482 (code=exited, status=1/FAILURE)
9月 11 22:01:50 orangepione systemd[1]: Starting Music Player Daemon...
9月 11 22:01:51 orangepione mpd[1482]: exception: failed to open log file "/var/log/mpd/mpd.log" (
9月 11 22:01:51 orangepione systemd[1]: mpd.service: Main process exited, code=exited, status=1/FA
9月 11 22:01:51 orangepione systemd[1]: mpd.service: Failed with result 'exit-code'.
9月 11 22:01:51 orangepione systemd[1]: Failed to start Music Player Daemon.
...skipping...
● mpd.service - Music Player Daemon
Loaded: loaded (/lib/systemd/system/mpd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2020-09-11 22:01:51 JST; 1min 35s ago
Docs: man:mpd(1)
man:mpd.conf(5)
file:///usr/share/doc/mpd/user-manual.html
Process: 1482 ExecStart=/usr/bin/mpd --no-daemon $MPDCONF (code=exited, status=1/FAILURE)
Main PID: 1482 (code=exited, status=1/FAILURE)
9月 11 22:01:50 orangepione systemd[1]: Starting Music Player Daemon...
9月 11 22:01:51 orangepione mpd[1482]: exception: failed to open log file "/var/log/mpd/mpd.log" (
9月 11 22:01:51 orangepione systemd[1]: mpd.service: Main process exited, code=exited, status=1/FA
9月 11 22:01:51 orangepione systemd[1]: mpd.service: Failed with result 'exit-code'.
9月 11 22:01:51 orangepione systemd[1]: Failed to start Music Player Daemon.
というわけで、所定の位置にフォルダを作って、ファイルも作成しておきます。
今度は起動できました。
$ mkdir /var/log/mpd
$ touch /var/log/mpd/mpd.log
$ sudo systemctl start mpd.service
課題
Orange Pi One は USB ポートが 1つしか無い、且つ Wi-Fi 非搭載モデルなので、しかたなく有線 LAN 接続することにしました。
USB-OTG が 1ポートあるのに、使えなかった...(通電すらしなかった)。
DENON DCD-1500RE
で接続検証
- Orange Pi One
- DCD-1500RE ※DENON CDプレーヤ
普通に動きました。
なお、96kHz で検証。
機会があったら、192kHz でも検証したい...
以下、aplay
コマンドの結果。
きちんと DCD-1500RE
表示されていますね。
# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sun4icodec [sun4i-codec], device 0: CDC PCM Codec-0 [CDC PCM Codec-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: DCD1500RE [DCD-1500RE], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0