Page 2 / 31 :  ‹ Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Next › »

Feb 16, 2025

LAN ネットワークを見直してみる 4 (18日、19日、8月30日に追記)

さて、19日、追記。2回目の追記だからあとから読んでくれてもいい。

このエントリーで、Walter Tilgner録音の音源、 Waldesrauschen / Whispering Forestの1stトラック、小鳥のさえずりが何処に定位するかについて述べた。
小鳥は、最後には左右のスピーカーの真ん中上空に定位した、、と思った。
それに伴い、、だと思うのだけど、、いろんな音源の聴こえ方が変わってきた。

例えばクリュイタンスのフォーレ:レクイエム。
以前は音楽性はともかく録音はいまいちぼんやりしている、と思っていた。今は違う。臨場感、空気感に鳥肌が立つような音源になってしまった。
それだけだったら、良かったねで済むのだけど。
一方で、THe Who / Quadropheniaは、音の激しさは強まったが細やかさは押し隠された。ロックだからむしろ、これで良いのかもしれないし、これはこれで魅力的な表現なんだけど、飛翔感が減っているのだ。まあ、THe Whoは翔ばなくても良いんだけどね。

小鳥の定位を他の方法でいくつか聴いてみた。
raspberry pi + piCore + mpd + i2s DAC boardでは、右に寄る。
ノートPCにDeezer web player、またはdミュージックの視聴ページを、JBLのbluetoothイヤホンで聴いたら、右に寄る。
本当に真ん中に定位するのでいいのかな、という気持ちにもなってくる。
アナログ盤があって、その再生環境があれば確認できるのだろうけど、そうもいかない。

ノードストのチェック音源を使ってみる。そういえば以前は、比較的うちの音場はちゃんとしていると思ったのだった。
NORDOST SYSTEM SOLUTION
https://www.amazon.co.jp/gp/product/B07PV9DPL8/

駄目である。14〜16トラック、チャフィング音の動き。15トラックがきちんと出ない。上に上がらない。
まったく人の耳というのは当てにならない。

どうも、小鳥は正中に定位するのが正しいとは、言えないのかも知れない。
WiiM mini、どうなんだ。と思ったら、なんかちょっと右寄りに聴こえるでやんの、このエントリーの図の1ぐらいの位置に聴こえる。なんだったんだ。間違えたか。
とにかく、いろいろやりなおし、やりなおしの始まりである。

ということで、本当に一段落したらまたLANについて書く。いろいろ危なっかしくていけない。
以上で、19日追記、終了。

8月30日、追記。
ネットワーク状況もあれこれ変遷の末、小鳥は正中に定位するのが妥当な様子だ。
下記エントリー参照のこと。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20250824a.htm

一段落したのかと思いきや、引き続き、LANをいじっている。
現在は1図。

図4-1

LAN構成図1

見ての通り、PCトランスポートであるapu2に向かう枝とそれ以外の枝を、PR-500MIを幹にして分離した。
PCトラポ行き以外の枝は、オーディオ関係もそれ以外も一緒くたに GS108v4の8つのポートでまとめている。

前回のエントリー最後の配置も悪くはなかったんだけど、音にエコーが付いてきらびやかに鳴る傾向があった。それはそれで綺麗なんだけど、写実性は今回のような配置のほうが勝る。
というか、今回の配置のほうが、音像の定位がより正確ではないかと思う。

そう、前回エントリーでも触れたが、ネットワーク上の配置によって定位が変わる。LAN上のサーバーの配置、ハブの配置で、ステレオ音像の様相や定位する位置が変わるというのは、今回初めて気が付いた。
例えば、Walter Tilgner / Whispering Forest の1stトラック。
導入で小鳥のさえずりから入るんだけど、昔からずっと右側上方に定位していた。
今回のLANの配置だと、これが中央に寄る。

逆に、PR-500MIとapu2の間を中継するGS108v4をGS105v5に替えると、小鳥は右側上方に戻る。
どちらが正しいのかは分からない。
でも考えてみれば、CD音源のオープニングで小鳥が鳴く時に真ん中じゃなく右から聞こえるというのは、音源制作者の意図として考えにくいのではないか。普通は真ん中から聞こえるように録音するのではないか(まあ、Walter Tilgnerの音源は寄っていても不自然感はないけど)。
それにGS108v4だと、例えばトラック6の雨音が地べたに当たって聞こえるのが分かる。GS105だと、こういった表現はやや曖昧になる。他の音源でも、より微細でリアルな聴こえ方で表現する傾向はあるので、たぶんGS108v4のほうがより正確なんだろう、と推定せざるを得ない。

他のハブだったらどうなのか、試してみた。
以下、表にした。
Walter Tilgner / Whispering Forest の1stトラック冒頭の小鳥のさえずりが何処に定位するか。
mpd + libsamplerateで384kHzにアップサンプリングしている。DACはADI-2 DAC。

speaker
DeezerNAS
NEC QX-S608E97
GS108v421
Buffalo LSW3-GT-5NS44
GS105v522
GS105Ev294
none54

ハブなしも試してみた。これが今回一番、右に寄った。他の音源音像も右に寄る。
しかし、なんとなくだが、以前よりもハブによる音色の違いが目立たない気がする。接続方法が変わったからだろうか。

上記の試みの後、アップサンプリングせず44.1kHzの音源でも試したが、テスト系は以前のように有線だと音が飛ぶ。メイン系だとまともな音にならない。なんでアップサンプリングなしだと有線のPPAPで伝送できないのかは不明のままだ。
そういうわけで、テスト系だけでの試みだったが、概ねアップサンプリングした場合と同じような結果だと思った。右スピーカーの上の方に定位するようだ。

ジッターというのは時間のズレなので、DA変換に際して音自体の位相のズレとして表れてもおかしくないのかな。そうなると、音像の位置が変わることはあり得るんだろうと思う。
ちょっと検索したら、下記ブログがヒットした。引用する。

デジタルオーディオのクロックと精度について – EZなBlog
http://ezto.info/stpress/2016/09/597.html
2016年9月1日

周期的なタイミングの変動(周期的なジッター)はその周波数でアナログ出力を変調しているのと同じで、ワウフラッターと似たようなものですが、アナログ機器のワウフラッターと大きく異なるのが周期が短い(変調周波数が高い部分が含まれる)ことと、どんな安物でもアナログ機器のワウフラッターよりレベルは低いので、聞こえ方としては音が揺れたり濁ったりというのではなく、広がりや奥行き感、定位感の違いとして捉えられる人が多く、特性的にはジッター量のほか位相雑音として測定可能な違いがあり、この特性と音の評価に相関が多くみられます。

なるほど、今回、音場や音像の広がりが変化して聴こえたり、小鳥や羽虫の位置が変わって聴こえたりするのは、機械由来の周期的ジッターが機械の状況の変更によって変化することが、DA変換に影響を与えているということで、説明できるということらしい。
なんともデリケートな話だ。

下記のサイトには「Periodic Jitter」として記載がある。

Jitter: Part 5 – Deterministic Jitter – earfluff and eyecandy
https://www.tonmeister.ca/wordpress/2018/08/09/jitter-part-5-deterministic-jitter/
2018/08/09

他のエントリーには、
Can you hear jitter? The simple answer to this these days is “probably not”.
と書いている。詳しい影響については記載していないかな。
いや、でもね、差異は聞こえる。

今回、環境音の音源でこういうことに気付いたが、音楽の音源でも似たようなことは起きていると考えるほうが妥当だろう。しかし、よほど意識していないと具体的な変化には気付きにくいのではないだろうか。
それにしても、デジタルだから音は変わらないなんていう話は全く現実を省みない話で、むしろ位相についてはアナログのほうが簡単に正確に再生しやすいかのもしれない。ハブが多少変わったぐらいで音像の位置が変わるような変化を引き起こすというのは、アナログでは考えにくい現象のような気がする。
それとも、アナログでも似たようなことは起きているのだろうか。
僕はアナログオーディオの経験は浅い。
例えばインターコネクトケーブルを極太から極細に換えてみるようなことでは、音は変わるだろうが、音像の定位は変わるのだろうか。変わりそうだけど、そういうこともよく知らない。

図4-2

LAN構成図ボツ案

さて、音源によっては図4-2の配置のほうが若干、音が派手でテンション高い感じで良く聴こえることがある。図4-1のほうがごく僅かにスムーズで刺激が少ない。
これはどうしたものかなと思っている。悩ましい。
いっそ、音源によって使い分けるか? ジッターの性質によって機械を使い分けるなんて聞いたことがない。

Walter Tilgner / Whispering Forest の1stトラック冒頭の小鳥のさえずりはどう聞こえるか。
中継のハブは図4-2のとおりで、GS108v4。

DeezerNAS
43

かなり右の方に寄る。まあ、やっぱり図4-1の配置にする。

さて、ここで思い付く。
WiiM miniで聞いたら、どうなるんだろう。
Deezerのデータを無線LANから受けて、そのまま光SPDIFにしてDACに送る。ほとんどハブを通らない。
どんな再生になるか。

speaker

小鳥は、左右スピーカーのちょうど真ん中の上高くに浮かびました。これが一番正確なんだろう。WiiM mini、侮れない。持っててよかった。

今回はここまでだ。

早々だが、18日、追記。

図4-1-2

LAN構成図1改1

HuMANDATA LNX-007LをProbook 450G9の枝からより上流のGS108v4とPR-500MIの間に移動させた。
これだけで、前エントリーの小鳥の定位の問題がかなり解決した。
左右スピーカーのほぼ真ん中上に定位する。
ほぼ真ん中、というのは、WiiM miniで鳴らしたときよりも音像が曖昧なのだ。くっきりしていない。あのあたりかな、という感じに聞こえる。

それにしても、こんな風に効くのか、と改めて感心した。
感心したついでに、GS108v4から出ている7本の枝に、順番にLNX-007Lを使ってみて、違いがどう出るか聴いてみた。多少の違いはあるけど、小鳥が右側に定位するのは同じだった。どの枝が主原因ということがあるわけでは無さそうだ。
幹のPR-500MIに繋がる枝に使うだけで、全体に対してかなりの対策になったようだ。

もう少し、小鳥がくっきりしないかな。
NAS音源を繋いでいるハブ、GS105の上流に付けているLNX-007Lを、下流に移動してみる。

図4-1-3

LAN構成図1改2

小鳥の定位がしっかりした。
WiiM miniで鳴らしたときには若干及ばない感じ。とはいえ、だいぶ改善した。

ただ、小鳥が正中に定位したからといって、他の音像の定位も正確とは限らない。注意が必要だ。そこまでは手が回らない部分もあるけど。

さてこうなると、多くのソースで聴こえ方の印象に変化が出てきた。
オーディオやっていてこういうのは面白い。
しかし、いい感じで鳴っていた音源がやや精彩を欠く感じになるのは惜しい。まあ、逆もあるのだけど。再生音がよりモニター的になる。細かいところが見えるけど、だから楽しくなるわけではない。より静謐に美しくなる。そういう音源に合っているということだろう。

また何か変化があれば書いていく。

Posted at 20:45 in audio_diary | WriteBacks (0) | Edit Tagged as:

Feb 09, 2025

LAN ネットワークを見直してみる 3

引き続き、LANをいじっている。
450G9が移動したので、Mac mini M2周辺で2つ使っていたハブが1つで済むようになった。
そこでとりあえず図の左下、LMSサーバーのMac miniに使っているハブ、Buffalo LSW4-GT-8NSが古いので、余ったNETGEAR GS105Eと入れ替えた。

図3-1

LAN構成図1

LSW4-GT-8NSは、2009年の発売。GS105E-200JPSは、2014年の発売。
GS105Eの方が5年新しい、とか言っても説得力がないかも。共に10年以上前の製品だ。

なんだか少し、音が穏やかになったような気がする。ほんとかな。柔らかくて聴きやすい丸い音だ。しかし良い面ばかりではない。なんだか空間が出にくいような聞こえ方、なのかな、どうだろう。弱い音が、より聞こえるようになった気がする。ではやはり良いのではないのかな。
しかし、これだけでここまで音が変わるんだね。
ちょっと考えないといけない。

GS105Eは、うちではもともとはVLANの設定をしたくて導入したんだけど、当時、うまく割り振ることが出来ず、そうした機能は使わないままになった機種だ。訂正。過去ログを読んで2018年にVLANを使っていたことがあるのに気付いた。NASの扱いに困ったようなおぼろげな記憶だけがある。それ以外はすっかり忘れている。
ハブ自体にIPアドレスが振られて、ウェブブラウザから設定画面にアクセスできる。
VLAN以外の設定も出来る。
https://www.netgear.com/jp/support/product/gs105e/#configurationassistance_commontopics
https://kb.netgear.com/ja/000053886/%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E4%B8%80%E8%A6%A7?language=ja

今回、ブロードキャストフィルタリングを試みた。ノイズや負荷の原因になるパケットが多くなったら、減らすことができる。
完全に0にはできないようで、最小値は512kbps。設定できる最大値は512Mbpsで、その上はNo Limitだ。
ポートごとの設定ができるのだけど、今回はそこまで細かい試行はしていない。全てのポートで同じ数値を決めてという感じ。
いつ頃だったか、昔いじったことがあるけど、大して違わないと思って止めたことがある。変な設定はないほうが機械の負荷の影響が少ないのではないかと思ったからだ。当時は、音の変化には気付かなかった。

しかし今回は、いじってみて、意外と音が違う。

ちなみに、試聴に使った音源は下記。NASとDeezerストリーミング。
ゴールトベルク変奏曲 / 武久源造
Whispering Forest / Walter Tilgner
Handel: Trionfo Del Tempo E Della Verita (Il) / Barockorchester Frankfurt
など。

192.168.1.81(Mac miniのハブ)は、数値を設定してブロードキャストを制限したら地味で静かな籠もったような音になる。数値を上げると、音にスケール感が出てくる。82、83のハブは、設定数値を上げていくと音像が大きく滲んで派手になっていく。数値を下げると、音がスリムにすっきりしてくる。

つまり基本、制限を強くすると音は硬くシャープになり、制限を緩めると音も広がり感が出てくるのだけど、81と、82・83では、音が良い方向に向かうベクトルが逆方向みたいなのだ。
いっそ全部、同じ数値に統一したらどうかと2Mbpsとかにしてみたら、なんとなく座りが悪く、違和感を感じる。

PPAP関連サーバーに繋がるGS105E(192.168.1.82と192.168.1.83)には最小の512kbpsを設定し、LMS / UpnP Serverである Mac mini最寄りのGS105E(192.168.1.81)はNo Limitで、最も音が良くなるように感じた。どうしてそうするのがいいのか、理屈はよく分からない。

そして、ここに来てNASとストリーミングの比較が、どちらが良いのか分からなくなった。
音が良くなって、差異が聴き取れなくなったのだろうか。
どうだろう、、、あんまりそういう気がしない。

もしかして、Buffalo LSW4-GT-8NSのほうが良いんだろうか。
GS105E(192.168.1.81)を、LSW4-GT-8NSに戻す。

以前から使っていたハブなので、耳馴染みのいい音になる。
落ち着きがあって、且つ上下奥行きも出て、膨らまず肌理が細かく聞こえる。何よりも、誇張がない自然な音に聞こえる、それが大きい。耳に馴染んだ音だから良く聞こえるのかどうかは、俄には判断できない。
印象としては、雷の低音はGS105Eの方が派手で迫力があるが、LSW4-GT-8NSの方が怖い。チェンバロの響きもGS105Eの方が派手で、LSW4-GT-8NSの方が端正な感じがする。
しかし印象ではなく断言できる大きな違いがある。
音像の定位が変わる。Walter Tignerの音源で、アブの羽音の動きが変わるのだ。

考えてみたら、LSW4-GT-8NSは筐体が大きめで、そういう意味ではPR-500MIの音が良かったというのに通じるかもしれない。
しかし、これだけ違うと、困るんだけど。
確かめないといけないこと、やらないといけないことが増える。

ともあれ、Buffalo LSW4-GT-8NSは元の位置に戻した。

LSW4-GT-8NSの上流に、GS105E(192.168.1.81)を置いてみる。設定なしだと音像が膨らむ。ブロードキャストフィルタリングを512Kbpsに設定したら、そこそこ落ち着いた。
ついでに、GS105E3台でデイジーチェーンにしてみた。そこそこ聴ける。
しかし、どうなんかな、音の鮮度がいまいちな気がする。
GS105Eを外して、前の配置に戻す。

さて、どうしようかな、、。

図の上の方、オーディオとはあんまり関係ない場所の Buffalo LSW3-GT-5NSを外し、GS105E(192.168.1.81)に置き換えた。
これは音質には大して影響しないだろう。

外した LSW3-GT-5NSは、LSW4-GT-8NSより更に1年古いハブだ。筐体のサイズはGS105Eよりは大きい。これと、mpdサーバーである ProBook 450G9を繋いでいる GS105E(192.168.1.83)の置き換えを試みる。
多機能なハブは、やはりオーディオ用としては不適ではないかと考えたからだ。

図3-2

LAN構成図2

繋ぎ変えてみて、いきなり音の鮮度が上がる。
フィルタリングの設定でも大きく音は変わったが、ハブの素性も大きな影響がある。
しかし、音場の広がりは狭い、、、蛙の合唱が3分の2ぐらいになったかな。そんなに変わるのかね。

だが、戻す気になれない。音色に不自然さを感じなくなった。前は音場は広がり過ぎだったかも。
NASとストリーミングでは、僅かにNASのほうがいい。ブラインドで区別する自信はない。
いや、、、こんなことになるとは。

次は、同じ場所に、NETGEAR GS105を試してみる。
GS105は、GS105EからVLAN機能やフィルタリング機能を省いた機種で、シンプルな分、音への悪影響は少ないだろうと考える。
これをLSW3-GT-5NSと置き換えてみる。

音質差は、ほとんど感じない。
やや柔らかい方向に振れているような気はするが、ブラインドで区別は難しい。
自然な音色だ。

それにしても、自然な音がするとか言ってるが、つい先日まで、GS105Eを中心に使ってネットワークを組んでいて、不自然だと感じていなかった。
気付くようになったのは、サーバーの配置を変えたのも影響しているのだろうか。
以前の配置は、そうした不自然さが出にくい配置だったのか。

メインのmpdサーバーであるhp ProBook 450G9が、以前は他のオーディオ関係のサーバーから遠く離れた場所に位置していた。
これを近くに持ってきた分、ピーキーなシステムになったのかもしれない。
というか、それぐらいしか理由を思い付かない。
だとしたら、PCトランスポートと他のサーバーは、LAN上で離れるようにして設置したほうが良いのだろうか。ちょっと検討の余地がある。ピーキーな方がいじりがいがあるかもしれないが、裏を返せば、使用機材の音が乗りやすいということではないのか。

さて、GS105とLSW3-GT-5NS、どっちにしよう。
GS105のほうがおとなしい音だ。LSW3-GT-5NSのほうが僅かに騒がしい。GS105のほうが音から映像が浮かびやすい気がする。空間もきれいだ。
そういうわけで、GS105を使う。

サーバー群を、トランスポートPCから遠くに離して配置する方が良いなら、apu2に向かう枝がmpdサーバーの近くから出ているのは良くないかもしれない。
apu2の枝を、以前の配置、PR-500MIに戻してみる。
なんだか、こうした方が良さそう。音場の見通しが良くなり、リアリティも増す感じだ。

図3-3

LAN構成図3

考えたこと。
ONU兼DHCPサーバーであるPR-500MIからオーディオ関係をまとめて離そうとしたら、良質で強靭なハブが1個、必要だ。
そこからオーディオ用のサーバーへの枝を伸ばしていけば良いのではないか。
いっそ、YAMAHAあたりの最新のハブとか導入した方がいいんだろうか、とか思うけど(オーディオ用は高くて手が出ない)、しばらくは手持ちの機械で色々と試してみようと思う。

と思ったところで、あ、空いてるハブがあるわ、と思った。
PR-500MIにLSW3-GT-5NSを繋ぎ、そこからオーディオ系の枝3本を繋ぐ。音は、LSW3-GT-5NSの性格を帯びたものになった。音像がいくらか明瞭になる。悪化要素は、今のところ気付かない。たぶん音は、PR-500MIから枝を出すよりは良くなってるのではないか。
あんまり強靭なハブでなくても良かったみたいだ。

さて、こうなると、apu2の傍にGS105Eを使っているのはどうなのかということになる。
GS105に置き換えてみる。
結果、悪化要素はないような。何処か良くなったかといえば、そっちもはっきりしない。
ここには複数の機械がつながっていて、その中には銅板を使った仮想アースがつながった機械も含まれる。意外に、ハブの支配力は低いのかもしれない。

LSW3-GT-5NSにオーディオ関係の枝全部つなげてみたけど、替わりに他のハブを試してみる。
どんな変化があるだろうか。

これまでの経過で、複雑な機能がなくて大きめで金属シャーシのハブが良さそう、という目星をつけた。
ハードオフで見繕う。
ハブって、ジャンクの中にあるんだね。
HPのハブとかBuffaloの古くて重厚な100Base-Tのハブとか興味深い機械があったが、意外と値付けが高かったしあんまり沢山でもだめなので、NETGEAR GS108v4(105より大きくて重く新しい)を2台と、NEC QX-S608Eを入手した。税込2千円弱也。QX-S608EはNTTのハブだ。どうなんだろうかね。

LSW3-GT-5NSを、GS108v4に換えてみる。
音はぐっと晴れやかになった印象。とても綺麗に聞こえる。音場が広がったかな。
音色の性格、質感が今までよりも明瞭になった気がする。LSW3-GT-5NSは乾いた質感だったが、うるおい、生命感が出てきた感じ。

次はQX-S608E。更に質感が変わる。湿度が高いというか、ウェットな感触だ。響きが多い。音像が音場の中で溶け合うような感触がある。左右は曖昧だが上下は一応出てるのかな。リアリティがないのかといえば、そうでもない。これはこれで美音な気がする。しかし求める方向性とは異なるかな。

ここは、暫く様子を見ながらセレクトする。
それにしてもハブによって大きく音が変わる。意外にQX-S608Eの柔らかい刺激が少ない音を好む人もいるような気がするが、うちでは写実的なハイファイを目指すので、GS108v4だろうか。

図3-4

LAN構成図4

迷走しているが、音は最初に想定していた以上に変わった。
音楽が力強くなり、安定感が増した感じ。空間の質感が増した感じがする。

だが、何処か腑に落ちない感触がある。1月からあれこれとネットワークに手を入れてきたが、それ以前のほうが音のまとまりは良かった気がするのだ。今の音は、どこか険がある。なんとなく気持ち良く聴けないのだ。

ジョニミッチェル、ジャニスジョプリンを聴いてみたら、マイクを通した声だ。
これは、何とかしたい。

結局、apu2に向かう枝を、PR-500MIに戻した。
自然な声で鳴る。ここに戻さざるを得ないのか。しかし、昔のほうが酔わせる声だったな。

なんとなくだが、ONU兼DHCPサーバーからPCトラポに向かうLANケーブルが出てるというのは、いけない筈という頭がある。

PR-500MIからapu2に向かう枝の途中にQX-S608Eを入れてみる。
いいじゃん。ジョニがそれなりに歌ってくれる。神憑りとまで言わないが、天使は傍にいるようだ。
でもジャニスはラジオの向こうだ。
ハブをフィルターとして使っているというか、どうなんだろうこれ。
Dominic Miller の What You Didn’t Say、パーカッションが締まらない。これが締まらないんじゃ、ちょっと辛い。この案は却下。

3本のオーディオ用の枝を、全てPR-500MIに戻す。
どうすべか。
こんな感じになる。

図3-5

LAN構成図5

なんだか、あれこれ弄り回して何をやってるんだろうという感じだけど、音は、だいぶ納得感があるものに近付いている。しかし、表面的な強さはあるんだけど、なんだか音の芯が軽くて弱い気がする。
というか、周りが重いんだな。歌に魂が乗ってるように聴こえない。どういうことなんかなこれは。

ここまでやってきて思うのは、もしかしたらmpdサーバーであるProbook G9は、あんまりオーディ用のサーバー(特にapu2系)に近付けないほうがいいのではないかということだ。
もともと、遠くにあったのを近くに持ってきてから迷走気味だ。

考えるに、ネットワーク間が遠ければ遠いほど、デジタル信号が元々抱えていたジッターの影響は小さくなるのだと思う。
昔、ハブを重ねることが流行した。デジタル信号がハブを通っていく度に、元々の信号に多かったジッターが減ったのだろう。逆に、元々の信号のジッターが小さければ、ハブを通っていく度に、ハブ固有のジッターが重なっていくので音が悪くなる。
良いか悪いかはやってみないと分からないということになる。

うちのmpdサーバーは、44.1kHz/16bitの信号をlibsamplerate / bestの設定で384kHz/32bitにアップサンプリングする大仕事をしている。多分、生成されたデジタル信号は大量のジッターを含んでいるのだ。
こういうものは、多分、設置場所がPCトランスポートから遠ければ遠いほど良いのかもしれない。
そう考えてみたら、いろいろ合点がいく。

そして、以前の音より、総合的には良くなっている気がする。
以前の音は素性は良かったが、やや力が足りなかった。今の音は力がある。
ただ、素性は以前の音より少し悪いような気がする。美しさが足りない。訴求性が低い。ここは極めて残念なところ。
しかし、以前の状態に戻す気にもなれない。

遠くに離してみる。
具体的には、PR-500MIにつながっていたmpdサーバーの枝を、上の方に。ポートが足りないので、GS108v4を使う。

ここで話を一気に端折る。
実際のところあれやこれやしたんだけど、とりあえず、下の図に落ち着いた。

図3-6

LAN構成図6

mpdサーバーを遠くに持っていくという話は、何処に行ったのだろうか。
あれこれ試して、全く決まらない、すっきりしない。
そんな中で、これは駄目な配置という確認を一応しておこうと思ってやってみた、この繋ぎ方で、霧が晴れた。ジョニもジャニスも歌ってくれた。他の音源も、納得がいく音で鳴ってくれるようになった。

もういい、とりあえずこれで暫く様子見ましょう。

問題は何が良かったんだか悪かったんだか皆目見当がつかないことだ。
つなぎ方としては、図3-2 のときと同じで、変わっているのはハブだけだ。今回エントリーの記録を遡って読み返したら、このときも音が良くなったと思っていたんだね。そのままの配置で調整したらいいものを、いろいろ迷走した。しかし、この配置なら何故いいのか、現時点では分からない。図3-2 のときと現在とどちらがいいのかも、比較してないので明言できないが、たぶん、新しい配置の方が良いような気がする。

それにしても、ネットワークにここまで手を入れる余地があったとは、正直、驚いている。甘く見ていた。こんなにころころ音が変わるとは。ここまで音への支配力が大きいとは思っていなかった。
というか、簡単に音がひどくなる。

機械の影響が大きいということは、機械の色が付きやすいということだ。デジタルなのに機械の色が付くというのは、それだけ機械のジッターに固有の癖があるということだろう。これはハブだけではなく、他の機械もそうだということだろう。
つまり、良質な機械を少なめに使ってジッターが極力増えない伝送をして、強力なジッター対策を施したトラポとDACでDA変換するというのが、有るべき姿ということだろうか。そんなに簡単に出来る気もしないが。うちなんか、たくさんPC使ってるが、1台の強力なPCで仮想マシンを何台も動かして、とか出来たら、もしかしたらトータルでジッターの影響は減らせるかも知れない。どうなんだろうか。でも、しないけど。

まだまだ現状でも試行錯誤の余地がある。余裕があるときに徐々に手を入れていくつもりだ。

Posted at 22:04 in audio_diary | WriteBacks (0) | Edit Tagged as:

Jan 28, 2025

LAN ネットワークを見直してみる 2

今回は画像が多い。
仕方ないけど。

LANネットワークは予てから懸案だった。
良いのか悪いのか、分からないまま使っていたのだ。
それが、テスト系mpdサーバー(hp EliteBook 820G2)に信号伝送の問題が生じ、有線から無線接続にしたら問題が改善した顛末で、ちょっと本気で考えないといけないと思い至ったということだ。
顛末のエントリーはこちら(http://blown-lei.net/endive/blosxom.cgi/audio_diary/20241212a.html)。

去年末の時点でこんな感じ。
有線接続で問題があった820G2を、図の左下のハブ Buffalo LSW4-GT-8NSから外して、無線接続にしたところ。

図2-1

LAN構成図1

さて、どこから手を付けよう。
以前からちょっと気になっていたことがある。

うちにはプロバイダから光回線終端装置(ONU)としてPR-500MIがレンタルされていて、これがDHCPサーバーを兼ねている。
そんな機械に、オーディオに関わる枝が3本繋がっている。
上の図でいうと、下側3本がそれだ。上から、mpdサーバー450G9の枝、apu2に繋がるオーディオ専用の枝、LMSサーバーであるMac miniの枝。
450G9の枝は、オーディオ関係以外の機械が混在する。無線は図の1番上の枝にあるので、無線接続になった820G2やWiiM mini、クライアントとして使うタブレット、スマートフォンを含めたら、全部の枝にオーディオ関係が分散している。

無線関係以外のオーディオ関係は、まとめられるものならまとめたい。そのほうが音が良くなるのではないか。

図2-2

LAN構成図2

そこで、まず、上図のような感じに。
apu2に向かうオーディオ専用の枝を、PR-500MIから1段下流、NETGEAR GS105E-200JPSに移動してみた。やれONUだDHCPサーバーだと色んな仕事をしている機械をオーディオ信号が通過する頻度は、少ないほど良いのではないだろうか。
しかし、結果は、どうも思わしくない。

図2-3

LAN構成図3

家族用のMac mini M2やらTVやらが繋がってる枝から、メインのmpdサーバーであるhp ProBook 450G9を移動。Buffalo LSW4-GT-8NSに繋ぐ。
LMS / UpnP ServerであるMac miniに近付けたということだ。
単純に、近いほうがいいのではないか、という考え。
これが良くなかった。
僅かだが霞がかかったような、しかし確実に気分が良くない音質の劣化、所謂ジッターの影響で音が悪くなる感じ。

ここは以前は820G2の場所だった。不具合を生じて、たまたま無線接続に切り替えたら、そっちのほうが良かったのだ。
なるほど、820G2は、このジッターの影響を受けたのだろう。

どう考えたらいいか。 1つのハブで、複数のサーバーが同時に活発に動作すると、そこはジッターが生じやすくなるのだろうか。

図2-4

LAN構成図4

450G9を1段上流のGS105E-200JPSに上げる。音は若干、改善された。しかし、普段聴いていた本来の音には遠い。
まさか、PR-500MIに繋ぐ方が良いんだろうか。
そのまさかだった。

図2-5

LAN構成図5

450G9をPR-500MIに繋いでみた。
かなり、本来のうちのメイン系の音に近づいた。
驚いた。
実は、後で過去のエントリーを読み返してみたら、PR-500MIに繋ぐと音がいいというのは経験済みだった。すっかり忘れていた。同時は、それ以上の試行、考察はしていない。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20230722a.html

図2-6

LAN構成図6

次に、450G9をGS105E-200JPSに戻し、apu2の枝をPR-500MIに戻す。これもかなり、本来のメイン系の音に近い。
しかし、どういうのか、まだ足りない。

図2-7

LAN構成図7

以前に450G9が繋がっていた、Mac mini M2やらTVやらの枝を、図の上の方、Buffalo LSW3-GT-5NSの枝に移動。
PR-500MIのポート4つのうち3つをオーディオ用にする。
450G9をPR-500MIに繋ぐ。

これは、以前の音を超えたのではないか、、。

配置としては、450G9の枝、Mac miniの枝、apu2の枝、其々がPR-500MIから出ており、これは配置をいじり始める前の、最初の配置と同じなのだ。
つまり、450G9の周りにMac mini M2やらTVやらが無い分、音が良くなったのかもしれない。

さて、なんでPR-500MIは音が良いのか。

考えてみたらPR-500MIは、NTTが社運をかけて各家庭にレンタルしている機械だ。
これが頼りない機械だったら、契約数に影響が出かねない。
僕が思っていた以上に、見かけよりも、しっかりした作りなのではないか。それが音に影響しているのではないか。
だとしたら、うちのハブが弱いのだ。
廉価な機械しか使ってないのがいけないのかもしれない。
PR-500MIの価格を調べてみたが、ネット上には情報がない。

なぜだろう。まずPR-500MIは筐体が大きい。そして無線LAN装置を載せる余力がある(うちのは付いてないが)。ということは、GNDが大きいかもしれない。そして電源も大きいのではないか。そういうのが、ノイズの多さを補って余りある優位性を産んでいるのではないか。

ここでPR-500MIとNETGEAR GS105E-200JPSを対決させてみよう。

図2-8

LAN構成図8

オーディオ用の枝3本を、GS105E-200JPSに集めてみる。
音は、悪くない。
落ち着きがある。
ちなみにMac miniの枝のHuMANDATA LNX-007Lは、Mac mini側よりもPR-500MI側に入れたほうがいいようだ。
とりあえず、GS105Eも馬鹿には出来ないことがわかった。
しかしPR-500MIの方が、やや派手な傾向だが、より精緻な音がするようだ。

簡単にどちらが良いとか言いにくい。
スイッチングハブは、データの送信先を記憶し管理していると聞いたことがある。もしかしたら、配線を変えて直ぐは安定していないのではないか。ある程度、時間をかけないと本当のところは見えてこないかもしれない。しかし、どの程度の時間が要るのかは、はっきりしないのだが。

図2-9

LAN構成図9

さて、オーディオ用の枝3本をPR-500MIに戻した。
450G9にLANアイソレータであるLNX-007Lを追加する。ベール1枚、音のレベルが上がる。上がるもんなんだね。

ここまでやってきて、安価で非力なハブを多用している場合、これらに負担をかけない配慮が大事なんだろうと思われたので、配列を変えることにした。

図2-10

LAN構成図10

ハブの中で信号がなるべく単純な経路で行き来するように、ということだ。
PR-500MIから出るオーディオ用の枝は1本にする。ハブを数珠繋ぎにして、そこにサーバーを吊るす。デイジーチェインという繋ぎ方だ(逆に1つのハブに複数のサーバーを集めるみたいなのは、スター型配列という)。
これが、今までで一番、いいような気がする。音色の美しさが際立つ。
なるほど、こうやって使うものだったのか、という感じ。

いや、いやいや、、、こういうのは時間をかけて視聴しないと、ほんとうはどっちがいいのか分からないものだ。
なんだか、、、怪しいし、、。

図2-11

LAN構成図11

apu2の枝を、PR-500MIに戻してみる。こっちのほうが、落ち着いていて、音の輝きが自然だと思う。

いや、、、難しいね、これは。
たぶん、スイッチングハブの性能、性格と、各サーバーの性質、繋ぎ方、いろんな要素で音が変わる。
どうすれば良くなるなんて、簡単には言えないと思った。

図2-12

LAN構成図12

PPAP関連のサーバー(450G2とapu2)をPR-500MIからデイジーチェインで繋ぎ、Mac miniのみを他の枝に。

今のところ、これが一番いいかな。
オーディオ関係全部をデイジーチェインで繋ぐのは、多分、伝送の負担があると判断した。なんだか、そんな感じの音なのだ。

まだ課題はある。

NASをどうするかということについて、まだ手を付けていない。動かすには置き場所を作らないといけないということがあるのだけど。
この位置でいいのか。
現状でも、音は普通に良くなっている。ストリーミング音源と比較してどうかというのも、NASの方が若干いいというのは、配置を変える前と変わらない。
これをどうするかは、とりあえず他をどうするかを見極めてからでも遅くない。

あと、無線接続になってしまっているテスト系mpdサーバーをどうするか。現在でも時々、音が途切れる。
上手く繋ぐことが出来たら有線の方が望ましいだろう。
そのうち様子を見て、メイン系のmpdサーバーが繋がっているハブに繋いでみようと思う。メイン系とテスト系を同時に動かすことはないから、ハブにとって大きな負担の増加にはならないのではないか。
以前の有線接続での不具合は、1つのハブにLMSサーバーとテスト系mpdサーバーが繋がっていたのが原因だと考えている。転送処理するデータが多く複雑になるので、非力なハブには負担が大き過ぎたのだろう。1つのハブで動くサーバーが1つなら、大きな負担にならないと思う。

LANアイソレータ、LNX-007Lは今の位置でいいのか。
どんどん増やせばいいというのでは面白くない。どこに繋ぐのがいいのか考えてみたいところ。

そういうわけで今更だけど、ハブやネットワークで音が変わるというのは、かなり重要な要素みたいだ。
オーディオ用のハブにニーズがあるのも宜なるかな、だ。

今回は、ここまで。

Posted at 21:47 in audio_diary | WriteBacks (0) | Edit Tagged as:

Jan 03, 2025

オーディオ状況報告(2025.01.03.)

前回のエントリーでは、テストシステムで、CD同等の44.1kHzを鳴らしてみる試みについて書いた。
音はそこそこ聴けるようになった。しかし完全に安定しているとは言えず、ときに音が途切れるような感じがする。

ここ数ヶ月、44.1kHzを聴いてきて、最初に感じていたのは優秀録音音源のありがたさだ。
libsamplerateで384kHz以上にアップサンプリングするメインシステムを使っていて感じていたのは、録音が悪い音源って実はあんまり無いよね、ということだった。大抵の音源が気持ちよく聴ける。
それが、44.1kHzだとそうはいかなかった。
大抵は不満が出る。優秀録音音源は、オアシスのように感じられた。それでもメインシステムには到底及ばなかった。
それが、44.1kHz PPAP直結にすると、メインシステムほどではないけど、多くの音源で不満が少なくなる。
そして、優秀録音音源は、ほんとうに気持ちよく聴けるようになる。これってメインシステムだっけ?という音がする。アップサンプリングなんてしなくても44.1kHzでいいんだよ、という見解が、すごく説得力を持って迫ってくる。
しかし、この差異は、なんで生じるんだろうかね。

久しぶりにメインシステムを聴いてみたら、なんだかしゃきっとしない。おかしいなあ、と考えるうち、PPAP Back Endのapu2d4に銅板仮想アースを繋ぎっぱなしだったことを思い出す。これは1、2週に1回ほど外してやらないと、副作用が蓄積するのだ。数ヶ月、繋ぎっぱなしでは音が濁ってしまう。
外して暫く待つうちに、本来の音が戻ってくる。
44.1kHzよりもいい音だけど、差はかなり縮まっている。

もっと多くの44.1kHzを満足できる音質で鳴らせるシステムを作れないだろうか、というのはある。
ひまがあったらやれたらいいなあ、とか思う。そんなのは音質に定評のあるディストリビューションを使えばいいじゃないかという考えもあろうけど、自分でやってみるというのが僕にとってのオーディオらしい。趣味だからそれでいいのだ。
しかし、ひまがないなあ。

とりあえず、前エントリーに書いたようなFrontとBack-endの直結を試みたが、上手くいかなかった。
FrontにnfsでマウントしたNAS音源は問題なく鳴らせるのだけど、upmpdcliがmpdを認識しない。つまり、LMSサーバーからupnpで送り込むストリーミング音源を受けられないのだ。これは権限の問題らしいんだけど、解決策がはっきりしない。仕方がないので、Middle-end経由に戻している。
音質については、Middle-end経由と比較して特に優れているという印象はなかった。

しかし、こうなってくると、何でMiddle-end経由だとupnpを伝送できるのか、よく分からない。
いろいろとすっきりしないが、様子見だ。

システム構成図

現在のシステムはこんな感じ。今回からIPアドレスを書き込んである。
Roonが外れたので、以前よりはすっきりしている。まだごみごみしている。しかし、あんまり直ぐには手を入れるつもりはない。

今年も新年が来た。歴史が続く限り新年は来る。

やっておれんわとか、なんとかならんのかとか、感じることもあるけどそんなことも言っておれない。
ぼやくのは正月で終わらせたい。
また普段の生活が始まる。それだけでも自分は恵まれている。

Posted at 00:12 in audio_diary | WriteBacks (0) | Edit Tagged as: ,

Dec 12, 2024

テストシステムのPPAPで、44.1kHzを鳴らしてみる

2025.08.24. 今更だけど追記。
問題は解決したようなので、エントリーにした。
伝送速度が問題のようだ。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20250421a.htm

前回のエントリーで、最近はCD同等の音源をアップサンプリングせずに聴いていると書いた。
メインのシステムではなく、テストに使ったりするのが目的のサブシステムだ。
PPAPで、Middle Endを使わず、Back EndはRas Pi2。
満足できる音色ではない。

Ras Pi2を、直結にしてみたいと書いたが、やってみた。
mpdサーバー兼PPAP Front(ノートPC)、PPAP Middle End(apu2c4)、Back End(Ras Pi2)、という流れで、後半のMiddle End、Back Endを直結し、家庭内LANからネットワークを切り離す。

音は、明らかに良くなった。
正直、ここまで変わるのかと驚いた。
淀みが消えて透明感が増して、音自体の強さが立ち上がってくる。SNが改善してきめ細かな階調。ザラつきが取れてシルキーだ。見通し風通しが良くなり、騒がしくなく耳あたりがいい。
384kHzのデータを流しているメインシステムのapu2d4を直結化したときよりも、聴感上の変化はずっと大きい。

ただ、音全体のクオリティアップに比して情報量の改善が少なく感じて、なんだか違和感がある。もう少し細かい音が聴こえるはずだろう、と感じてしまう。うちのリファレンスは384kHzで、それに僕が慣れてしまってるので、仕方がないかもしれない。

大きな問題は、操作に音が着いてこないということ。
つまり、コントローラーであるノートPCからボリュームを変えたり曲を止めたりする操作をしても、音への反応が10秒以上遅れる。数秒なら我慢できるが、10秒を超えたら、なかなか不便だ。

以前、こんなんだったかな、と思って過去のエントリーを読み返してみた。
PPAPを始めた頃は、どうも既にアップサンプリングして24/96で使っていて、44.1kHzではどのようだったかは書いていない。
去年の秋に44.1を試みた記録がある。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20231031a.htm
アップサンプリングなしでは使い物にならないということで、このときは操作に数十秒(!)かかるとか、書いてある。

そんなこんなで、考えられるのは、PPAP middle Endを中継すると操作への追随が遅くなるらしいということ。
先日までMiddle Endなしで使っていたときには、こんなことはなかった。

どうしようかね。
まあ、しかたない。当面は多少の不便は気にしないことにしようか、、。
とか思ってたんだけど、聴いていたら、ときどき途切れそうになるのが分かったり、やはり不安定だ。いずれ、なんとかせにゃあおえん。

そんなわけで、44.1kHzで使っているmpdサーバー、EliteBook 820G2を、なんとかすることにした。

策は、WiFiで家庭内LANにつなぎ、有線LAN端子から直結でRas Pi2に出力することでネットワーク分離する、というもの。
Middle Endを排除することで操作性は改善できる筈。

問題は、いらないパケットが来ないかわりに、ノートPCというノイズ源がBack Endの傍に来る、ということだ。
メリットが上回るかどうかはやってみないと分からない。
最近は機械のノイズが多いなら光で繋げばいいじゃんというのもあるけど、今回はそこまではしない。

という方針で、とりあえず820G2を無線LAN接続にする。
wifi.tczというのをTiny Coreにインストールして設定。詳細は、下記エントリーを参照。piCoreの記事だが似たようなものだ。今回はtceコマンドで見ることができるwifi.tczの説明書きどおりで、問題なく動いた。
http://blown-lei.net/endive/blosxom.cgi/pc/20211109a.htm

さて、無線LANで繋いでみたので、ためしに音を出してみる。
すると、なんと、操作に動作が遅れる問題が、解消した。解消してしまった。

どうも有線接続に問題があったようだ。これは問題である。
去年の秋に上手く行かなかったときに使ったのは、同じサーバーだ。
しかし、だったら、なんで、アップサンプリングしたら問題なく動くんだろう。
分からない。
しかたがないので、当面、よしとする。

音は、有線の時よりも、落ち着いた。
音の強さが減って、大人しくなった。自然になったかもしれない。先に情報量の少なさに違和感を感じると書いたが、感じなくなった。

どうやら、システムが安定しないときのデジタルオーディオの眼光凛々の剣豪の効果が出ていたらしい。
眼光凛々の剣豪というのは下記エントリーを参照。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20161025a.htm
しかし、これは本当は、なんなんだろうかね。
気を付けないといけない。

剣豪はいなくなったが、十分、満足できる音だ。
ネットワーク分離の効果は大きく、それだけでも相当のノイズ対策になったと思われる。今回は勉強になった。

Posted at 23:12 in audio_diary | WriteBacks (0) | Edit Tagged as:

Dec 06, 2024

RoonとQobuzをやめた、他いくつか

前回のエントリーアップが8月末で、暫く間が空いた。
何もしてなかったわけではないけど、まあ、急いでエントリーにしてアップするようなものでもないというか。

9月中旬、ROONをオーディオシステムから撤去した。
昨年の夏に使い始めて、最初は色々試したが、音質上はあんまり使用する意味を感じられなかったので、徐々に使う機会がなくなって、月々2千円程も支払うし、使えたらライブラリの見え方も違うかなと思っていたQobuzがなかなか来ないし、なので当面、辞めることにした。
また使う機会が有るようなら再加入する。

そうこうしていたら、Qobuzが日本に上陸した。
10月下旬に、e-onkyoから引継ぎ登録して、無料お試し期間1か月使って、Deezerと比較。

まず、うちのLMSサーバーではQobuzとDeezerは共存できないことが分かった。サーバーがMac mini 2010で古いので非力なのかもしれない。両方のプラグインを入れていたら、音が出なかったり音質が劣化したりする。2択ということだ。

音源の数はDeezerのほうがやや多いかな、と感じた。
日本のポップミュージックは昔は圧倒的にSpotifyが強かった印象で、うちではこの分野はSpotifyに任せる気でいた。しかし最近、差が縮まってきている気がする。Deezer、Qobuzの比較だと、僕が比べた範囲では、Deezerのほうが幾分多かった。
他のジャンルの音源での比較となると、あまりに多いので、よく分からない。しかし、QobuzにはWalter Tignerや土取利行がないとかALM Recordsがないとか、若干、Deezerの方が多いのか、というのが個人的印象。チェックしていたら、DeezerからMark Nauseef の Gazing Point とか個人的に重要な音源が消えていたりお気に入り音源のリンクが切れているのに気付くとか、いろいろある。消えたり出たりするのはたぶん、どっちでもあることだ。なにしろ双方とも音源数は膨大なので、比較してどちらを選ぶという決定打にしにくいような気がする。

音質はうちのオーディオ環境ではDeezerのほうがいい。LMS上で異なるプラグインを使うので有り得ることだ。
Qobuzハイレゾのメリットは音源によっていろいろ。DeezerのCD同等音源と比較しても良いと言えるのは意外に少なかった。
2LのMQAはQobuzでもMQAだった。全部確認したわけではないけど。

Qobuzのウェブプレーヤー、ダウンロードサイトはレーベルで検索ができる。これはすごくありがたいが、完全ではない。まだDiscogsを使う意味はある。
検索は、Qobuzのほうが良さそうな気がする。なんとなくだが見え方、現れ方が洗練されている。しかしあくまで見え方の話だ。ウェブブラウザへの負荷が多いようなら音質に影響する可能性がある。
実際、ウェブプレーヤーの音はDeezerのほうがクリアで見通しがいい。これはノートPCにJBLのbluetoothイヤホンを使っての比較。

費用はDeezerのほうが安い。

総合的判断で、うちではストリーミングはDeezerを残すことにした。
つまりDeezerとSpotifyということで、以前と同じだ。Qobuzはユーザー登録を継続したままストリーミングのみ終了することができるので、音源のダウンロードと音源検索に使っていくつもり。ときに他にない音源があったりする。

12月初旬、LMSサーバーのFedora 39 (Mac mini 2010) を、41にアップグレードした。
参考にしたのは下記のサイト。
How to Upgrade Fedora 40 to Fedora 41
https://www.tecmint.com/fedora-upgrade-guide/

コマンドをうちのFedoraの.bash_historyから転記。

sudo dnf upgrade --refresh
sudo dnf install dnf-plugin-system-upgrade
sudo dnf system-upgrade download --releasever=40
sudo dnf system-upgrade reboot

sudo dnf upgrade --refresh
sudo dnf system-upgrade download --releasever=41
sudo dnf system-upgrade reboot

これでオーケー。LMSサーバーも問題なく動いている。

最近の試み?として、アップサンプリングせずに鳴らすというのを続けている。
PPAPも、Middle Endを使わずBack EndはRas Pi2という、先祖返りした構成で聞いている。
何故そんなことを始めたのか、自分でもよく分からないんだけど、メインシステムは現状で行きつく処まで行った観があるので、一種のフィールドリサーチみたいなものかもしれない。

うちのリファレンスの音(libsamplerateで384kHzにアップし3段階のPPAPでネットワーク分離)と比べたら、明らかに聴き劣りする。
聴いているうちに、この音をもう少し良くする方法は無いかと考え始める。
そこで、ネットワーク分離が出来るんじゃないか、と気が付いた。
現在、Middle Endに使っているapu2c4には、使っていないLAN端子が1つ余っている。ここからRas Pi2に伝送することでネットワークを分離できる。それが出来たら、家庭内LANの中を巡っている関係ないパケット(マルチキャスト、ブロードキャストのパケットは、ネットワーク全体に流れてネットワークオーディオの負荷、ノイズ源となる)を遮断できる。

と、こんなことを書いていながら、まだ手を付けていない。
そのうちやろうと思っている。

Posted at 19:21 in audio_diary | WriteBacks (0) | Edit Tagged as: , ,

Aug 30, 2024

書くことが無いので、libsamplerate (SRC) によるアップサンプリングの設定変更で音質が変わるかどうかを確認した

さて、世の中はいろいろ面倒だが、うちのオーディオは泰平を貪るがごとく鳴っている。
LMS周りの懸案はあるが、それを除けばこれ以上何をしようか、という雰囲気だ。まあ、課題を探せば見つかるんだろうけど、取り立ててしたいことがない、というか。
そういうわけで、こういうときに、改めて音色の検証をしておくのもありかな、と思った。

検証にあたって使用するコンポの状況は以下。下流から上流へ。

スピーカー
JBL / 4425mk2
現行品4429の源流。発売当時のネット上の評価は低かったが、そんなのはあてにならない。
FOSTEX / T900A
スーパーツイーター。アッテネーターを排除したチャージカップルドネットワークで繋いでいる。情報の減衰が少ない。
https://www.fostex.jp/products/t900a/

スピーカーケーブル
協和電線 / 5.5sq Cabtyre
キャブタイヤは昔から使っている。昔々に他のケーブルも聴いたこともあったと思うけど、長々これを使っている。

アンプセレクター
ORB / SC-S0 NOVA
他の同等品の機械と比較したことはないけど、いいんじゃないかと思う。
https://www.orb.co.jp/audio/products/mcs0nova.html

コネクターケーブル
HS&T / VVF 1.6mm LFV 2芯
セレクターとアンプを繋ぐのにVVFを使っている。径1.6mmの単線。ごつい針金で固い。

アンプ
Mytek / Brooklyn AMP
メイン使用のSM-SX100の代打だが、ちょくちょく気が向いたときに使う。パワーアンプでボリュームが付いていないので、音量調整は上流のMPDで行う。 HiFi度はSX100に僅かに劣るが、今回はこれ。
現行品は、Brooklyn AMP+。幾つか読んだレビューによるとSX100の音に近付いている様子。
https://www.mytekdigital.jp/products/brooklyn-amp-plus/

固定抵抗アッテネーター
TOMOCA / AT12
業務用のXLRアッテネーター、12dB減衰。これなしではMPDのデジタルボリュームを大きく絞らないといけなくなるので。アンプの端子に差しっ放しでは気分的に心許ないので、さざれ水晶を綿袋に詰めたインシュレーターで支えている。
https://www.tomoca.co.jp/brand/tomoca/tom_att/at-12/

インターコネクトケーブル XLR
wireworld / OASIS 6 使いやすいので使っている、かな。実はあんまり他と比較してというのはしていない。

コネクターパネル
TOMOCA / P-112N
業務用のコネクターパネル。ラックにネジ止めしている。
これにXLRコネクターを取り付けて、ケーブルの抜き差しでDACとアンプの接続切り替えに使っている。ケーブルをラックに固定する形になることが振動対策になるようで、接点が増えるにもかかわらず音質劣化を感じない(ちなみにパネルを使わずに2本のケーブルを繋いだら明瞭に音質は劣化する)。
https://www.tomoca.co.jp/brand/tomoca/tom_bncpatch/p-112n/

コネクターケーブル XLR
HS&T / VVF 1.6mm LFV 3芯(脱シースなど加工)
コネクターパネルとDACを繋ぐのにVVFを加工して使っている。径1.6mmの単線、ごつい針金で固いので加工は結構大変だった。
作成した当時、エントリーにしている。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20210623a.htm

DAC
Musician / Pegasus R2R DAC
位置付けとしてはADI-2 DACのサブだけど、これもぼちぼち使う。
新型が出ていて、現行品はPegasus II R2R DAC。
http://www.musician-audio.com/en/col.jsp?id=122

USBケーブル
Zonotone / 6N・USB-Grandio 2.0
これは昔の別冊ステレオサウンドの企画で付いていた4本のUSBケーブルのうちの1本。
ちなみにAIM電子 SHIELDIO UACをS.M.S.L M500に、SUPRA USB 2.0をADI-2 DACに、WIRE WORLD ULTRAVIOLET 7 USB AUDIOをヘッドフォンシステム用に使っている。
https://www.fujisan.co.jp/product/1281691479/b/1017003/

USBアイソレーター
HuMANDATA / USB-029H2-RP
アイソレーター兼コネクターとして使っている。つまりPCトランスポートとDACをケーブルの抜き差しで切り替える。
https://www.fa.hdl.co.jp/jp/isolator/musb-highspeed/musb-029h2-rp.html

USBケーブル
PCトランスポートとUSBアイソレーター間は、市販の一般的なものを使っている。高価なオーディオ用を使う気は今のところない。

PCトランスポート
Raspberry Pi / 2B / piCore 14.1 PPAP Back-End
非力なワンボードPC。正直、これといった電源への配慮やノイズ対策はしていない、素のままだ。6年前にpiCore 9でPPAPを試みた時にはノイズが乗るなどして上手くいかなかったが、今回、使用を復活してみて、全く問題なく384kHz/32bitの信号を伝送できている。当時、何が悪かったのかは、正直、よく分からない。

LAN
ここは、オーディオ的な対策はほとんどしていない。一般的なスイッチングハブで比較的ましなのかな?というのを使っている、というぐらいのものだ。

MPDサーバー兼UPnPレンダラー
hp / EliteBook 820G2 / Tiny Core 64 11.1 PPAP Front
ストリーミングやNAS音源からの44.1/16の信号を、libsamplerate + MPDでアップサンプリングしPCトランスポートに送る。
デジタルボリュームで音量調整を担う場所でもある(Max 100で、クラシックやジャズの音源は殆どが50以上、多くが70前後になる。ポップ系だと、ときに30以下になることがある)。
今回、ここのMPDのアップサンプリングの設定を変えて、音質の変化を聴いてみようということ。

ざっと、こんな感じ。
思ったよりも、前振りの文面が長い。実は今回、前振りのほうがずっと長い。

さて、まず、アップサンプリングを止める。
/home/~/.mpdconfの設定は、「audio_output_format "44100:32:2"」にする。
なんで44.1/16なのに、44100:16:2じゃないのかというと、なぜかそれだと音が出ないからだ。44100:32:2だと音が出る。これはDACを繋いだ時に、Back-EndのRas Pi 2Bにsshから cat /proc/asound/card0/stream0 を打った時に表示される「S32_LE」に合わせたもので、そういう意味では、理屈は合っている。

この状態で、44.1/16の信号がビットパーフェクトで送信されているのかどうか。
出力信号のチェックとして、44.1/16のMQAデータを44100:32:2の設定でSMSL M500に送ってみると、MQAと認識し再生する。ということは、音声のデジタル信号はビットパーフェクトで送信されていると考えていい。

さて、そういうわけで、NASやDeezerストリーミングから、44.1/16のPCMデータを前述のシステムで鳴らしてみる。
アップサンプリングなしのビットパーフェクトデータということだ。
正直、普段聴いているより音色の肌理が粗い。ざらっとしていて、やや耳障りだ。これしか聴いてなかったら多分、これでいいと感じそうではあるのだけど。

「audio_output_format "88200:32:2"」に。
だいぶ良くなる。肌理が細かく、抜けが良くなる。情報量が増えて埋もれていた音が聞こえてくる。音声のニュアンス、リアリティが向上する。
libsamplerateによる改善は、そういう感じだ。

「audio_output_format "192000:32:2"」に。
更に良くなる。
ここで一応、断っておくが、libsamplerateによるアップサンプリングに際しては、もとの周波数の整数倍かどうかは、気にしなくても良い。リサンプラーの種類によっては、整数倍じゃないと音が良くなかったり、悪くなる場合があるが、libsamplerateは指定した周波数どおりに音質が上がっていく。そういう仕組みなのだ。

「audio_output_format "384000:32:2"」に。
かなり良くなる。普段、聴いている音にかなり近い、というか、機材をSM-SX100とADI-2 DACにしたら、もう少しHiFi度が上がる。Brooklyn AMPとPegasusは、ややざっくばらんな感触だ。

想定内というか、やっぱりそうだよな、という結果だった。
以前に比べたら、ノイズ対策も増やしているので、もしかしたらアップサンプリング無しと有りとで、音質の差が縮まっていたりしないかな、と思ったんだけど、そんなことはなかった。

今後、アップサンプリングをしないとして、
1.更なるノイズ対策や電源の強化を行えば、今の機材でも44.1/16の音をハイレゾのように鳴らせる
2.更なるノイズ対策や電源の強化を行っても、今の機材では44.1/16の音をハイレゾのように鳴らせない

3.機材を良くしたら、それだけで、44.1/16の音をハイレゾのように鳴らせる
4.機材を良くして、更なるノイズ対策や電源の強化を行えば、44.1/16の音をハイレゾのように鳴らせる
5.機材を良くして、更なるノイズ対策や電源の強化を行っても、44.1/16の音をハイレゾのようには鳴らせない

さて、どれだろう。
どれでもいいっちゃ、いいんだけど。うちでは当面は今の機材でアップサンプリングして鳴らすだろうから。

Jul 15, 2024

オーディオ状況報告(2024.07.15.)

前回エントリーから1ヶ月。
LMSのサポートが頑張り、Deezerは現在、使えている。

しかしDeezerとLMSが連携しているわけではないので(LMSはDeezerから無視されている。たぶん、良くも悪くも)、いつまたどうなるか、保証は出来ないようだ。そして、こういったことは他のサブスクサービスについても同じ状況、ということだ。
LMSはうちのシステムでストリーミング音源を聴くにあたり、極めて便利で音質上も無くてはならないものなので、多少のリスクはあっても使用継続していく方針。

うちのシステムの現状は、以下のような感じ。

システム構成図

いろいろ追加になって、図も大きくなっている。
以下、変更点を書いていく。

時系列でいきますか。
Daphile(LMS)でDeezerが使えなくなった頃、WiiM Miniを入手している。これの光出力に繋いでMQAを再生するためにS.M.S.L M300SEを入手した(現在はDeezerが使えるようになったので、出番は少なくなっている)。
同時期に、piCorePlayerが不調になり、外してしまった。
このときの経緯は、下記エントリーで書いている。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20240216a.htm

次に、古くなり不調になったサーバーをあれこれ入れ替え。
Logitech Media Server(現Lyrion Music Server)をMac mini (2010 mid)にインストールした。OSは、あれこれあってFedoraである。
Daphileは、この頃から外している。
経緯は下記エントリーに記載。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20240310a.htm
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20240324a.htm
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20240405a.htm

なんか、ごちゃごちゃしていて読みにくい。実際、この頃はごちゃごちゃ面倒臭かった。

さて、Roonもあるのだけど、実はうちでは殆ど運用していない。
一番使っているのは、Deezer-LMS-MPDで、次にNAS-MPD。
それでもシステムとして保持しておいた方がいいのかな、と思って、月々のお金を払っているような状況だ。Deezerがどうなるか分からないし、Qobuzが使えるようになったら、というのもある。

これも、なんやかやで、Raspberry Pi 2b が2台、Roon BridgeとPPAP Back-Endが追加になっている。
経緯は下記エントリーに記載。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20240524a.htm

信号伝送経路が増えたので、コントローラーも増えている。
650 G1からLMS、MPDを操作することが多いんだけど、タブレットからRoon、WiiMを操作することもたまにある。Mac mini M2は、Roonで細かい操作をするのに使うので、図に書き込んでいる。

MPDサーバーにはUSB HDDドライブを音源倉庫として繋いでいるんだけど、結果、使っていない。音が良いのは確かなので、手が空いていったときにデータを入れていきたいと思っている。しかし、何時になるやらだ。

ざっとこんな感じ。
ごちゃごちゃしているのでもう少し整理したいけど、それも面倒で、当面、こんなでいくと思う。

Posted at 16:30 in audio_diary | WriteBacks (0) | Edit Tagged as: , ,

Jun 11, 2024

新しいLMSとDaphileとDeezerプラグインについてメモ

今回は、メモだけだ。

Logitech Media Serverは、Lyrion Music Serverに名称変更した。3月末のことらしい。

Lyrion Music Server
https://lyrion.org/

Lyrion Community
https://forums.slimdevices.com/forum/user-forums/general-discussion/1691649-please-welcome-lyrion-music-server-request-for-artwork-contributions

Wikipediaもいつの間にか書き換えられている。

https://en.wikipedia.org/wiki/Logitech_Media_Server

Lyrion Music Server (formerly Logitech Media Server, SlimServer, SqueezeCenter and Squeezebox Server) is a streaming audio server supported by the LMS community and formerly supported by Logitech, developed in particular to support their Squeezebox range of digital audio receivers.

どうやら、Logitechのサポートから完全にコミュニティによるサポートに移行するにあたり、名称変更したらしい。

そんなLMSなんだけど、4月下旬の時点で、Deezerのサポートが回復している(但し、DeezerはPremium、Duo、Familyと、3つのプランがあるのだけど、Premium以外に対応出来るのかどうかは分からない)。

Daphileも、LMSのアップデートを受ける形で5月上旬にアップデートされて、Deezerが使えるようになったようだ。
同時に、Spotify、TIDAL、Qobuz、YouTubeへの対応も戻った様子。

https://daphile.com/
https://daphile.com/firmware/stable/CHANGES

2024-05-09 version 24.05 (x86_64, x86_64-rt & i486) changes:
- Sorry for the long delay....
- LMS update to 8.5.2 (Git commit 1b0ebb5 on May 9th, 2024)
- Mysqueezebox.com integration removed in LMS 8.5
- Perl upgrade to 5.38 version
- Perl Crypt::Blowfish added to improve Deezer plugin performance
- Streaming plugins tested to work for now:
  - Spotty v4.10.1
  - TIDAL v1.4.6
  - Qobuz v3.5.0
  - Deezer v2.81.4
  - YouTube v0.212
(# snip #)

Deezerプラグインの使い方について、メモ。
ごく簡単に。
下記のurlを参照。

lms-deezer/README · GitHub
https://github.com/philippe44/lms-deezer/blob/main/README.md

Installation

To install the lms-deezer plugin:
1 Open your Logitech Media Server (LMS).
2 Go to the server settings.
3 Navigate to the plugins tab.
4 Search for lms-deezer in the available plugins list.
5 Select lms-deezer and follow the on-screen instructions to install it.

Configuration

After installing the lms-deezer plugin, follow these steps to configure it:
1 Open your web browser and log in to Deezer.
2 Once logged in, open your browser's developer tools (usually F12 or Ctrl+Shift+I).
3 Go to the cookies tab and find the cookie named arl for www.deezer.com.
4 Copy the value of this cookie.
5 Go back to the lms-deezer plugin settings in LMS.
6 Paste the arl cookie value into the designated field.

If the ARL code is not entered, you will be able to browse song lists but will not be able to play the audio files.

今回「ARL code」というのを使うのがちょっとハードルだけど、やってみたら簡単だ。

13日。
こんなエントリーをアップしたら、いきなりLMSがDeezerのアカウントを認証しなくなった。原因は不明。当然、音は出ない。
なんたるこっちゃ。手も足も出ない。出来るのは追記ぐらいだ。

Posted at 00:02 in audio_diary | WriteBacks (0) | Edit Tagged as: , ,

May 24, 2024

古いRaspberry PiをRoon、Mpd、UPnPとかで使おうとしたら

さて先日、Ras Pi 3b+をroon bridgeにしたのだけど、これにmpd、upmpdcliをインストールする前に、まずは、かなり旧式になったRaspberry Pi B+で何かできないかと考えた。B+はいくつか残っていて、使えるものなら使いたい。
そんなことを考えたせいで、あれこれといじることになった。

以下、顛末の記録。
このエントリーは長い。やたら長い。
自分でもどうかと思うが、備忘録だからある程度仕方ない。

というわけで、mpdなど諸々のインストールをどうするか。
mpd
https://www.musicpd.org/download.html

https://www.musicpd.org/news/2023/12/mpd-0-23-15-released/
mesonが要る。
https://www.musicpd.org/news/2018/10/mpd-0-20-23-released/
こっちは要らない。

libmpdclient https://www.musicpd.org/news/2023/12/libmpdclient-2-22-released/
こっちはmesonが要る。
https://www.musicpd.org/news/2021/11/libmpdclient-2-20-released/
こっちは要らない。

それから、 upmpdcli https://www.lesbonscomptes.com/upmpdcli/
https://www.lesbonscomptes.com/upmpdcli/pages/downloads.html
https://www.lesbonscomptes.com/upmpdcli/pages/upmpdcli-manual.html#UPMPDCLI-BUILDING
こちらも最新はmeson。
autotoolsでインストール出来るのは前のバージョンだ。

piCore、Tiny Coreでは、インストールしたソフトウェアをtczファイルという形式に固めて格納する。mesonでインストールすると、それがやりにくいのだ。
2019年にはそうだった。
今はどうなっているだろう。
最新でやってみるか、mesonでやろう。ということで、やってみるということだ。

まず、普段使用のPCにlibmpdclient-2.22をダウンロード。
https://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.22.tar.xz
展開し、README.rstを確認。必要な環境を確認。

You need:
- a C99 compliant compiler (e.g. gcc)
- `Meson 0.56 `__ and `Ninja `__
Run ``meson``:
meson setup output
Compile and install::
ninja -C output
ninja -C output install

次にmpd。
https://www.musicpd.org/download/mpd/0.23/mpd-0.23.15.tar.xz
README.mdを確認。
For basic installation instructions
[read the manual](https://www.musicpd.org/doc/user/install.html).
ネット上の説明を読めということらしいので、読む。

In any case, you need:
a C++17 compiler (e.g. GCC 8 or clang 7)
Meson 0.56.0 and Ninja
Boost 1.58
pkg-config

次、upmpdcli。
https://www.lesbonscomptes.com/upmpdcli/pages/upmpdcli-manual.html#UPMPDCLI-BUILDING

For building from source, you will need a C++ compiler with C++17 support, and the development packages for the supporting libraries: libcurl, libmicrohttpd, libmpdclient, and possibly expat, depending on configuration options.
Also the Python modules for streaming service support use the python3-requests package, so you may need to install it (it is only needed at run time).
Older releases of the packages used the GNU autotools for building. Newer releases (and current git code) use meson and ninja. The change releases were libnpupnp 6.1.2, libupnpp 0.26.3 and upmpdcli 1.8.10.

(グーグル翻訳)
ソースからビルドするには、C++17 をサポートする C++ コンパイラーと、構成オプションに応じてサポート ライブラリ (libcurl、libmicrohttpd、libmpdclient、および場合によっては expat) の開発パッケージが必要です。 また、ストリーミング サービス サポート用の Python モジュールは python3-requests パッケージを使用するため、インストールする必要がある場合があります (実行時のみ必要です)。 パッケージの古いリリースでは、ビルドに GNU オートツールを使用していました。新しいリリース (および現在の git コード) では、meson と ninja が使用されます。変更リリースは、libnpupnp 6.1.2、libupnpp 0.26.3、および upmpdcli 1.8.10 でした。

必要な環境がある程度分かったところで、下記からpiCoreのイメージをダウンロード。Ras Pi b+なので、armv6。
http://tinycorelinux.net/14.x/armv6/releases/RPi/
http://tinycorelinux.net/14.x/armv6/releases/RPi/piCore-14.1.0.zip

リポジトリは下記。
http://tinycorelinux.net/14.x/armv6/tcz/

imgファイルをmicroSDに焼いて、cmdline.txt にhost=pC141bpと追記、config.txtを編集しイヤホンジャックを止めて、ラズパイに刺して電源を入れる。無事、起動した。
sshでログインし、filetool.sh -bでsshの鍵を保存する。
パーティションを拡張。2Gも足しとけばよかろう。

libmpdcliantの要求で、gcc、etcをインストール。
ついでに、どうせ要るであろうsquashfs-toolsもインストール。
tce-load -wi gcc.tcz gcc_libs.tcz gcc_libs-dev.tcz gcc_base-dev.tcz meson.tcz ninja.tcz squashfs-tools.tcz

mpdの要求で以下、インストールだ。
tce-load -wi boost-dev.tcz boost.tcz pkg-config.tcz

upmpdcli,以下、インストール。
tce-load -wi curl.tcz curl-dev.tcz libmicrohttpd.tcz libmicrohttpd-dev.tcz expat2.tcz expat2.tcz expat2-dev.tcz

加えて、PPAPで動かすつもりならnmapをインストールする必要がある。
あと、alsa関連も一応。
tce-load -wi nmap.tcz
tce-load -wi alsa-modules-6.1.68-piCore.tcz alsa.tcz alsa-utils.tcz alsa-utils-doc.tcz alsa-utils-locale.tcz alsa-plugins.tcz alsa-plugins-dev.tcz

以上で、準備完了、かな。

インストールは、libmpdclient、upmpdcli、mpd の順序で行う。

libmpdclient

wget https://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.22.tar.xz
tar Jxfv *tar.xz

tc@pC141bp:~$ ls
libmpdclient-2.22/    	libmpdclient-2.22.tar.xz
tc@pC141bp:~$ ls *22
AUTHORS        	README.rst     	libmpdclient.ld	src/
LICENSES/      	doc/           	meson.build    	test/
NEWS           	include/       	meson_options.txt  test.ld
tc@pC141bp:~$
tc@pC141bp:~$ cd *22
tc@pC141bp:~/libmpdclient-2.22$ mkdir ../libmpdclient
tc@pC141bp:~/libmpdclient-2.22$ meson . ../libmpdclient
The Meson build system
Version: 1.1.0
Source dir: /home/tc/libmpdclient-2.22
Build dir: /home/tc/libmpdclient
Build type: native build
Project name: libmpdclient
Project version: 2.22

meson.build:1:0: ERROR: Unable to detect linker for compiler `cc -Wl,--version`
stdout:
stderr: collect2 version 12.2.0
[cannot find ld] -plugin /tmp/tcloop/gcc/usr/local/bin/../lib/gcc/armv7l-unknown-linux-gnueabihf/12.2.0/liblto_plugin.so   # ( snip ) #
collect2: fatal error: cannot find 'ld'
compilation terminated.

A full log can be found at /home/tc/libmpdclient/meson-logs/meson-log.txt
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
tc@pC141bp:~/libmpdclient-2.22$

エラーを吐いて止まってしまった。何が足りないんだ。
ldってなに。
https://stackoverflow.com/questions/35970824/gcc-collect2-fatal-error-cannot-find-ld
これを参考にする。
tc@pC141bp:~/libmpdclient-2.22$ export PATH=$PATH:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin
これは効果なし。
gcc入ってるから要らないと思ったけど、clang入れてみるか。

tce-load -wi clang.tcz

これで、意外にたくさんのtczファイルが追加インストールされる。
出来るかな。

tc@pC141bp:~/libmpdclient-2.22$ meson . ../libmpdclient
The Meson build system
Version: 1.1.0
Source dir: /home/tc/libmpdclient-2.22
Build dir: /home/tc/libmpdclient
Build type: native build
Project name: libmpdclient
Project version: 2.22
C compiler for the host machine: cc (gcc 12.2.0 "cc (piCore) 12.2.0")
C linker for the host machine: cc ld.bfd 2.39
Host machine cpu family: arm
Host machine cpu: armv6l
Checking for function "strndup" : YES
Checking for function "getaddrinfo" : YES
Configuring config.h using configuration
Compiler for C supports arguments -Wcast-align: YES
Compiler for C supports arguments -Wcast-qual: YES
Compiler for C supports arguments -Wdouble-promotion: YES
Compiler for C supports arguments -Wfloat-equal: YES
Compiler for C supports arguments -Wmissing-declarations: YES
Compiler for C supports arguments -Wmissing-noreturn: YES
Compiler for C supports arguments -Wmissing-format-attribute: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Wno-deprecated-declarations: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Wredundant-decls: YES
Compiler for C supports arguments -Wshadow: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wunused: YES
Compiler for C supports arguments -Wwrite-strings: YES
Compiler for C supports arguments -Wunreachable-code-aggressive: NO
Compiler for C supports link arguments -Wl,--version-script=/home/tc/libmpdclient-2.22/test.ld: YES
Configuring version.h using configuration
Build targets in project: 2

Found ninja-1.10.0 at /usr/local/bin/ninja
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
tc@pC141bp:~/libmpdclient-2.22$

警告出てるけどいけたかな。clang、要るんだな。では、ninjaでビルド、インストールだ。

tc@pC141bp:~/libmpdclient-2.22$ ninja -C ../libmpdclient
ninja: Entering directory `../libmpdclient'
[60/60] Linking target example
tc@pC141bp:~/libmpdclient-2.22$

tc@pC141bp:~/libmpdclient-2.22$ sudo ninja -C ../libmpdclient install
ninja: Entering directory `../libmpdclient'
[0/1] Installing files.
Installing libmpdclient.so.2.22 to /usr/local/lib
Installing /home/tc/libmpdclient-2.22/include/mpd/async.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/audio_format.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/client.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/capabilities.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/compiler.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/connection.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/database.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/directory.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/entity.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/error.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/fingerprint.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/idle.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/list.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/mixer.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/mount.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/neighbor.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/parser.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/partition.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/password.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/player.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/playlist.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/position.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/protocol.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/queue.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/recv.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/replay_gain.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/response.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/send.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/status.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/stats.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/tag.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/output.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/pair.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/search.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/socket.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/song.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/sticker.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/settings.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/message.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/binary.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/albumart.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/include/mpd/readpicture.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient/include/mpd/version.h to /usr/local/include/mpd/
Installing /home/tc/libmpdclient-2.22/AUTHORS to /usr/local/share/doc/libmpdclient
Installing /home/tc/libmpdclient-2.22/LICENSES/BSD-2-Clause.txt to /usr/local/share/doc/libmpdclient
Installing /home/tc/libmpdclient-2.22/LICENSES/BSD-3-Clause.txt to /usr/local/share/doc/libmpdclient
Installing /home/tc/libmpdclient-2.22/NEWS to /usr/local/share/doc/libmpdclient
Installing /home/tc/libmpdclient-2.22/README.rst to /usr/local/share/doc/libmpdclient
Installing /home/tc/libmpdclient/meson-private/libmpdclient.pc to /usr/local/lib/pkgconfig
Installing symlink pointing to libmpdclient.so.2.22 to /usr/local/lib/libmpdclient.so.2
Installing symlink pointing to libmpdclient.so.2 to /usr/local/lib/libmpdclient.so
tc@pC141bp:~/libmpdclient-2.22$

おおおおおお、、、どうすべこれ。
よく見たら、

/usr/local/lib/libmpdclient.so.2.22
/usr/local/include/mpd/
/usr/local/share/doc/libmpdclient/
/usr/local/lib/pkgconfig/libmpdclient.pc
/usr/local/lib/libmpdclient.so.2
/usr/local/lib/libmpdclient.so

以上を、取りまとめたら、いいらしい、のかな。めんどくさいなあ、、、

tc@pC141bp:~$ cd
tc@pC141bp:~$ mkdir libmpdclientx
tc@pC141bp:~$ mkdir libmpdclientx/usr
tc@pC141bp:~$ mkdir libmpdclientx/usr/local
tc@pC141bp:~$ mkdir libmpdclientx/usr/local/lib
tc@pC141bp:~$ mkdir libmpdclientx/usr/local/include
tc@pC141bp:~$ mkdir libmpdclientx/usr/local/share
tc@pC141bp:~$ cp -R /usr/local/lib/libmpdclient.so.2.22 libmpdclientx/usr/local/lib
tc@pC141bp:~$ cp -R /usr/local/include/mpd libmpdclientx/usr/local/include
tc@pC141bp:~$ mkdir libmpdclientx/usr/local/share/doc
tc@pC141bp:~$ cp -R /usr/local/share/doc/libmpdclient libmpdclientx/usr/local/share/doc
tc@pC141bp:~$ cp -R /usr/local/lib/libmpdclient.so.2 libmpdclientx/usr/local/lib
tc@pC141bp:~$ cp -R /usr/local/lib/libmpdclient.so libmpdclientx/usr/local/lib
tc@pC141bp:~$
tc@pC141bp:~$ mksquashfs libmpdclientx libmpdclient-2.22.tcz
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on libmpdclient-2.22.tcz, block size 4096.
[=========================================================-] 187/187 100%

Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 4096
    compressed data, compressed metadata, compressed fragments,
    no xattrs, compressed ids
    duplicates are removed
Filesystem size 203.33 Kbytes (0.20 Mbytes)
    32.18% of uncompressed filesystem size (631.84 Kbytes)
Inode table size 1014 bytes (0.99 Kbytes)
    39.56% of uncompressed inode table size (2563 bytes)
Directory table size 701 bytes (0.68 Kbytes)
    63.10% of uncompressed directory table size (1111 bytes)
Number of duplicate files found 0
Number of inodes 60
Number of files 49
Number of fragments 17
Number of symbolic links 2
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 9
Number of hard-links 0
Number of ids (unique uids + gids) 2
Number of uids 1
    tc (1001)
Number of gids 1
    staff (50)
tc@pC141bp:~$ md5sum libmpdclient-2.22.tcz > libmpdclient-2.22.tcz.md5.txt
tc@pC141bp:~$ ls
libmpdclient/              	libmpdclient-2.22.tcz
libmpdclient-2.22/         	libmpdclient-2.22.tcz.md5.txt
libmpdclient-2.22.tar.xz   	libmpdclientx/
tc@pC141bp:~$
tc@pC141bp:~$ ls /mnt/*2/tce
mydata.tgz  onboot.lst  ondemand/   optional/
tc@pC141bp:~$ sudo mv *tcz* /mnt/*2/tce/optional
tc@pC141bp:~$ sudo vi /mnt/*2/tce/onboot.lst
(# libmpdclient-2.22.tcz 書き込み)
tc@pC141bp:~$
tc@pC141bp:~$ ls
libmpdclient/         	libmpdclient-2.22.tar.xz
libmpdclient-2.22/    	libmpdclientx/
tc@pC141bp:~$ rm -rf lib*
tc@pC141bp:~$ filetool.sh -b

libmpdclient、インストール終了。手間がかかる。2019年のときとやり方は変わらん。
まあいい、次はupmpdcliだ。

upmpdcli

え、、、え?!、Deezer Plugin、ってなに!
2021年、upmpdcli 1.5.9からDeezerに対応したようだ。
Qobuz、Tidalはもう少し古くて、Upmpdcli 1.2.0からのようだ。2017年より以前のことだ。Spotifyのプラグインはない。
python3-requests パッケージが要るって、これのことか。
どうやって使うのだろう。
https://www.lesbonscomptes.com/upmpdcli/pages/upmpdcli-manual.html#UPMPDCLI-MS-STR
上記の記載によると、昨年秋にDeezerは使えなくなったとのこと。なんとまあ。

まあいい、とりあえず、以下、順次インストールする。

libnpupnp-6.1.2.tar.gz
libupnpp-0.26.4.tar.gz
upmpdcli-1.8.11.tar.gz

まず、libnpupnp


tc@pC141bp:~$ wget https://www.lesbonscomptes.com/upmpdcli/downloads/libnpupnp-6.1.2.tar.gz
Connecting to www.lesbonscomptes.com (62.210.16.61:443)
saving to 'libnpupnp-6.1.2.tar.gz'
libnpupnp-6.1.2.tar. 100% |*********************************************************************|  436k  0:00:00 ETA
'libnpupnp-6.1.2.tar.gz' saved
tc@pC141bp:~$ tar xf lib*
tc@pC141bp:~$ ls
libnpupnp-6.1.2/    	libnpupnp-6.1.2.tar.gz
tc@pC141bp:~$ vi .ash_h*
tc@pC141bp:~$ cd *2
tc@pC141bp:~/libnpupnp-6.1.2$ mkdir ../libnpupnpx
tc@pC141bp:~/libnpupnp-6.1.2$ meson setup . ../libnpupnpx
The Meson build system
Version: 1.1.0
Source dir: /home/tc/libnpupnp-6.1.2
Build dir: /home/tc/libnpupnpx
Build type: native build
Project name: libnpupnp
Project version: 6.1.2
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (piCore) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.39
Host machine cpu family: arm
Host machine cpu: armv6l
Run-time dependency threads found: YES
Found pkg-config: /usr/local/bin/pkg-config (0.29.2)
Run-time dependency libcurl found: YES 8.0.1
Run-time dependency libmicrohttpd found: YES 0.9.70
Run-time dependency expat found: YES 2.5.0
Compiler for C++ supports arguments -Wno-deprecated-declarations: YES
Compiler for C++ supports arguments /D_CRT_SECURE_NO_WARNINGS: NO
Compiler for C++ supports arguments /wd4251: NO
Configuring upnpconfig.h using configuration
Configuring autoconfig.h using configuration
Build targets in project: 1

Found ninja-1.10.0 at /usr/local/bin/ninja
tc@pC141bp:~/libnpupnp-6.1.2$
tc@pC141bp:~/libnpupnp-6.1.2$ ninja -C ../libnpupnpx
ninja: Entering directory `../libnpupnpx'
#
# ( snip なんかごちゃごちゃいろいろが表示され1時間ぐらいかかる )
#
[28/28] Linking target libnpupnp.so.13
tc@pC141bp:~/libnpupnp-6.1.2$ sudo ninja -C ../libnpupnpx install
ninja: Entering directory `../libnpupnpx'
[0/1] Installing files.
Installing libnpupnp.so.13 to /usr/local/lib
Installing /home/tc/libnpupnp-6.1.2/inc/netif.h to /usr/local/include/npupnp/
Installing /home/tc/libnpupnp-6.1.2/inc/upnpdebug.h to /usr/local/include/npupnp/
Installing /home/tc/libnpupnp-6.1.2/inc/upnpdescription.h to /usr/local/include/npupnp/
Installing /home/tc/libnpupnp-6.1.2/inc/UpnpGlobal.h to /usr/local/include/npupnp/
Installing /home/tc/libnpupnp-6.1.2/inc/upnp.h to /usr/local/include/npupnp/
Installing /home/tc/libnpupnp-6.1.2/inc/upnptools.h to /usr/local/include/npupnp/
Installing /home/tc/libnpupnpx/upnpconfig.h to /usr/local/include/npupnp/
Installing /home/tc/libnpupnpx/meson-private/libnpupnp.pc to /usr/local/lib/pkgconfig
Installing symlink pointing to libnpupnp.so.13 to /usr/local/lib/libnpupnp.so
tc@pC141bp:~/libnpupnp-6.1.2$

さて。

/usr/local/lib/libnpupnp.so.13
/usr/local/include/npupnp/
/usr/local/lib/pkgconfig/libnpupnp.pc
/usr/local/lib/libnpupnp.so

以上、まとめたらいい(しかし、symlinkとか気にせず機械的にやってるけど大丈夫なのかな)。

tc@pC141bp:~$ mkdir libnpupnp
tc@pC141bp:~$ mkdir libnpupnp/usr
tc@pC141bp:~$ mkdir libnpupnp/usr/local
tc@pC141bp:~$ mkdir libnpupnp/usr/local/lib
tc@pC141bp:~$ mkdir libnpupnp/usr/local/lib/pkgconfig
tc@pC141bp:~$ cp -R /usr/local/lib/libnpupnp.so.13 libnpupnp/usr/local/lib
tc@pC141bp:~$ cp -R /usr/local/lib/pkgconfig/libnpupnp.pc libnpupnp/usr/local/lib/pkgconfig
tc@pC141bp:~$ cp -R /usr/local/lib/libnpupnp.so libnpupnp/usr/local/lib
tc@pC141bp:~$ mkdir libnpupnp/usr/local/include
tc@pC141bp:~$ cp -R /usr/local/include/npupnp libnpupnp/usr/local/include
tc@pC141bp:~$
tc@pC141bp:~$ mksquashfs libnpupnp libnpupnp-6.1.2.tcz
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on libnpupnp-6.1.2.tcz, block size 4096.
[===================================================================|] 1718/1718 100%

Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 4096
    compressed data, compressed metadata, compressed fragments,
    no xattrs, compressed ids
    duplicates are removed
Filesystem size 2731.54 Kbytes (2.67 Mbytes)
    39.84% of uncompressed filesystem size (6856.43 Kbytes)
Inode table size 3572 bytes (3.49 Kbytes)
    48.21% of uncompressed inode table size (7409 bytes)
Directory table size 232 bytes (0.23 Kbytes)
    64.09% of uncompressed directory table size (362 bytes)
Number of duplicate files found 0
Number of inodes 17
Number of files 9
Number of fragments 2
Number of symbolic links 1
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 7
Number of hard-links 0
Number of ids (unique uids + gids) 2
Number of uids 1
    tc (1001)
Number of gids 1
    staff (50)
tc@pC141bp:~$ md5sum libnpupnp-6.1.2.tcz > libnpupnp-6.1.2.tcz.md5.txt
tc@pC141bp:~$ ls
libnpupnp/               	libnpupnp-6.1.2.tcz
libnpupnp-6.1.2/         	libnpupnp-6.1.2.tcz.md5.txt
libnpupnp-6.1.2.tar.gz   	libnpupnpx/
tc@pC141bp:~$ sudo mv *tcz* /mnt/*2/tce/optional
tc@pC141bp:~$ sudo vi /mnt/*2/tce/onboot.lst
(# libnpupnp-6.1.2.tcz 書き込み)
tc@pC141bp:~$ rm -rf lib*
tc@pC141bp:~$ filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz Done.
tc@pC141bp:~$

次、libupnpp。

tc@pC141bp:~$ wget https://www.lesbonscomptes.com/upmpdcli/downloads/libupnpp-0.26.4.tar.gz
Connecting to www.lesbonscomptes.com (62.210.16.61:443)
saving to 'libupnpp-0.26.4.tar.gz'
libupnpp-0.26.4.tar. 100% |************************************************************|  123k  0:00:00 ETA
'libupnpp-0.26.4.tar.gz' saved
tc@pC141bp:~$ tar xf lib*
tc@pC141bp:~$ ls
libupnpp-0.26.4/    	libupnpp-0.26.4.tar.gz
tc@pC141bp:~$ cd *4
tc@pC141bp:~/libupnpp-0.26.4$ mkdir ../libupnpp
tc@pC141bp:~/libupnpp-0.26.4$ meson setup . ../libupnpp
The Meson build system
Version: 1.1.0
Source dir: /home/tc/libupnpp-0.26.4
Build dir: /home/tc/libupnpp
Build type: native build
Project name: libupnpp
Project version: 0.26.4
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (piCore) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.39
Host machine cpu family: arm
Host machine cpu: armv6l
Run-time dependency threads found: YES
Found pkg-config: /usr/local/bin/pkg-config (0.29.2)
Run-time dependency libnpupnp found: YES 6.1.2
Run-time dependency libcurl found: YES 8.0.1
Run-time dependency expat found: YES 2.5.0
Compiler for C++ supports arguments -Wno-deprecated-declarations: YES
Compiler for C++ supports arguments /D_CRT_SECURE_NO_WARNINGS: NO
Compiler for C++ supports arguments /wd4251: NO
Configuring config.h using configuration
Build targets in project: 2

Found ninja-1.10.0 at /usr/local/bin/ninja
tc@pC141bp:~/libupnpp-0.26.4$

tc@pC141bp:~/libupnpp-0.26.4$ ninja -C ../libupnpp
ninja: Entering directory `../libupnpp'
[32/35] Compiling C++ object libupnpp.so.16.p/libupnpp_smallut.cpp.o
In file included from /tmp/tcloop/gcc/usr/local/include/c++/12.2.0/vector:70,
             	from /tmp/tcloop/gcc/usr/local/include/c++/12.2.0/functional:62,
             	from ../libupnpp-0.26.4/libupnpp/smallut.h:25,
             	from ../libupnpp-0.26.4/libupnpp/smallut.cpp:18:
/tmp/tcloop/gcc/usr/local/include/c++/12.2.0/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_realloc_insert(iterator, _Args&& ...) [with _Args = {long long int&, long long int&}; _Tp = std::pair; _Alloc = std::allocator >]':
/tmp/tcloop/gcc/usr/local/include/c++/12.2.0/bits/vector.tcc:439:7: note: parameter passing for argument of type 'std::vector >::iterator' changed in GCC 7.1
  439 |   	vector<_Tp, _Alloc>::
  	|   	^~~~~~~~~~~~~~~~~~~
In member function 'std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {long long int&, long long int&}; _Tp = std::pair; _Alloc = std::allocator >]',
	inlined from 'bool MedocUtils::parseHTTPRanges(const std::string&, std::vector >&)' at ../libupnpp-0.26.4/libupnpp/smallut.cpp:1136:29:
/tmp/tcloop/gcc/usr/local/include/c++/12.2.0/bits/vector.tcc:123:28: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator*, std::vector > >' changed in GCC 7.1
  123 |       	_M_realloc_insert(end(), std::forward<_Args>(__args)...);
  	|       	~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[35/35] Linking target libupnpp.so.16
tc@pC141bp:~/libupnpp-0.26.4$
tc@pC141bp:~/libupnpp-0.26.4$ sudo ninja -C ../libupnpp install
ninja: Entering directory `../libupnpp'
[0/1] Installing files.
Installing libupnpp.so.16 to /usr/local/lib
Installing /home/tc/libupnpp-0.26.4/libupnpp/base64.hxx to /usr/local/include/libupnpp/
Installing /home/tc/libupnpp-0.26.4/libupnpp/log.h to /usr/local/include/libupnpp/
Installing /home/tc/libupnpp-0.26.4/libupnpp/log.hxx to /usr/local/include/libupnpp/
Installing /home/tc/libupnpp-0.26.4/libupnpp/soaphelp.hxx to /usr/local/include/libupnpp/
Installing /home/tc/libupnpp-0.26.4/libupnpp/upnpavutils.hxx to /usr/local/include/libupnpp/
Installing /home/tc/libupnpp-0.26.4/libupnpp/upnperrcodes.hxx to /usr/local/include/libupnpp/
Installing /home/tc/libupnpp-0.26.4/libupnpp/upnppexports.hxx to /usr/local/include/libupnpp/
Installing /home/tc/libupnpp-0.26.4/libupnpp/upnpplib.hxx to /usr/local/include/libupnpp/
Installing /home/tc/libupnpp-0.26.4/libupnpp/upnpputils.hxx to /usr/local/include/libupnpp/
Installing /home/tc/libupnpp-0.26.4/libupnpp/device/device.hxx to /usr/local/include/libupnpp/device/
Installing /home/tc/libupnpp-0.26.4/libupnpp/device/service.hxx to /usr/local/include/libupnpp/device/
Installing /home/tc/libupnpp-0.26.4/libupnpp/device/vdir.hxx to /usr/local/include/libupnpp/device/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/avtransport.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/cdircontent.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/cdirectory.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/conman.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/description.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/device.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/discovery.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/linnsongcast.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/mediarenderer.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/mediaserver.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/ohinfo.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/ohplaylist.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/ohproduct.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/ohradio.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/ohreceiver.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/ohsender.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/ohtime.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/ohvolume.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/renderingcontrol.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/service.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp-0.26.4/libupnpp/control/typedservice.hxx to /usr/local/include/libupnpp/control/
Installing /home/tc/libupnpp/meson-private/libupnpp.pc to /usr/local/lib/pkgconfig
Installing symlink pointing to libupnpp.so.16 to /usr/local/lib/libupnpp.so
tc@pC141bp:~/libupnpp-0.26.4$

ここでは、色々あるように見えるけど、

/usr/local/lib/libupnpp.so.16
/usr/local/include/libupnpp/
/usr/local/lib/pkgconfig/libupnpp.pc
/usr/local/lib/libupnpp.so

以上をまとめたらいい。

tc@pC141bp:~/libupnpp-0.26.4$ cd
tc@pC141bp:~$ mkdir libupnppx
tc@pC141bp:~$ mkdir libupnppx/usr
tc@pC141bp:~$ mkdir libupnppx/usr/local
tc@pC141bp:~$ mkdir libupnppx/usr/local/lib
tc@pC141bp:~$ mkdir libupnppx/usr/local/include
tc@pC141bp:~$ cp -R /usr/local/lib/libupnpp.so.16 libupnppx/usr/local/lib
tc@pC141bp:~$ cp -R /usr/local/lib/libupnpp.so libupnppx/usr/local/lib
tc@pC141bp:~$ mkdir libupnppx/usr/local/lib/pkgconfig
tc@pC141bp:~$ cp -R /usr/local/lib/pkgconfig/libupnpp.pc libupnppx/usr/local/lib/pkgconfig
tc@pC141bp:~$ cp -R /usr/local/include/libupnpp libupnppx/usr/local/include
tc@pC141bp:~$ mksquashfs libupnppx libupnpp-0.26.4.tcz
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on libupnpp-0.26.4.tcz, block size 4096.
[=================================================================|] 4731/4731 100%

Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 4096
    compressed data, compressed metadata, compressed fragments,
    no xattrs, compressed ids
    duplicates are removed
Filesystem size 8134.72 Kbytes (7.94 Mbytes)
    43.11% of uncompressed filesystem size (18867.71 Kbytes)
Inode table size 9406 bytes (9.19 Kbytes)
    46.36% of uncompressed inode table size (20288 bytes)
Directory table size 549 bytes (0.54 Kbytes)
    55.51% of uncompressed directory table size (989 bytes)
Number of duplicate files found 0
Number of inodes 45
Number of files 35
Number of fragments 16
Number of symbolic links 1
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 9
Number of hard-links 0
Number of ids (unique uids + gids) 2
Number of uids 1
    tc (1001)
Number of gids 1
    staff (50)
tc@pC141bp:~$ md5sum libupnpp-0.26.4.tcz > libupnpp-0.26.4.tcz.md5.txt
tc@pC141bp:~$
tc@pC141bp:~$ sudo mv *tcz* /mnt/*2/tce/optional
tc@pC141bp:~$ sudo vi /mnt/*2/tce/onboot.lst
(# libupnpp-0.26.4.tcz 書き込み)
tc@pC141bp:~$ rm -rf lib*
tc@pC141bp:~$ filetool.sh -b

次、upmpdcli。

tc@pC141bp:~$ wget https://www.lesbonscomptes.com/upmpdcli/downloads/upmpdcli-1.8.11.tar.gz
Connecting to www.lesbonscomptes.com (62.210.16.61:443)
saving to 'upmpdcli-1.8.11.tar.gz'
upmpdcli-1.8.11.tar. 100% |*******************************************************************|  614k  0:00:00 ETA
'upmpdcli-1.8.11.tar.gz' saved
tc@pC141bp:~$ tar xf upmpdcli*
tc@pC141bp:~$ cd *11
tc@pC141bp:~/upmpdcli-1.8.11$ mkdir ../upmpdcli
tc@pC141bp:~/upmpdcli-1.8.11$ meson setup . ../upmpdcli
The Meson build system
Version: 1.1.0
Source dir: /home/tc/upmpdcli-1.8.11
Build dir: /home/tc/upmpdcli
Build type: native build
Project name: upmpdcli
Project version: 1.8.11
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (piCore) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.39
Host machine cpu family: arm
Host machine cpu: armv6l
Found pkg-config: /usr/local/bin/pkg-config (0.29.2)
Run-time dependency libupnpp found: YES 0.26.4
Run-time dependency libcurl found: YES 8.0.1
Run-time dependency libmicrohttpd found: YES 0.9.70
Did not find CMake 'cmake'
Found CMake: NO
Run-time dependency jsoncpp found: NO (tried pkgconfig)

meson.build:22:8: ERROR: Dependency "jsoncpp" not found, tried pkgconfig

A full log can be found at /home/tc/upmpdcli/meson-logs/meson-log.txt
tc@pC141bp:~/upmpdcli-1.8.11$

え、cmakeがない、jsoncppがないとな。要るのか。
これでどうか。
tc@pC141bp:~/upmpdcli-1.8.11$ tce-load -wi cmake.tcz json-c.tcz json-c-dev.tcz
エラー。
jsoncppがないと。

json-glib.tcz json-glib-dev.tczもインストール。
tc@pC141bp:/etc/sysconfig/tcedir$ tce-load -wi json-glib-dev.tcz json-glib-dev.tcz
無理でした。
/home/tc/upmpdcli/meson-logs/meson-log.txt というのを読む。

CMake binary for 1 is not cached
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Found CMake: /usr/local/bin/cmake (3.23.1)
# ( snip ) #
Preliminary CMake check failed. Aborting.
Run-time dependency jsoncpp found: NO (tried pkgconfig and cmake)

meson.build:22:8: ERROR: Dependency "jsoncpp" not found, tried pkgconfig and cmake

いろいろ悪足掻きして追加してみる。
tc@pC141bp:/etc/sysconfig/tcedir$ tce-load -wi json-glib-dev.tcz json-glib-doc.tcz json-glib-gir.tcz json-glib-locale.tcz
これでも無理。エラー、ついには環境依存との表示が出る。

実際、「jsoncpp」はTiny Coreだとリポジトリにtczがあるけど、piCoreには用意されていない。
今、メインシステムで使っているmpdサーバー(Tiny Core OS)にupmpdcliをインストールした時にも、jsoncppが足りなくて、後からインストールしたのだ。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20210321a.htm
upmpdcliのサイトにはjsoncppについて書いてないように思うが、皆、どうしてるんだろう。

そういうわけで、Ras Pi b+にupmpdcliをインストールする試みは行き詰まった。
jsoncppをソースからインストールとなってくるといよいよハードルが高く、根負けした。

以上で、撤退である。

inter mission

upmpdcliをインストールするには「jsoncpp」というライブラリが必要になる。
aarch64のリポジトリにはtczファイルが用意されているが、armv6、armv7、armv7lには用意されていない。つまり、Ras Pi 3B以下の機種へのインストールは、容易には出来ないということだ。

そういうわけで、とりあえず、b+をPPAP Back Endにしてみた。
しかし、ノイズが入ったり音が切れたりで、快適には使えない。B+ってこうだったっけ。昔はB2で運用してたんだっけか。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20180301a.htm
昔のエントリーによると、period-sizeとbuffer-sizeを上げたらB+でもBack Endで使えるようだ。

やっぱり、3b+を使わないといけないかな、と思ったら、3b+のpiCore、aarch64のリポジトリにはnmap.tczがない。3b+以上の機種をPPAPで使うとしたら、ソースからインストールする必要がある。
いろいろ制約が多い。
そういれば、そういうこともあって、apu2に移行したような記憶が、、、どうだったかな。

さて、ということは、Roon BridgeとPPAP Back Endを一体にできるのは、うちにあるRas Piだと2bしかない、ということになる。
B+はRoon Bridgをインストールできない。
3b+はUPnP化、Roon Bridge化は出来たとしても、nmapをインストールできない。つまりmpdサーバーの3b+からUSBでDACに出力することになる。それで運用というのもありだけど、作るのが大変な割に、音質は期待できない気がする。

実は今回、Roon (RAAT)とPPAPの音質を比較したいというのが、当初の目的だった。そのためには、Roon Bridgeとncat、両方を動かせる機械を作りたい。同一の機械じゃないと比較ができない。
本当は、Roon ROCKとRoon Ready対応の製品じゃないと、Roonの真価は分からないのかもしれないが、まあ、やってみたいということだ。

Raspberry Pi 2b

そういうわけで、、、Ras Pi 2bに手を入れていく。

http://tinycorelinux.net/14.x/armv7/releases/RPi/
http://tinycorelinux.net/14.x/armv7/releases/RPi/piCore-14.1.0.zip

zipをダウンロードし解凍。
imgファイルをmicroSDに焼いて、cmdline.txt にhost=pC141b2と追記、config.txtを編集しイヤホンジャックを止めて、ラズパイに刺して電源を入れる。

ab@fedora-pb650g1:~$ ssh tc@192.168.1.77
The authenticity of host '192.168.1.77 (192.168.1.77)' can't be established.
ED25519 key fingerprint is SHA256:QNgN5WKnnJhaFEsBAPWo1JOBLBVZtZRl+rVWl0BiduE.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.77' (ED25519) to the list of known hosts.
tc@192.168.1.77's password:
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)       	www.tinycorelinux.net

tc@pC141b2:~$
tc@pC141b2:~$ sudo fdisk -u /dev/mmcblk0

The number of cylinders for this disk is set to 120576.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p
Disk /dev/mmcblk0: 3768 MB, 3951034368 bytes, 7716864 sectors
120576 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Device   	Boot StartCHS	EndCHS    	StartLBA 	EndLBA	Sectors  Size Id Type
/dev/mmcblk0p1	128,0,1 	1023,3,16     	8192 	139263 	131072 64.0M  c Win95 FAT32 (LBA)
/dev/mmcblk0p2	1023,3,16   1023,3,16   	139264 	172031  	32768 16.0M 83 Linux

Command (m for help): d
Partition number (1-4): 2

Command (m for help): n
Partition type
   p   primary partition (1-4)
   e   extended
p
Partition number (1-4): 2
First sector (16-7716863, default 16): 139264
Last sector or +size{,K,M,G,T} (139264-7716863, default 7716863): +2G

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table
fdisk: WARNING: rereading partition table failed, kernel still uses old table: Device or resource busy
tc@pC141b2:~$
tc@pC141b2:~$ filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz Done.
tc@pC141b2:~$ sudo reboot

tc@pC141b2:~$ Connection to 192.168.1.77 closed by remote host.
Connection to 192.168.1.77 closed.
ab@fedora-pb650g1:~$ ssh tc@192.168.1.77
tc@192.168.1.77's password:
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)       	www.tinycorelinux.net

tc@pC141b2:~$ sudo resize2fs /dev/mmcblk0p2
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mmcblk0p2 is mounted on /mnt/mmcblk0p2; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 524288 (4k) blocks long.

tc@pC141b2:~$

2bのRoon Bridgeは「Roon Bridge (armv7hf)」を使用。
前回エントリーに記載した手順で環境構築、インストールしていく。

tc@pC141b2:~$ tce-load -wi alsa.tcz alsa-utils.tcz alsa-plugins.tcz bash-dev.tcz bash.tcz curl.tcz

tc@pC141b2:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Audio [USB HiRes Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
tc@pC141b2:~$

Pegasus DACを認識出来ている。

tc@pC141b2:~$ wget https://download.roonlabs.net/builds/RoonBridge_linuxarmv7hf.tar.bz2
Connecting to download.roonlabs.net (172.67.14.113:443)
saving to 'RoonBridge_linuxarmv7hf.tar.bz2'
RoonBridge_linuxarmv 100% |*************************************************************| 15.4M  0:00:00 ETA
'RoonBridge_linuxarmv7hf.tar.bz2' saved
tc@pC141b2:~$ tar jxf Roon*
tc@pC141b2:~$ ls
RoonBridge/                  	RoonBridge_linuxarmv7hf.tar.bz2
tc@pC141b2:~$
tc@pC141b2:~$ sudo RoonBridge/check.sh

Checking to see if RoonBridge can run on this machine

	Checking for Binary Compatibility                        	[   OK   ]
	Checking for ALSA Libraries                              	[   OK   ]

STATUS: SUCCESS

tc@pC141b2:~$ rm Roon*bz2
rm: remove 'RoonBridge_linuxarmv7hf.tar.bz2'? y
tc@pC141b2:~$

tc@pC141b2:~$ sudo vi /opt/bootlocal.sh
# ( write : /home/tc/RoonBridge/start.sh start )

tc@pC141b2:~$ filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz Done.
tc@pC141b2:~$ sudo reboot
tc@pC141b2:~$ Connection to 192.168.1.77 closed by remote host.
Connection to 192.168.1.77 closed.
ab@fedora-pb650g1:~$ ssh tc@192.168.1.77
tc@192.168.1.77's password:
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)       	www.tinycorelinux.net

tc@pC141b2:~$ pstree
init-+-bootlocal.sh---start.sh---mono-sgen-+-2*[mono-sgen]
 	|                                 	`-processreaper
 	|-sh
 	|-sshd---sshd---sshd---sh---pstree
 	|-udevd---2*[udevd]
 	`-udhcpc
tc@pC141b2:~$

Roon Bridge化、成功。タブレット端末のRoonアプリ上で、Roon Bridgeとして認識されている。音も出た。

続いて、PPAP Back-End化。

tc@pC141b2:~$ tce-load -wi nmap.tcz alsa-modules-6.1.68-piCore-v7.tcz alsa.tcz alsa-utils.tcz alsa-utils-locale.tcz
alsa-modules-6.1.68-piCore-v7 is already installed!
alsa is already installed!
alsa-utils is already installed!

# ( snip )

nmap、インストールした。
ここで試しにコマンドを打ってみる。

tc@pC141b2:~$ /usr/local/bin/ncat -kl 4444 -e "/usr/local/bin/aplay -D plughw:0,0 -M --period-size=64 --buffer-size=512 -t raw -f cd"
/usr/local/bin/ncat: error while loading shared libraries:: cannot open shared object file: No such file or directory
tc@pC141b2:~$

libssl.so.1.1がないと言って、蹴られる。
http://tinycorelinux.net/14.x/armv7/tcz/
リポジトリを確認。openssl-1.1.1.tczというのがあるのでインストール。

tc@pC141b2:~$ tce-load -wi openssl-1.1.1.tcz
Downloading: openssl-1.1.1.tcz
Connecting to repo.tinycorelinux.net (128.127.66.77:80)
saving to 'openssl-1.1.1.tcz'
openssl-1.1.1.tcz	100% |***************************************************************| 1172k  0:00:00 ETA
'openssl-1.1.1.tcz' saved
openssl-1.1.1.tcz: OK
tc@pC141b2:~$
tc@pC141b2:~$ /usr/local/bin/ncat -kl 4444 -e "/usr/local/bin/aplay -D plughw:0,0 -M --period-size=64 --buffer-size=512 -t raw -f cd"
^C
tc@pC141b2:~$

tc@pC141b2:~$ vi /opt/bootlocal.sh
( write : /usr/local/bin/ncat -kl 4444 -e "/usr/local/bin/aplay -D plughw:0,0 -M --period-size=256 --buffer-size=512 -t raw -f S32_LE -r44100 -c2" )

tc@pC141b2:~$ filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz Done.
tc@pC141b2:~$
tc@pC141b2:~$ sudo reboot
tc@pC141b2:~$ Connection to 192.168.1.77 closed by remote host.
Connection to 192.168.1.77 closed.
ab@fedora-pb650g1:~$ ssh tc@192.168.1.77
tc@192.168.1.77's password:
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)       	www.tinycorelinux.net

tc@pC141b2:~$

音は出るだろうか。、、、なんでか、動かない。mpdからの送信を受け付けないようで、ncmpcppで「paused」と表示される。
tc@pC141b2:~$ tce-load -wi openssl-dev.tcz alsa-plugins-dev.tcz
無効。
Roon Bridgeも動かない。
ということは、同一機械での併用は出来ないのか。
PPAPのコマンドを止めたら、Roon Bridgeは動くようになった。alsa出力を奪い合うんだろうか。
その割には、Roonを止めてもPPAPは動かない。
何しろ、うまくいかない。

しかたない。
Raspberry Pi 2bでRoon BridgeとPPAP併用は止めることにする。

Raspberry Pi 3b+

さて、3b+に、mpdとupmpdcliをインストールして、PCトランスポートとして動かしてみることにした。音質への配慮は2の次だ。UPnPPPAPは使わない。基本、アップサンプリングもしない(高度な処理はRas Piには負担が大きいからだ)。

まず、piCoreをダウンロード。3B+を使うことにするので、下記から落とす。バージョンは14.1。
http://tinycorelinux.net/14.x/aarch64/
http://tinycorelinux.net/14.x/aarch64/releases/RPi/piCore64-14.1.0.zip
imgファイルをmicroSDに焼いて、cmdline.txt にhost=pC141b3pと追記、config.txtを編集しイヤホンジャックを止めて、ラズパイに刺して起動。さすがに長いので、環境構築のコマンドは羅列で済ます。

sudo fdisk -u /dev/mmcblk0
filetool.sh -b
sudo resize2fs /dev/mmcblk0p2
tce-load -wi gcc.tcz gcc_libs.tcz gcc_libs-dev.tcz gcc_base-dev.tcz meson.tcz ninja.tcz squashfs-tools.tcz
tce-load -wi boost-dev.tcz boost.tcz pkg-config.tcz clang.tcz curl.tcz curl-dev.tcz libmicrohttpd.tcz expat2.tcz expat2.tcz expat2-dev.tcz
tce-load -wi alsa.tcz alsa-utils.tcz alsa-utils-locale.tcz alsa-plugins.tcz alsa-plugins-dev.tcz
tce-load -wi jsoncpp.tcz jsoncpp-dev.tcz

ここで問題が発覚。upmpdcliのインストールに必要な、libmicrohttpd がリポジトリにない。
ソースからインストールしないといけない。無しではいけないかな。
面倒だなあ、、、止めよう。

Raspberry Pi 2b again

2bを、2台にしよう。

Roon Bridgeは既に作ってある。
だから、ここではPPAP Back-Endを作る。

http://tinycorelinux.net/14.x/armv7/releases/RPi/piCore-14.1.0.zip
zipをダウンロードし解凍。
imgファイルをmicroSDに焼いて、cmdline.txt にhost=pC141b2-ppapBEと追記、config.txtを編集しイヤホンジャックを止めて、ラズパイに刺して電源を入れる。

ab@fedora-pb650g1:~$ ssh tc@192.168.1.77

# ( snip )

tc@192.168.1.77's password:
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)       	www.tinycorelinux.net

tc@pC141b2-ppapBE:~$ sudo fdisk -u /dev/mmcblk0

# ( snip )

The partition table has been altered.
Calling ioctl() to re-read partition table
fdisk: WARNING: rereading partition table failed, kernel still uses old table: Device or resource busy
tc@pC141b2-ppapBE:~$ filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz Done.
tc@pC141b2-ppapBE:~$ sudo reboot
tc@pC141b2-ppapBE:~$ Connection to 192.168.1.77 closed by remote host.
Connection to 192.168.1.77 closed.

ab@fedora-pb650g1:~$ ssh tc@192.168.1.77
tc@192.168.1.77's password:
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)       	www.tinycorelinux.net

tc@pC141b2-ppapBE:~$ sudo resize2fs /dev/mmcblk0p2
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mmcblk0p2 is mounted on /mnt/mmcblk0p2; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 51200 (4k) blocks long.

tc@pC141b2-ppapBE:~$ tce-load -wi nmap.tcz alsa.tcz alsa-utils.tcz

# ( snip )

tc@pC141b2-ppapBE:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Audio [USB HiRes Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
tc@pC141b2-ppapBE:~$
tc@pC141b2-ppapBE:~$ vi /opt/bootlocal.sh

# ( write : /usr/local/bin/ncat -kl 4444 -e "/usr/local/bin/aplay -D hw:0,0 -M --period-size=256 --buffer-size=1024 -t raw -f S32_LE -r44100 -c2" )

tc@pC141b2-ppapBE:~$ filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz Done.
tc@pC141b2-ppapBE:~$ sudo reboot

tc@pC141b2-ppapBE:~$ tce-load -wi openssl-1.1.1.tcz
tc@pC141b2-ppapBE:~$ sudo reboot

うっかりしてopenssl-1.1.1.tczを入れ忘れて、後からインストール。そうしたらちゃんと機能した。

結末

そんなわけで、うちではRaspberry Pi 2b が2台、メインシステムに加わった。Roon BridgeとPPAP Back-Endだ。
ちょっと、あれこれ賑やか過ぎる。そのうち、なんとかしよう。

あれこれやる合間に、久しぶりにRas Pi B+ / piCore7でmpdサーバーを作った。サブシステムに使う。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20180103a.htm
上記の過去エントリーの作り方だと、うまくいかない。
リポジトリからgcc.tczとか諸々多数のライブラリをインストールすることになっているんだけど、今、現在の時点で、gcc.tczはダウンロードできない状態になっている。リポジトリ側の都合らしい。
mpdのインストール、リポジトリからするなら、gccとか余計なライブラリは要らない。
以下、自分用構築メモ備忘録、最小限。

http://tinycorelinux.net/7.x/armv6/releases/RPi/piCore-7.0.zip

dtparam=i2c=off,spi=off,i2s=on,i2c_vc=off
dtoverlay=hifiberry-dac

filetool.sh -b
vi /opt/.filetool.lst

vi /opt/bootlocal.sh

mkdir /mnt/music
mkdir /mnt/music/ariel
mkdir /mnt/music/titan
mkdir /mnt/music/x
touch /mnt/music/x/dummy.cue
chmod -R 777 /mnt/music

tce-load -wi alsa.tcz alsa-config.tcz alsa-doc.tcz alsa-dev.tcz alsaequal.tcz alsa-locale.tcz libcdio-dev.tcz libcdio.tcz curl.tcz curl-dev.tcz libsamplerate.tcz

tce-load -wi flac-dev.tcz flac.tcz libcue.tcz libcue-dev.tcz libmad.tcz mpg123.tcz lame-dev.tcz lame-doc.tcz lame.tcz faad2-dev.tcz faad2-doc.tcz faad2.tcz

tce-load -wi libmpdclient-dev.tcz libmpdclient-doc.tcz libmpdclient.tcz mpd-doc.tcz mpd.tcz

tce-load -wi libnfsidmap.tcz libnfsidmap-dev.tcz

vi .mpdconf

music_directory   "/mnt/music"
playlist_directory   "~/.mpd/playlists"
db_file   "~/.mpd/database"
log_file   "~/.mpd/log"
pid_file   "~/.mpd/pid"
state_file   "~/.mpd/state"
sticker_file   "~/.mpd/sticker.sql"
auto_update   "no"
#auto_update_depth "3"

audio_output {
type   "alsa"
name   "My ALSA Device"
device   "hw:0,0"   # optional
mixer_type   "software"   # optional
## mixer_device    "default"   # optional
## mixer_control   "PCM"   # optional
## mixer_index   "0"   # optional
}
# samplerate_converter   "Fastest Sinc Interpolator"
# audio_buffer_size   "8192"
# buffer_before_play   "20%"
# audio_output_format   "192000:24:2"

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


mkdir .mpd
mkdir .mpd/playlists


vi .ashrc

# alias ariel="sudo mount -t nfs 192.168.1.120:/ariel /mnt/music/ariel"
# alias titan="sudo mount -t nfs 192.168.1.80:/titan /mnt/music/titan"

alias ariel="sudo mount -o addr=192.168.1.120,nolock -t nfs 192.168.1.120:/ariel /mnt/music/ariel"
alias titan="sudo mount -o addr=192.168.1.80,nolock -t nfs 192.168.1.80:/titan /mnt/music/titan"
Posted at 21:54 in audio_diary | WriteBacks (0) | Edit Tagged as: , , ,

May 09, 2024

Raspberry Pi 3B+をRoon Bridgeにする

今年に入って、いつ頃からか正確には分からないのだけど、piCorePlayerが不調になった。
Deezer音源のMQAを、Daphileから変換せずにDAC(SMSL M500)に送って鳴らすために使っていたんだけど、それが出来なくなった。そして、LMSをDaphileからMac miniに移行しても、動かないままだ。
原因ははっきりしない。
代替をどうするか、Volumio 3、Album Player for Linux(これって、Ras Pi用はpiCorePlayerベースなんだね)を試したが、結局うまくいかなかった。

そういうわけで、roon bridge、mpdとupmpdcliを、最新のpiCoreにインストールすることにした。
piCoreは、piCorePlayerのベースになっているOSだ。うちでは昔から汎用していて、今はサブシステムのRas Pi2、Roon Bridgeに使っている。

まず、piCoreをダウンロード。3B+を使うことにするので、下記から落とす。バージョンは14.1。
http://tinycorelinux.net/14.x/aarch64/
http://tinycorelinux.net/14.x/aarch64/releases/RPi/piCore64-14.1.0.zip

imgファイルをmicroSDに焼いて、cmdline.txt にhost=pC141b3pと追記、config.txtを編集しイヤホンジャックを止めて、i2sを一応生かして、ラズパイに刺して電源を入れる。
無事、起動した。
sshでログインし、filetool.sh -bでsshの鍵を保存する。
以下、パーティションを拡張。2Gも足しとけばよかろう。

tc@pC141b3p:~$ sudo fdisk -u /dev/mmcblk0

The number of cylinders for this disk is set to 121008.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p
Disk /dev/mmcblk0: 3781 MB, 3965190144 bytes, 7744512 sectors
121008 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Device   	Boot StartCHS	EndCHS    	StartLBA 	EndLBA	Sectors  Size Id Type
/dev/mmcblk0p1	128,0,1 	1023,3,16     	8192 	139263 	131072 64.0M  c Win95 FAT32 (LBA)
/dev/mmcblk0p2	1023,3,16   1023,3,16   	139264 	172031  	32768 16.0M 83 Linux

Command (m for help): d
Partition number (1-4): 2

Command (m for help): n
Partition type
   p   primary partition (1-4)
   e   extended
p
Partition number (1-4): 2
First sector (16-7744511, default 16): 139264
Last sector or +size{,K,M,G,T} (139264-7744511, default 7744511): +2G

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table
fdisk: WARNING: rereading partition table failed, kernel still uses old table: Device or resource busy
tc@pC141b3p:~$ sudo reboot

tc@pC141b3p:~$ Connection to 192.168.1.27 closed by remote host.
Connection to 192.168.1.27 closed.
ab@fedora-pb650g1:~$
ab@fedora-pb650g1:~$ ssh tc@192.168.1.27
tc@192.168.1.27's password:
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)       	www.tinycorelinux.net

tc@pC141b3p:~$ sudo resize2fs /dev/mmcblk0p2
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mmcblk0p2 is mounted on /mnt/mmcblk0p2; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 524288 (4k) blocks long.

tc@pC141b3p:~$

以上で、パーティション拡張終了。

次にntpclient.tczをインストールしようとしたら、リポジトリに置いていない。
http://tinycorelinux.net/14.x/aarch64/tcz/
どういうことかと思ってdateコマンドを打ってみた。

tc@pC141b3p:~$ date
Mon May  6 12:56:11 UTC 2024

どうやらUTCで正確に動いているような。ntpは要らないのかな。

さて、Roon Bridge化する。
https://help.roonlabs.com/portal/en/kb/articles/linux-install

インストーラー使用を推奨ということなんだけどpiCore、Tiny Coreは特殊なのでマニュアルインストールを選択。
libasound2が必要ということだが、説明を読むと、alsaの1.0.27以上が必要と読み替えていいらしい。これはリポジトリにある。
ということでインストール。
関連するソフトも同時に大量にインストールされる。
スクリプトを動かすのにbashが要るので、これもインストールする。ついでになんとなくcurlも入れる。

tc@pC141bp:~$ tce-load -wi alsa.tcz alsa-utils.tcz alsa-plugins.tcz
tc@pC141bp:~$ tce-load -wi bash-dev.tcz bash.tcz curl.tcz

Roonのサイトには、下記3つのRoon Bridgeが用意されている。
Roon Bridge (x64)
Roon Bridge (armv7hf)
Roon Bridge (armv8)

Raspberry Pi 3b+にはarmv8用を使う。piCoreのホームディレクトリにダウンロードし、展開する。

tc@pC141b3p:~$ wget https://download.roonlabs.net/builds/RoonBridge_linuxarmv8.tar.bz2
Connecting to download.roonlabs.net (172.67.14.113:443)
saving to 'RoonBridge_linuxarmv8.tar.bz2'
RoonBridge_linuxarmv 100% |*******************************************************| 17.1M  0:00:00 ETA
'RoonBridge_linuxarmv8.tar.bz2' saved
tc@pC141b3p:~$ tar jxvf RoonBridge_linuxarmv8.tar.bz2
#---- snip

tc@pC141b3p:~$ ls
RoonBridge/                	RoonBridge_linuxarmv8.tar.bz2
tc@pC141b3p:~$ ls RoonBridge
Bridge/   RoonMono/ VERSION   check.sh  start.sh
tc@pC141b3p:~$

チェックスクリプトで使えるかどうか確認する。

tc@pC141b3p:~$ sudo RoonBridge/check.sh

Checking to see if RoonBridge can run on this machine
	Checking for Binary Compatibility                        	[   OK   ]
	Checking for ALSA Libraries                              	[   OK   ]
STATUS: SUCCESS

tc@pC141b3p:~$

使えそうだ。

tc@pC141b3p:~$ rm RoonBridge_linuxarmv8.tar.bz2
rm: remove 'RoonBridge_linuxarmv8.tar.bz2'? y
tc@pC141b3p:~$
tc@pC141b3p:~$ sudo vi /opt/bootlocal.sh

ダウンロードしたtar.bz2ファイルはここで削除する。
piCore起動時にRoonBridgeが起動するように、bootlocal.shを編集。下記、追記。

/home/tc/RoonBridge/start.sh start

tc@pC141b3p:~$ filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz Done.
tc@pC141b3p:~$

filetool.sh -bで、状況を保存。
RoonBridgeが50MBぐらいあるので、数10秒かかる。しかし、他の置き場がないかといっても難しい。というのは、Roonのアップデートがかかる筈なので、filetool.sh -bで保存できない場所に置いたら後で困るから。
結局、ホームディレクトリがいいだろうということになる。

tc@pC141b3p:~$ sudo reboot
tc@pC141b3p:~$ Connection to 192.168.1.27 closed by remote host.
Connection to 192.168.1.27 closed.
ab@fedora-pb650g1:~$
ab@fedora-pb650g1:~$ ssh tc@192.168.1.27
tc@192.168.1.27's password:
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)       	www.tinycorelinux.net

tc@pC141b3p:~$
tc@pC141b3p:~$ pstree
init-+-bootlocal.sh---start.sh---mono-sgen-+-2*[mono-sgen]
 	|                                 	`-processreaper
 	|-sh
 	|-sshd---sshd---sshd---sh---pstree
 	|-udevd---2*[udevd]
 	`-udhcpc
tc@pC141b3p:~$

pstreeで、mono-sgenと表示されるのがRoonだ。ちゃんと起動している。

しかし、音が出ない。

tc@pC141b3p:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: AUDIO [SMSL USB AUDIO], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
tc@pC141b3p:~$

DACは認識しているようだ。

なにがいけないのだろう。alsa-plugins-dev.tcz、alsa-utils-locale.tczもインストールしてみたが、音は出ない。USBケーブルを変えてみたりしたが、関係ない。
サブシステムのRas pi2からは、Roonで音が出ている。3b+との違いは、i2sかUSBか、ということだ。
でも、そんなところが関係するかね、、、

DACを替えてみる。M500からADI-2 DACに。
音、出るじゃん。
M500も、apu2からのUSB出力を受けたら音が出るのだ。なぜか、Ras Pi3b+からだと音が出ない。

pegasusはどうだろう。

tc@pC141b3p:~$ aplay -l
aplay: device_list:277: no soundcards found...
tc@pC141b3p:~$

USB端子を挿しても、認識していない。
スイッチをオン・オフしてみる、、、認識した。音も出る。

tc@pC141b3p:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Audio [USB HiRes Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
tc@pC141b3p:~$

DACの名前が出ていない。まあ、中華DACだもんね。
M500もスイッチをオン・オフしてみる。
piCoreが落ちた。
再起動だ。
音が出た。USBってのはいろいろと微妙だね。

しかし、取り敢えずこれで、3b+をRoon Bridgeにすることに成功した。MQAサンプラーCDからリッピングしたMQAを再生できる。
RoonはDeezerには対応していないので、次は、これにmpdを組み込んで、UPnPレンダラーにする。そうすればLMSサーバーからDeezerのMQAを送信できる。
それが、いつ頃になるかは、分からないが。

あれ、もしかしたらvolumioもスイッチのオン・オフで使えたのかもしれない。まあ、いいや、piCore運用の方向でいこう。

Posted at 22:10 in audio_diary | WriteBacks (0) | Edit Tagged as: ,

Apr 28, 2024

Logitech Media ServerのUPnP pluginとmpdの設定を見直した

とりあえず、今現在の最終設定をキャプチャ。mpd.confの設定なんて、本気で弄ったの何年ぶりだろう。

上がLMSのUPnPプラグイン、下がmpdだ。
ちなみに、LMSサーバーは、Mac mini 2010 mid、OSはFedora 39。
mpdサーバーは、HP Probook 450 G9 (CPU:i7-1255U)、OSはTiny Core 64 14.0。

問題になったのが、下記の音源。これが、ギャップレス再生しない。音が途切れる。
https://deezer.page.link/JWaU5YtNL56SjPmy7
スリープ マックス・リヒター
204曲 8時間24分 2015/09/04

うちのシステムでは、ストリーミングの音源によって処理しやすい、しにくいがあるらしく、特定の音源、特定の場所でノイズが乗るとか途切れるとかすることがある。libsamplerateでアップサンプリングするので、サーバーへの負荷が高いのが影響しているかもしれない。

そうした音源でも、このたびLMSサーバーが、HP 2570p(一部壊れかけ)のDaphileからMac miniのFedoraに変更になって、ちゃんと聴けるようになったのがいくつか確認出来ている。だから環境は良くなっているはずなんだけど、上記音源はギャップレス再生すら出来ない。
あろうことか、曲の途中で止まって飛んだりノイズが入ったりもする。
mpdの負荷を減らすためにアップサンプリングを止めるというのも考えられるが、この音源のためだけにそんなことをする気になれない。
試しにmpdの負荷が少なくなるようにアップサンプリングの設定を「best」から「fastest」に変えてみたけど、改善しない。

そんな状況で、うまく再生出来たのは、WiiM miniだった。
つまり、LMSサーバー、mpdサーバーを経由しなければ、支障なく鳴らせる(とはいえ、長時間になったらどうなるか分からないけど。音源8時間全部を鳴らしたわけではない)。

ストリーミングだと音切れ、ノイズが出るけど、ダウンロードした音源だと出ないということがある。そこで、ダウンロードしてみた。
https://www.prestomusic.com/classical/products/8518548--sleep
Max Richter: Sleep
FLAC(CD quality, 44.1 kHz, 16 bit)
204トラックで8時間半。発売は2018年。Deezerのストリーミングに使われているのと同じだと思う。
NASに保存して鳴らしてみたら、ストリーミングよりはずっとましだけど、たまに途切れる。NAS音源でこんなのは初めてだ。

上記よりも早く2015年に、CD、Blu-ray Audioと同時に発売となっているハイレゾ音源もある。ハイレゾを買うとCD同等の音源やmp3などダウンロードできるようだ。
https://www.prestomusic.com/classical/products/8079217--max-richter-sleep-8-hour-version
Max Richter: Sleep (8 hour version)
Hi-Res FLAC (lossless, 96 kHz, 24 bit)
全部で31トラック。これは、204トラックだと音楽が切れるところが繋がっているので、ストリーミング音源と再生時の条件が異なる。

この音源を何とかしようと、UPnPプラグインとmpd.confの設定変更で対応した。

UPnPプラグインのほうは、HTTP mode を「no length」、Cashe を「memory」、Streaming options の Delayを「0」に。
Audio format to UPnP player で、Transcode を「none」。

mpdは、audio_buffer_size を「65536」(KiBなので、64MiBということになる)。
buffer_before_play を「80%」。

このあたりが肝かな。うちで手応えがあるのがこの辺ということだ。
いつからか分からないが、mpdで「buffer_before_play」を100%に設定出来なくなっている。80%が最大値だ。バージョンは0.20.20。
audio_buffer_sizeの最大値は「131071」。128MiB未満ということだ。

audio_buffer_sizeを大きくしたときの問題は、音を出すときに出音に時間がかかることだ。再生ボタンをクリックして音が出るまでの時間が長くなる。
128MiBにしたらストリーミング音源の再生開始に30~40秒。ちなみにNAS音源の再生だと、そこまでの時間はかからないが、20秒ほど。
mpdサーバーでtopを動かしてmpdの状況を見てみると、挙動にかなり余裕があるようだ。なのに、曲の途中で止まる。音が途切れたら、再会するのに10数秒かかったりする。うーん、、、 ということで64MiBにして様子を見ている。

64MiBだと、かなりいける。
しかしそれでも、音切れが皆無にはならない。
他の音源は問題ないんだがなあ、、、他音源の音は、以前より良くなった気がする。

ここまでやってなんだけど、案外、Deezerサーバー側の問題なのかも、と思ったり、LMSサーバーの性能を上げたら解決したりしないかな、などと考えている。
しかし問題になるのはこの音源だけだし、当面、これでいいかなと思っている。

Posted at 13:53 in audio_diary | WriteBacks (0) | Edit Tagged as: ,

Apr 05, 2024

Mac mini (2010 mid)でFedoraが動くようになったので

3月28日に僕はDeezer Premiumのユーザーになり、ProBook 430 G5のLMSでDeezerの音源を聞けるようになった。まあ、聞けるようになったといっても簡単だったわけではなくて、Deezerプラグインに「arl」というのを書き込む必要があった。

logitech FORUMS Search Result : deezer
https://forums.slimdevices.com/search?q=deezer&searchJSON=%7B%22keywords%22%3A%22deezer%22%7D

logitech FORUMS ANNOUNCE: Deezer Local plugin
https://forums.slimdevices.com/forum/user-forums/3rd-party-software/1686739-announce-deezer-local-plugin

How to Get Your Deezer ARL?
https://www.dumpmedia.com/deezplus/deezer-arl.html

これらを参考に、Firefoxから長い文字列をコピーし「ARL token」の小さな窓に書き込んで、めでたく音が出た。それが28日だったか29日だったか、はっきり覚えていない。どっちでもいい話だ。

さて、この時点ではまだ、サーバーをどれにするかは決まっていない。
Mac mini (2010 mid) の処遇が、定まらないのだ。

Mac mini (Mid 2010)
https://support.apple.com/ja-jp/112588

まず、手持ちの古いノートPCたちは何処かしら故障があるのが多いが、Mac miniは無傷だ。スペックもさほど見劣りしない。それにHDDを抜くのが簡単ではない。僕は中古屋にPCを売るときは内蔵ストレージは抜いて持っていくのだけど、かなり深いところまで掘らないといけない。つまりMac miniは中古屋に売りにくい。前向きに処分する気になれないのだ。
そうした理由に加えて、昔のMac miniは音がいいという話を読んだことがある。できれば確かめたい。

Mac miniには古いデータや使わなくなったソフトが沢山残っていて、そのまま使う気にもなれない。この際なので、デュアルブートにしてみよう。厳密じゃないが、OSによる音質差を比較できる。

rEFIt ~ 複数のOSの中から起動するOSを選択する(Intel Mac 用) | Basic Werk
http://basicwerk.com/blog/archives/817
MacMini に Ubuntu をインストール: rEFIt のインストール
http://ubuntu-on-macmini.blogspot.com/2011/01/refit.html

rEFIt - An EFI Boot Menu and Toolkit
https://refit.sourceforge.net/

macOS をダウンロードしてインストールする方法 - Apple サポート (日本)
https://support.apple.com/ja-jp/102662

まずは、Yosemite 10.10をダウンロードしてクリーンインストールしようとしたら、大きすぎてDVD1枚に焼けない。Lionもぎりぎり焼けない。片面2層に書き込みできるDVD-ROMが要るらしい。うちにはない。
Mac mini購入時に付属していたSnow LeopardのインストーラーDVDをあちこち探して引っ張りだし、HDDを4つのパーティションに切って、インストール。
雪豹の起動画面、派手だなー。

続いて、rEFItをインストールする。
ふつうにSafariでrEFItのサイトにいってダウンロードしようとしたら、セキュリティの関係でアクセスできない、といわれる。どういうつもりだ、Safari、雪豹。
しかたがないので他のPCのFirefoxでダウンロードして、それをUSBメモリにコピーして、それをMacに挿してインストールした。

続いてFedoraをインストール。順調にデュアルブートになるかな、と思ったら、雪豹で起動できなくなった。というか、OSの選択が出来ない。電源を入れたら、rEFItの画面が出ず、そのままFedoraでブートする。
なんでこうなったか、よく分からない。

全部入れ直し?、えええ。。。

そういうわけで、Mac miniはFedoraで動くようになった。sshによるログイン、リブートも出来る。
結果として、むしろオーディオサーバーの用途に適う動き方になった。とはいえ、デュアルブートできなくなったのは残念だ。

これにLMSをインストールした。やり方は前回エントリーと同じである。
なんだか音がいい様な気がする。もしかしたら、文鎮のように重いアルミ筐体が効いているのかもしれない。

これでLMSが2台になった。
音質の比較ができるかと思ったが、2台だと音が出ないとか不具合が出てきた(Daphileで問題なかったのは幸運だったのかね)。
しかし、ほんとうにLMSが増えたのが原因なんだろうか。
Deeaerのサービス利用・販売約款(なんでかDeezer HiFi用のままだけど)を読み返してみる。

https://www.deezer.com/legal/cgu

「Deezer HiFiサービスの音楽カタログ及び本件サイトのプレイリストにある楽曲をオフライン時にも聴くことができるようにするため、許可された3台の機器(ポータブル又は非ポータブル機器)に一時的にダウンロードすることを目的とした無制限アクセス」と、ある。

3台というのが、ひっかかっている可能性はないか。
僕はスマホにもDeezerをインストールしている。PCのWebプレーヤーを開いていることもある。考えてみたら、WiiMでも使うことがある。
これらにLMSが加わったら3台を超える。

いや、3台というのが、同時に3台、という意味とは限らない。Deezerには、アカウントがリンクしているデバイスを確認できる場所がWebプレーヤー上にあるのだ。リンクって何なのかは、よく分からないのだけど、「最大3台のデバイスとリンクできます」と表示があるので、約款に書いてあることなのだろう。
今現在使っているデバイスが表示される、というものではないらしい。過去に使ったデバイスが、全て表示されるというものでもないようだ。

Spotifyには、このようなものはない。機器の数の制限は、探したが見つからなかった。
だったら、Spotifyで、2台のLMSを運用できるかどうか、確認してみてもいいのではないか。

2つのLMSサーバーで、Spotifyを交互に操作してみた。
音は普通に鳴る。、、と思っていたら、挙動が少しおかしい。停止ボタンが効かない。ああ、そういえば、Daphileを2台で使ってるときにこれってよくあったっけ(忘れていた、、)。
どうも、通信状態が良くないと起きるような気がする。
やっぱり、1台で使うのがいいんだろうな。

しかし音の比較はしておきたい。

まず、Mac mini WiFiと、430 G5 LAN。これだとMac miniのほうが、音の厚み、重なり、透明度、深みがあって、あらが見えやすい。
次、Mac mini LAN。若干、430 G5 LANに近付いた。
430 G5 LANを聴き直す。ある意味、穏やかで聴き易いんだけど、ハイファイからは離れる気がする。
結果、Mac mini WiFiを選択することにした。

さて、Mac miniにroonもインストールしよう。

mkdir Roon
cd Roon
wget https://download.roonlabs.net/builds/RoonServer_linuxx64.tar.bz2
tar jxvf RoonServer_linuxx64.tar.bz2
sudo ./RoonServer/check.sh

Checking to see if RoonServer can run on this machine

	Checking for Binary Compatibility                        	[   OK   ]
	Checking for ALSA Libraries                              	[   OK   ]
	Checking for ffmpeg or avconv                           	which: no ffmpeg in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin)
which: no avconv in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin)
 [ FAILED ]
	Checking for the mount.cifs command                      	[   OK   ]
	Checking for libicu                                     	which: no icuinfo in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin)
 [   OK   ]
	Testing ulimit -n 8192                                   	[   OK   ]

STATUS: FAILED

ffmpeg or avconv が、必要だ。インストールする。

[ab@fedora Roon]$ sudo dnf install ffmpeg
メタデータの期限切れの最終確認: 3:39:36 前の 2024年04月02日 04時35分28秒 に実施しました。
引数に一致する結果がありません: ffmpeg エラー: 一致するものが見つかりません: ffmpeg [ab@fedora Roon]$ sudo dnf install avconv メタデータの期限切れの最終確認: 3:39:09 前の 2024年04月02日 04時35分28秒 に実施しました。
引数に一致する結果がありません: avconv エラー: 一致するものが見つかりません: avconv

そうだった。Fedoraってそんなだった。前はどうやってインストールしたんだっけ、、、
まあ、いいか、、動かしてみよう。

[ab@fedora Roon]$ sudo ./RoonServer/start.sh &

00:00:00.001 Info:  get lock file path: /tmp/.rnsgem0-
00:00:00.023 Info:  GetLockFile, fd: 36
00:00:00.023 Info:  GetLockFile, res: 0
00:00:00.023 Trace: Nope, we are the only one running
Initializing
Started
Running

まじか。ffmpegやavconvがなくても動くようだ。使えるんだろうか。

タブレットからアクセスしたら、roonサーバーがないよ、と出る。
やはり無理かと思ったら、よく見たら他のサーバーを探すか?、と表示されているのでクリックしたらアクセス出来た。
つまり、前のサーバーが止まったら、新しいサーバーに切り替える手続きが必要らしい。
roonへのログインから、あれこれ手続き、サインイン。

でも、そこからが大変で、roonって、やっぱりなんだかすごく分かりにくい。
設定のあちこちにトラップが仕掛けられているように感じる。まあ、慣れた人には分かるんだろうけど、セッティングなんて一度やったらずっとしないので、以前に何をどうやったかなんて忘れている。
なんというか、感覚的に使ってほしいんだろうけど、僕の感覚から外れている。

NAS音源は、Roonのcifsではなく、Fedoraにnfsでマウントしたのをローカル音源扱いして設定した。これがいいのかどうかは、分からない。
このNAS音源の読み込み、ライブラリの構築が、これがとてつもなく時間がかかるんだね、忘れていた。負荷が大きいからだろうか、Roonサーバーに加えて、LMSサーバー、NAS共々、使えなくなった。音が途切れるのだ。使える音源は、WiiM経由のDeezer、Spotifyのみとなった。
しばらくは辛抱、と思ったが、、、

結局、Mac miniのRoonは使用に至らなかった。
なぜか分からないが途中で落ちて、以降、起動しなくなった。
ffmpegやavconvがないからかな、わからない。Roon、アンインストール。

RoonサーバーはProBook 430 G5に戻った。こちらでは既にライブラリは構築されているので、直ぐに戻せた。

そういうわけで、WiFiで、両者の使用を再開した。LANケーブルはごちゃごちゃしていて邪魔気だし。

だけど、どうも繋がりにくいみたいで、LMSは次の曲に移るところでちょくちょく途切れる。
Roonのほうは曲が途中で途切れて、ネットワークのスペックが低いという警告が出た(英語で数秒で消えたので、細かいところは分からないけど、そういう内容だ)。
早々に共々、有線LANに戻すことになった。

戻してみたら、Mac mini LMSの音は、Daphileで鳴らしていた時よりも良くなった気がする。
Daphileでいつも特定の場所で音飛びしていたDeezer音源が、ちゃんと再生されるようになった。

Daphileのサーバーに使っていた機体は2台とも故障、不調があって、これを機に中古屋に引退である(部品取り用ジャンクとして引き取ってくれた)。ああ、こういうとこが原因だったのか、と思ったが、考えてみたらウェブの通信にmysqueezebox.comが噛んでいたことも関係していた可能性はある。確かめようがないことだが。
ともあれ、今回の機種変更で、以前より安定したということだろう。

一方、Roonの430 G5はサーバーとして使いやすいというわけではない。

一番目の問題は、ディスプレイを閉じたままだとOSが起動しないことだ。つまり、OSを再起動するたびに棚の底から引き出して、開けないといけない。Roonサーバーは基本、動かしっぱなしで、滅多なことでは再起動しないので影響は少ないんだけど、不便は不便だ。
実は、こういうノートPCは初めてな気がする。仕様なのか故障してるのか他の原因なのか、分からない。

そして、RoonがFedora OS起動時に起動しない。
Roonの説明ではOS起動に併せてRoonも起動する筈だと、今回、気付いた。それとは異なる挙動だ。Roonはrootで起動するのが関係しているかもしれない。

あと、ターミナルからのRoonの起動が簡単ではないことが分かった。以前は簡単だと思っていたんだけど、何故、簡単に出来ると思ったのか、今となっては分からない。sshでサーバーにログインして起動するんだけど、以前は出来たと思ったことが出来ないことに気付いた。
現在は、ちょっと裏技っぽいというか、邪道な気がする手法で起動している。洗練とかけ離れた、猿が思い付いたような手法で、ここに書くのは憚られるようなものなので書かないでおこうと思ったが、書いておく。

[ab@fedora2 ~]$ sudo /opt/RoonServer/start.sh
[sudo] ab のパスワード:
00:00:00.033 Info:  get lock file path: /tmp/.rnsgem0-
00:00:00.177 Info:  GetLockFile, fd: 36
00:00:00.177 Info:  GetLockFile, res: 0
00:00:00.178 Trace: Nope, we are the only one running
Initializing
Started
Not responding
has mp3float: 1, aac_fixed: 0
Running
^C
[ab@fedora2 ~]$

まず、ここまで。
コントロール+Cキーでコマンドから離脱したら、Roonも止まる。
これは、コマンドによるRoonの起動にパスワードが必要な動作で、パスワードを打ったab(私)が離脱したら、コマンドによる動作(Roon)も止まるという感じ。

ここで、さらにコマンドを打つ。
今度はコマンドの末尾に「&」を付けて、abが離脱出来るようにする。

[ab@fedora2 ~]$ sudo /opt/RoonServer/start.sh &
[1] 2290
[ab@fedora2 ~]$ 00:00:00.001 Info:  get lock file path: /tmp/.rnsgem0-
00:00:00.024 Info:  GetLockFile, fd: 36
00:00:00.024 Info:  GetLockFile, res: 0
00:00:00.025 Trace: Nope, we are the only one running
Initializing
Started
has mp3float: 1, aac_fixed: 0
Running
^C
[ab@fedora2 ~]$ top

sudoのパスワードを1回打つと、15分間は打たなくてもsudoが通るようになる。
ここでRoonを動かすコマンドを打つと、abによるパスワード打ち込み無しにRoonが動く。ここで、abがコントロール+Cキーで離脱しても、Roonはrootが引き継いだままで動きつづける。
そんな感じ。

こんなんでいいとは、あんまり思えない。今後の検討課題だ。でもなんか、Roonはこのままになるかもしれない。そんなに困らないし。

とりあえず、ごちゃごちゃしてるが、経過の記録。

Posted at 22:44 in audio_diary | WriteBacks (0) | Edit Tagged as: ,

Mar 24, 2024

Logitech Media Serverを整理する

前回、3月10日のエントリーで、2月になるとDeezerの再生が出来なくなると1月末からDaphileで告知されているが、まだ使えていると書いた。
3月17日、Daphileの表示が変わっているのに気付いた。下のスキャン画像にみられるように、日程の記述が現れている。

3月19日から使えなくなる、ということだ。
実際、19日の日中、うちのDaphileはDeezerを認識しなくなった。

いつになれば再び認識できるようになるのかは、分からない。
3月28日、Deezerの契約がPremiumに切り替わったら、Mac miniのLMSでDeezerの音源を取得できるようになるはず。こちらには新しいDeezerプラグインをインストールしてある。それまで待つしかない。

4月10日、追記。
何時からなのか分からないけど、DaphileでDeezerを聴けるようになっている。LMSのバージョンは8.3.1のままだ。たぶんプラグインの方が対応したのだろう。

DapjileがアップデートされてDeezerが使えるようになる様子は、まだない。
暫くはWiiMのDeezer、SPDIFと、LMSによるSpotify、MPDアップサンプリング、USBで、ストリーミングは凌ぐしかない。

そうなってみて、どうなったかというと、両者で充分に満足しているということが、ない。
NAS音源への訴求が増えた。以前、高音質が得られることを確認したUSB-HDD音源の利用を本気で考えようか、などと横道に逸れたことを考えたりする。
落ち着いてない。

それでもWiiMからDeezerのMQA (2Lレーベル) を再生すると多少落ち着く。
MQA (352.8kHz)の再生は、M300SEはM500に及ばない気がする。DACの格が違うので、やむを得ないだろう。MPDでアップサンプリングしADI-2 DACに送り込むDeezerの音にも、残念ながら及ばないかな。M300SEは安いなりに健闘していると思う。
それにしても、ある程度の水準以上の音質は必要らしい。
どうも、コロナ禍で缶詰めになったときよりも我慢が効かないようだ。気分の問題だが、しかたがない。

その一方で、LMSの運用について分かったこと。ひとつのネットワーク環境で複数のLMSが動作するのは、やはり望ましくないようだ。

うちでは以前から2台のDaphileを運用していて、この時点では大きな弊害はなかった。時々、2つだと良くないのかな、と思わせる些細なおかしな挙動があるにはあった。具体的には例えば、選択していたプレーヤーへの紐付けが知らぬ間に切れて、他のプレーヤーが選択されているとか。しかし繋ぎ直せば済むことで、運用上、大きな問題にはならなかった。

それが、Mac miniのLMSサーバーを追加したところ、挙動がいよいよおかしくなった。他のサーバーを触ったら音を出しているサーバーの音が止まるとか、Daphileでアートワークが表示されなくなるとか、2台のDaphileのうち1台でSpotifyが使えなくなるとか。
LMSのログを確認したら、赤字でエラーが大量に記録されている。Unable to get players、とか、failed: Unable to send UDP reply packet、とか。

一般的に、2台のDaphileを使って音質アップを図る場合は、片方のLMSは止めることになっている。
ひとつのLMSで複数のプレーヤーを利用する話は多いが(これが出来るのはLMSの長所らしい)、複数のLMSをひとつのネットワーク内で併用するということについては、あんまり説明が無い。
検索したら、いくつか出てくる。

Multiple LMS Servers? Possible? - HomeSeer Message Board
https://forums.homeseer.com/forum/media-plug-ins/media-discussion/squeezebox-pcp/100918-multiple-lms-servers-possible
Multiple instances of LMS on same network? - Squeezebox : Community : Forums
https://forums.slimdevices.com/forum/user-forums/logitech-media-server/101345-multiple-instances-of-lms-on-same-network

複数のLMSサーバーを運用できるとは、書いていない。
バージョン7.9以前では出来ないと書かれている(8以上ではどうなんだろうね、、)。

実際のところ、うちでは複数のLMSを運用する必要性はない。興味本位で運用しているに過ぎず、1台で済ませるほうが合理的だ。
そして、LMSサーバーはDaphileでなければいけない理由もない。
Daphileは良く出来ている多用途音楽用ディストリビューションだと思うけど、うちではLMSサーバーとしての役割しか負っていない。Daphile以外のOSにLMSをインストールして、音を比較してどうかというのはあるけど、Spotifyのmp3 320kbpsで比較する限りにおいては、特筆すべき差異はないように思う。
それに現状、Deezerが聴けない。聴けるようになれば選択肢になるのだけど。

そういうわけで、今後はLMSサーバーは1台に絞り込むことにする。どのPC、OSを選ぶかは、状況を確認しながら検討が必要だ。

使えそうなPCは以下。
いや、いくつか、古くなったPCはこの機に処分することにした。若干、挙動がおかしいのもある。

HP ProBook 430 G5 - Intel Core i5 7200U RAM DDR4-2400 8GB fedora roon core
HP EliteBook 2570p - Intel Core i5 3360M RAM DDR3-1600 8GB daphile
HP ProBook 450 G3 - celeron 3855U RAM DDR3L-1600 12GB
Mac mini (Mid 2010) - 2.4GHz Intel Core 2 Duo RAM 8GB macos lms
Compaq 6730b - daphile

430 G5を選択するのが順当だろうけど、どうなるだろうか。
roonサーバーへのアクセスは、専用アプリで行う。
LMSにはウェブブラウザから行う。
使用するタイミングも競合しないので、1つのPCで共存できる、と考えた。

さて、やってみよう。
Logitech Media Server Downloads
https://lms-community.github.io/lms-server-repository/
上記、LMSのサイトに430 G5からアクセス。OSはFedoraなので、rpmファイルをダウンロード。
下記コマンドでインストール。

sudo yum install '/home/ab/Downloads/logitechmediaserver-8.5.0-1.noarch.rpm'

しかし、yumが簡単に見えて、実は、rpmのほうが親切。
インストール終了に合わせて、下記アドバイスがある。

ab@fedora:~$ sudo rpm -iv '/home/ab/Downloads/logitechmediaserver-8.5.0-1.noarch.rpm'
パッケージを検証中...
パッケージの準備中...
logitechmediaserver-8.5.0-1.noarch
Point your web browser to http://fedora:9000/ to configure Logitech Media Server.

インストールが済んだら、自動的に起動してウェブブラウザでアクセスしろということらしい。正直、yumでインストールしたら「完了しました!」というだけなので、どうしたらいいか分からなかったかもしれない(どこかに書いてあるのかも知れんが)。

LMSサーバーは普通に動くが、UPnP/DLNA Bridgeプラグインの設定で嵌る。
インストールはしたが、プレーヤー(UPnPレンダラー)を認識しない。

まず、Configuration fileがないので「Generate」というボタンを押して作れ、というんだけど、クリックしても変化なく埒があかない。
/var/lib/squeezeboxserver/prefs というディレクトリに、upnpbridge.xmlという、本来は自動的に作られる筈のファイルが作られない状態になっているらしい。ディレクトリのパーミッションをchmodで変更。それでも動かない。

ログを確認したら、Cannot load SSL libraries、ということで、Squeeze2upnpというのが起動できないままリスタートを繰り返している。
https://forums.slimdevices.com/forum/user-forums/logitech-media-server/1683394-airplay-and-chromecast-bridges-fail-to-load-ssl-libraries
上記url、フォーラムで同様の状況あり。
Select Binaryの設定で、staticを選択する必要があった。

これで漸く起動してUPnPレンダラーを認識した。ログも赤字が消えてきれいになった。
こういう苦労を、Daphileだったらしなくていいのだろう。
動き出したら、upnpbridge.xmlが出来ていた。パーミッション変更が必要だったのかどうかは分からないままだ。

音は、悪くは無いかな。

以上、状況の記録。

Posted at 20:46 in audio_diary | WriteBacks (0) | Edit Tagged as:

Mar 10, 2024

Logitech Media ServerをMac miniにインストールして新しいDeezerプラグインを試みる

前回のエントリーで、2月になるとDaphileでDeezerの再生が出来なくなるので、方策を探っていると書いた。
まだ使えている。
しかし画面にこんなQRコードが出る。これは1月末からずっと出ている。

そうこうするうちに、2月末、mysqueezebox.comなしでも動くDeezerプラグインがアップされた。本当にありがたいことで、足を向けて眠れない。彼らはLMSのUPnPプラグインや、TidalやYoutubeのプラグインも作っている。
以下、いろいろ参考urlと引用(一部、誤記は修正した)。

Logitech is closing mysqueezebox servers | Deezer Community, bringing music lovers together
https://en.deezercommunity.com/features-feedback-44/logitech-is-closing-mysqueezebox-servers-78309?sort=dateline.desc#comments

Cedzerosept
Lover
21 replies
3 days ago

I can also confirm that a solution has been found and works, thanks to Philippe44 and Michael Herger. It allows squeezebox and squeezelite users to access Deezer without the need of mysqueezebox.com servers. They developed a new Deezer Plugin for LMS, all this running without the mysqueezebox.com servers.

Please note that a Deezer paid account is required.

For the moment it seems that the easiest way to install the new LMS plugin is as follow:

1. Install / Upgrade to LMS 8.5.0
2. Use the standard LMS web interface; go to the ‘Plugins’ section / tab (“Plugins” / “Manage Plugins”)
3. At the very end of the plugin list, you will find an “Additional Repositories” section → add the following repository URL: https://raw.githubusercontent.com/philippe44/lms-deezer/main/repo/repo.xml
4. Click on the “Save Settings” button located in the bottom left
5. Refresh the page and you should see the new Deezer plugin listed at the very end of the plugin list
6. Tick the box and Click on the “Save Settings” button located in the bottom left
7. The new Deezer Plugin will then appear in the “Active Plugins” section at the very beginning of the Plugin list
8. Click on the “Settings” link following the Deezer plugin description & Author column
9. On the “Deezer Plugin” configuration page, add your Deezer Account and ARL token and click on “Save Settings”
10. I don’t remember if it’s necessary to restart LMS, but normally, now all should be Ok!

If necessary you can follow the dedicated thread on the slimdevices forum: https://forums.slimdevices.com/forum/user-forums/general-discussion/1668568-tidal-deezer-pandora

Enjoy!

LMS Community
https://lms-community.github.io/
Logitech Media Server Downloads
https://lms-community.github.io/lms-server-repository/

Logitech Media Server
https://wiki.slimdevices.com/index.php/Logitech_Media_Server.html
Logitech Media Server repositories
https://wiki.slimdevices.com/index.php/Squeezebox_Server_repositories

GitHub - philippe44/lms-deezer
https://github.com/philippe44/lms-deezer/

さて、新しいDeezerプラグインを使うためには、Logitech Media Server (以下LMS)のバージョンが「8.5.0」でないといけないらしい。
DaphileのLMSは8.3.1なので、使えない。
どこかに、8.5.0をインストールして、そこにDeezerプラグインをインストールする必要がある。

4月24日、追記。
プラグインはLMSが8.3.1でも使えるようになったようだ。つまりDaphileでも使えるようになった。

LMSは、ラズパイなどでも動く。
今回は使わなくなっていたMac mini (Mid 2010)にインストールすることにした。roonをインストールしようとして出来なかった奴だ。OSは10.13.6。
インストール経過のスクリーンショットは撮り忘れた。

Mac miniを起動し、上記「Logitech Media Server Downloads」にウェブブラウザでアクセスする。
8.5.0 - Development Build から「LogitechMediaServer-8.5.0-1709149164.pkg」をダウンロード。
pkgを開きインストーラーを起動。
手順を踏んでいくと「システム環境設定」にインストールされ、起動した状態になる。

上部に設定項目のタグが並んでいる。
Statusから、LMSのstop、startを指示する。Mac mini起動時にLMSを起動するかどうかも設定できる。
Libraryで、LMSの「名前」を設定しておく。今回は「miniLMS」にした。
Accountは、今回は設定せず。

Advancedからは「Web Renote Control」と「Advanced Settings」というボタンをクリックして、Mac miniのウェブブラウザで操作、設定画面を開くことができる。
しかしLAN上にある他のPCのウェブブラウザからLMSサーバーにアクセスして、これらの操作画面を開くこともできる。
informationは状況表示のタグで、ここからIPアドレス等、確認できる。

LAN上の、普段使いのノートPCのウェブブラウザに、LMSサーバーのアドレスを打ち込む。今回のうちのMac miniの設定だと「192.168.1.50:9000」。
これでLMSにアクセス出来る。

右下のボタン「Settings」から設定画面に。

上に設定のタグが並んでいる。細かい説明は省略。Daphileに慣れていたらそんなに困らない気がする。
「Manege Plugins」のタグから、プラグインをインストールできる。

一番下にスクロール。
上で引用したdeezercommunity.comでの記述にあったリポジトリを書き込む。
右下「Apply」をクリック、じきにリポジトリが認識され「Deezer local」表記でプラグインが現れる。

チェックボックスをチェックし、Apply、以降、手順を踏んでいくとインストールされ、「Active plugins」のリストに表示される。
プラグインの右側に「Settings」のボタンがあるので、クリック。ここから、Deezerアカウントを設定する。

音質はCD(FLAC)。「Add Account」ボタンをクリック。

ログイン画面が表示される。
自分のDeezerアカウントとパスワードを入力しログイン。

ところが、うまくいかない。
動かなかったり、いつまで待っても何も表示されないのっぺらぼうな画面になったまま、切り替わらない。
気が付いたら、プラグインのセッティング画面はこんな感じになっていた。

Authorization failed, or no Premium account.と。
Premium account、って、何だ。

ここで、思い出した。
Deezer HiFiって、今となっては古い契約形態なのだ。
いつ頃から変わったのか分からないんだけど、昨年の11月に気付いて、当時は内容の詳細がはっきりしなかったので切り替えないまま忘れて、そのままになっていた。

Deezer Premiumに変更したら使えるのか。
改めて確認したら、Deezer HiFiよりも安い。音質の低下も無いようだ。1年契約にしたら月に千円しない。いいのかな、そんな安くて。

切り替えようとしたら、こんなん出た。

3月28日に有効って、、、 じゃあ、それまではDeezer HiFiで、ってことなのか。
ちなみに、月々支払いへの変更でも切り替わるのは3月28日だった。9月29日から入会して支払日が28日になっているので、そういうことになるのだろうか。

変更手続きをしたが、変更になるのは月末だ。
プラグインを使えるかどうか確かめるのも月末になる。それまでは、おあずけだ。

時間が経ったらこんなことになっていた。

そうですか、そうですか。

さて、Deezerが聴けなくても、Spotifyなら聴けるんじゃないか、と思ってプラグインをインストールしてみたんだけど、聴けない。
英語で何か表示が出ているのを確認したら、プレーヤーがない状況では使えないということらしい。

プレーヤーとはなんであるかというと、要するにLMSの出力先だ。
うちの普段のDaphileの使用状況では下記のような信号の流れで、この場合、MPD serverが、プレーヤーとして選択されている。
Web Streaming > Daphile (LMS server, UPnP server) > MPD Server (UPnP renderer, PPAP Front)

今回、最初は下記のような信号伝達を想定していた。
Web Streaming > Mac mini (LMS server) > Daphile (UPnP server) > MPD Server (UPnP renderer, PPAP Front)

Daphileは、他のサーバーのLMSを使用するように設定で指定できる。
しかし、Mac miniのLMS serverを使いながら、DaphileをUPnP serverにすることは出来ないらしい。考えてみたら、動いているLMSはMac miniのもので、そこにはUPnPプラグインがないのだから、出来ないのが道理である。

つまり、Mac miniのLMSにもUPnPプラグインをインストールして、そこからUPnPレンダラーをプレーヤーにする必要がある。そうなると、Daphileは必要ないことになる。
Web Streaming > Mac mini (LMS server, UPnP server) > MPD Server (UPnP renderer, PPAP Front)

Mac miniのLMSにUPnPプラグインをインストールすると、家庭内LAN上にあるUPnPレンダラーがいくつか(MPDサーバー2つとWiiM Mini、あとDaphileサーバー2つ)、出力先のプレーヤー候補として認識される。
MPDサーバー1台をプレーヤーに設定。

これで、LMSがSpotifyからのデータを読み込むようになり、音が出た。
Mac miniでSpotifyを鳴らしたときの音をDaphileを使ったときと比較したけど、殆ど差異は聴き取れなかった。

近日中にmysqueezebox.com.が閉鎖されるのは確かなのだろう。
Daphileも、mysqueezebox.com.への依存を排除したLMS 8.5.0に移行するだろう。それがいつになるのか、ということだと思う。Daphileのアップデートを暫くは確認しながら、運用を考えていくことになると思う。Deezerだけではなく、たぶんTidalも使えるようになるだろう。

Daphileのアップデートがないなら、LMSサーバーをMac miniで運用していくことになる。
まあ、でもたぶん、アップデートがないということは、ないだろう。うちのDeezer HiFiがPremiumになるのと、どっちが先だろうか。

Posted at 08:34 in audio_diary | WriteBacks (0) | Edit Tagged as: , ,
Page 2 / 31 :  ‹ Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Next › »