https://sites.google.com/site/digififan/home/digifi-labo/lightmpd-upnpgw
Lightmpdをこのように2台のAPUでカスケード接続すると、JPLAYに肉薄するほど高音質に激変する。
Lightmpdの凄いところは、音質以外に、ファイルの編集をするために、telnetやSSHなどでLightmpdにアクセスし Linux と格闘する必要がないという点だ。これはかつてなかった快挙だ。
要するに、WindowsでLightmpdをインストールしたSDカードをそのままWindowsで開き、中の設定ファイルを直接編集できるということだ。
Linuxのコマンドは不要だし、Linuxの階層を意識したり行ったり来たりする必要もないし、Vi を使う必要もない。 しかも、各環境に合わせてすべての設定ファイルが、ほぼデフォルトで使えるように準備されている。これは本当に便利だし凄いことだ。
これならLinux素人でも十分に挑戦できる!
もしかしたら、JPLAYのAudioPCのWindowsServerCoreモードの構築より簡単かもしれない。
下図のとおりにLANケーブルを繋ぐ。
2.UPnPアダプター側の設定
BOOTイメージ
apuboot4g.img.xz
パッケージ
lightmpd-upnpgw-apu1-v1.0.0.zip
① lightmpd.conf
------------------------------------------
[network]
interface=eth0
address=192.168.3.1
gateway=192.168.3.2
netmask=255.255.255.0
nameserver=192.168.3.2
domain=mydomain.jp
[ntp]
server=192.168.0.0
ntpd=no
timezone=Asia/Tokyo
[network:player]
interface=eth1
address=10.0.0.1
netmask=255.255.255.252
[network:nasgate]
interface=eth2
address=10.0.1.1
netmask=255.255.255.252
[upmpdcli]
enable=yes
upnpiface = eth0
mpdhost=10.0.0.2
mpdport=6600
friendlyname=UpLightMpd
ohproductroom=UpLightMpd
logfilename=/tmp/upmpdcli.log
openhome = 1
ohmetapersist = 1
loglevel = 3
[polipo]
enable=yes
#
proxyAddress = 0.0.0.0
allowedClients = 10.0.1.2
#
chunkHighMark = 1024
chunkLowMark = 256
chunkCriticalMark = 768
objectHighMark = 2048
#
dnsQueryIPv6 = no
cacheIsShared = false
dnsUseGethostbyname = yes
disableConfiguration = true
disableIndexing = true
disableLocalInterface = true
[telnetd]
# yes | no
enable=yes
port=23
[cpuaffinity]
type=0
[irqpriority]
setdefault=no
[nat]
masquerade=network:player,network:nasgate
dnsforwarding=yes
ntpforwarding=yes
8023=10.0.0.2:23
-----------------------------------------------
3.player側の設定
BOOTイメージ
apuboot4g.img.xz
パッケージ
lightmpd-upnpgw-apu1-v1.0.0.zip
① lightmpd.conf
---------------------------------
[network]
interface=eth0
address=10.0.0.2
gateway=10.0.0.1
netmask=255.255.255.252
nameserver=10.0.0.1
domain=mydomain.jp
[ntp]
server=10.0.0.1
ntpd=no
timezone=Asia/Tokyo
[network:nasgate]
interface=eth1
address=10.0.1.2
netmask=255.255.255.252
#[route]
#nas-ip/32 = gateway
#192.168.0.0/32=10.0.1.1
[route]
nas-ip/32 = gateway
192.168.3.10/32=10.0.1.1
[mpd]
load_module=mpd-0.19.18rt-native-dsd-upnp
[polipo]
enable = yes
proxyAddress = 127.0.0.1
allowedClients = 127.0.0.1
#parentProxy = 10.0.1.1:8123
dnsQueryIPv6 = no
chunkHighMark = 1024
chunkLowMark = 256
chunkCriticalMark = 512
objectHighMark = 2048
cacheIsShared = false
dnsUseGethostbyname = yes
#
# disableVia = false
disableConfiguration = true
disableIndexing = true
disableLocalInterface = true
#
replyUnpipelineTime = 40
smallRequestTime = 20
maxSideBuffering = 15000
[rpcbind]
enable=no
[telnetd]
# yes | no
enable=yes
port=23
[webconsole]
# yes | no
# start page: http://thishost:${port}/index.html
enable=no
port=9000
[cpuaffinity]
# 0 normal
# 1 cpu1: usb irq handler
# 2 cpu1: usb irq handler
type=2
[irqpriority]
setdefault=no
xhci_hcd#0=FIFO:99
[debug]
interfaces=yes
resolvconf=yes
ntpd=yes
ntpconf=yes
ifconfig=yes
cards=yes
mounts=yes
ps=yes
mpdversion=yes
date=yes
ntpq=yes
music=yes
messages=yes
save=no
-----------------------------------------
② mpd.conf
-------------------------------------
realtime_option {
memlock "yes"
stack_reserve "2048"
heap_reserve "10240"
main_priority "OTHER:0"
player_priority "FIFO:53"
decoder_priority "OTHER:0"
update_priority "OTHER:0"
}
audio_output {
type "alsa"
name "uda"
device "hw:0,0"
priority "FIFO:54"
mixer_type "disabled"
# dsd_usb "yes"
dsd_native "yes"
dsd_native_type "2"
buffer_time "150000"
period_time "37500"
}
#decoder {
# plugin "sndfile"
# enabled "no"
#}
#decoder {
# plugin "audiofile"
# enabled "no"
#}
input {
plugin "curl"
proxy "127.0.0.1:8123"
}
###### decoder selector
#decoder {
# plugin "dsdiff"
# enabled "yes"
#}
#decoder_selector {
# suffix "mp3"
# plugin "mad"
#}
#
#decoder_selector {
# suffix "m4a"
# plugin "ffmpeg"
#}
#
#decoder_selector {
# suffix "wav"
# plugin "audiofile"
# scan_plugin "ffmpeg"
#}
#
#decoder_selector {
# suffix "flac"
# plugin "flac"
#}
database {
plugin "simple"
path "/var/lib/mpd/tag_cache"
compress "no"
}
#
music_directory "/var/lib/mpd/Music"
playlist_directory "/var/lib/mpd/playlists"
#sticker_file "/var/lib/mpd/sticker.sql"
log_file "/var/lib/mpd/mpd.log"
pid_file "/var/run/mpd.pid"
state_file "/var/lib/mpd/state"
user "root"
group "root"
bind_to_address "any"
port "6600"
#
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
metadata_to_use "artist,album,title,track,genre,date,disc"
#audio_output_format "96000:24:2"
#
# extended audio format
#audio_output_format "X4L4:24:2"
#LIBSAMPLERATE
#samplerate_converter "Best Sinc Interpolator"
#samplearte_converter "Medium Sinc Interpolator"
#samplearte_converter "Fastest Sinc Interpolator"
#samplearte_converter "ZOHc Interpolator"
#samplearte_converter "Linear Sinc Interpolator"
#samplearte_converter "internal"
# SOXR
samplerate_converter "soxr very high"
#samplerate_converter "soxr high"
#samplerate_converter "soxr medium"
#samplerate_converter "soxr low"
#samplerate_converter "soxr quick"
#
#samplerate_converter "soxr very high openmp"
#samplerate_converter "soxr high openmp"
#samplerate_converter "soxr medium openmp"
#samplerate_converter "soxr low openmp"
#samplerate_converter "soxr quick openmp"
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"
default_permissions "read,add,control,admin"
#
mixer_type "disabled"
#
audio_buffer_size "4096"
buffer_before_play "50%"
#
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
------------------------------------------------------
③ WAVがノイズになる場合の対処方法
これは、キャッシュサーバーpolipoをカスケード接続すると現れる現象で、デジファイの音さんが現在調査中。問題が解決されるまでは以下の方法で対処する。
(1) ffmpegを使う
wavは sndfileかaudiofile,ffmpegのいずれかでデコードされるが、
今回、sndfile や audiofile を使うとノイズの嵐になるので、これらを使えなくしffmpegを使う
player側の mpd.conf の audio_output { } の下当たりに以下を書き込む。
decoder {
plugin "sndfile"
enabled "no"
}
decoder {
plugin "audiofile"
enabled "no"
}
これでWAVはノイズなく再生される。しかし352KHzWavは依然ノイズの嵐となる。
352KHzを聴かないならこれで十分だが、聴きたいなら(2)の方法で対処する。
(2) player側のpolipoのみ使う設定にする
これは、UnPNアダプター側のpolipoを経由せずに直接NASからデータを取り受ける方式。
上記(1)の設定をキャンセル(全てコメントアウト)する。
#decoder {
# plugin "sndfile"
# enabled "no"
#}
#decoder {
# plugin "audiofile"
# enabled "no"
#}
player側の lightmpd.conf の[route]にNASのIPアドレスを指定する。
parentProxyはコメントアウトする。
[route]
nas-ip/32 = gateway
192.168.3.10/32=10.0.1.1
[polipo]
#parentProxy = 10.0.1.1:8123
これで、playerのpolipoだけを使う設定となり、WAVが全くノイズなしで再生される。
192KHzも352KHzもOKだ。
④ DSD再生について
DDCが対応していれば、Dopではなく、NativeDSDを使うことができる。
DDCが対応していれば、Dopではなく、NativeDSDを使うことができる。
4.NASのIPアドレス
NASのIPアドレスをLightMPDのネットワークに合わせて変更しておく。
5.ControlPoint
Upplay Kinsky Kazooで再生確認。
ControlPointの中では、Upplayが明らかに一歩抜きんでいる。Kinsky、Kazooは落ち着いた感じ。
6.音質
LightMPDのネットワークをホームネットワークと分け、更に、UNPNアダプターとUNPNプレイヤーをカスケード接続し2本のネットワークに分け、楽曲もNASにすることで、音質はここまで変わるかというくらい変わる。
これまでLightMPDは、綺麗な音だがやや細く伸びがなく、心に響いてくるJPLAYには一歩足りない感じであったが、解像度が高く、深みと厚みが出て艶のある心に響いてくる音に変わった。聴き始めるといつまでも聴いていたい気持ちになる。
これまで、あまりいい録音でないと思っていた楽曲が見違えるほど良くなる。これはほんとうに凄い。
LighrMPD恐るべし!JPLAYStreamerと遜色なし?!。
音出しに成功しました。
返信削除全く別物ですね。
LightMPDらしさがなくなったともいえるかもしれませんが、完全なる進化ですね。
上のmpd.confの
NativeDSDの場合
#dsd_usb "yes"
dsd_native "yes"
dsd_native_type "2"
は、
NativeDSDの場合
dsd_usb "yes"
dsd_native "yes"
dsd_native_type "2"
だと思うのですが。
Imada さん
返信削除dsd_usb は Dopの場合なので、コメントアウトしました。"no"でもいいのかもしれません。
はじめまして。記事の内容にいつも啓発されております。今回の試みの本質的な原理は何だとお考えでしょうか?実際、LANケーブルを替えても、スイッチングハブを替えても音は激変しますので、デジタルデータに含まれているノイズをイーサネットを分離することによって低減したのでしょうか?もし、そうだとすると、デジタルノイズを低減する手段はこれ以外にもいっぱいありそうな気がします。
返信削除たとえばパルストランス内蔵モジュラージャック LANコネクタというのが秋月にありますが、コモンモードチョークも組み込まれており、LANケーブルに一個介在させるだけで音は激変します。今回の試みと組み合わせたらどうなるのか、非常に興味があります。APU一枚2万何某か必要なので、同方向の効果があるのであれば、そちらで済ませたいのが本音です。
simonさん
削除こちらこそ始めまして。いつも読んでいただきありがとうございます。
デジタルは何を変えても音が変わりますが、私の経験では、激変というのは滅多にあることではありません。どのレベルを激変というかは人それぞれですね。ただし、何を変えても激変するようならデジタルは成り立たないと思います。
今回は、AUPをカスケート接続し2台間のイーサネットを分離することで音質は、まさに激変しました。元々ノイズはほとんどなく静かさも抜きんでいたので、ノイズが低減したということではないです。音の響きや迫力や生々しさが出てきて、思わず引き込まれる音になりました。コントロールの指令と楽曲データが分離されることで、大きな効果があったということになります。JPLAYに肉薄しています。
もちろん、これを補完する意味で、電源やケーブルやその他も吟味すれば更によくなることでしょう。