abk1's scratched blog 3::AUDIO DIARY

コメントへの書き込み機能は停止していますので宜しくおねがいします。

Feb 05, 2018

ppap (piped pcm audio play)を試みるが、一筋縄に行かない、、、

昨年末、Phile Webのコミュニティで「ppap」というデジタルトランスポート方式が提案された。
Ras Piのような小型ボードPCが2つあれば実装できる。
詳しくは下記サイトを参照。以下、引用。

https://github.com/papalius/symphonic-mpd/wiki/%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%81%A8%E3%83%90%E3%83%83%E3%82%AF%E3%82%A8%E3%83%B3%E3%83%89%E3%82%92%E7%B9%8B%E3%81%90%E6%8A%80%E8%A1%93(piped-pcm-audio-play)

バックエンドは、ncat を使ってTCP4444ポートで待ち受け、流れてきたraw PCMデータをaplayに横流しします。
ncat・aplay部分のsystemdサービス定義は以下のような感じです。

ExecStart=/usr/local/bin/ncat -kl 4444 -e "/usr/local/bin/aplay-1.1.5 -M --period-size=64 --buffer-size=136710 -t raw -f cd"

フロントのmpdは、デコード済みのraw PCMをpipe outputで取り出し、ncatでバックエンドのTCP4444ポートに流し込みます。
mpd.confのaudio_outputはこんな感じです。

audio_output {
  type "pipe"
  name "PIPE"
  always_on "yes"
  command "ncat 192.168.x.x 4444"
}

肝は、DACへの出力にalsaしか使わないということだと思う。

Linux系PCからのデジタルオーディオ出力に一般的に使われてきたmpdが外されている。
データ仲介ソフトとしてncatを使うことで「mpd + alsa」だったものが「alsaだけ」になっているということ。
mpdは「フロント」で音楽データを処理し「バックエンド」のalsaに送る役割、つまり一般的なupnpシステムであれば、dlnaサーバーソフト(例えばminimserverなど)が担ってきた役割を受け持っている、と言っていいのかな。

デジタルトランスポートとしての機能を複数のPCで役割分担させることによって、高音質化を目指す前例はたくさんある。しかしそれはJPLAYだったりupnp/dlnaシステムを使用したものだったりして、僕のニーズには合わないものだった。うちではlinuxでflac + cue sheetが使えないといけないのだ。
他にいくつか、僕なりに試みた方法もあったけど力及ばず満足できる物にならなかった。

当時、いろいろと試みる中で、minimserverを動かしてみたときは下図のような構成。
エントリーにしてアップしている。MinimServerをRaspberry Pi B+で動かしてみた

今回、ppapを知ったとき、過去に求めながら発見できなかったものが提示されていると思った。
これはやってみないといけないと思ったんだけど、あれこれあって、年を越し、月日が過ぎるうちに、なんだか雲行きが怪しくなってきた。本家サイトで公開中断が続いている。気にならないわけじゃないけど、だからといって僕のほうで余裕が出来たにも関わらず自粛?して手を付けないというのもおかしな話なので、手元の機材を弄り始めた、というところ。

僕は変なところで捻くれ者なんだろう、いくつか使えそうなディスクイメージがアップされているにも関らず、手持ちのものから弄っている。慣れないディストリの設定とか頭使ってやる余裕ないなあっていう感じ。老化現象だ。細かい設定とか神経配る気分がさらさら無くなっているのを感じるこの頃で、かなりマイペースだ。

まず、フロント。
試しに普段使いのCompaq 6730b Fedora 26を用意。既にmpdがインストール済み。
これにnmapをインストール。nmapに転送ソフトncatが含まれている。
dnf install nmap
さくっと終わる。
続いてmpd.confに、前述記述を参考にpipeの出力設定を書き込み

audio_output {
        type            "pipe"
        name            "my pipe"
        always_on "yes"
command "ncat 192.168.1.xxx 4444"
}

次にバックエンド。
Ras Pi B+にpiCore7を焼いてi2sDACの設定を書き込み刺して起動。
ip固定など初期設定して、alsaとnmap関連のtczをインストール。
上記のサイトやncat、aplayのネット上のマニュアルを参考に、下記コマンド(いきなりだけどbuffer-sizeは減らしてみた)を打ったらバックエンドは待機状態となる。

/usr/local/bin/ncat -kl 4444 -e "/usr/local/bin/aplay -M --period-size=64 --buffer-size=512 -t raw -f cd

フロントに戻って、mpdを再起動。
これでpipeからncatを使って音楽データを出力できるようになる。
ncmpcppでコントロール。

若干の試行錯誤はしたけど、比較的すんなり音が出た。
このとき、試しで継いでいたのは小さなパワードスピーカー。
その音を聴くと、なんだか凄そうと感じられるものがある。いつもと違う感というか。
図にしたら、こんな感じ。
minimserverを使ったupnpより、かなりすっきりしている。特にDACの直前が。

さて、sshからバックエンドに打った前記コマンドを、直接そのままバックエンドのbootlocal.shファイルに記載し、リブートしてみる。
バックエンドの起動を確認し、手元の6730bでncmpcppを操作したら、音が出た。
これで、起動後にsshでログインしてコマンドを打ったりしなくても、起動させたらそのままバックエンドとして機能するのを確認した。

次にメインシステムのnano iDSD LEに継いでいるRas Pi 2、piCore7にnmapをインストールして、バックエンドにして同様に音を出してみた。
なかなかいいかもしれない。鮮度が違う気がする(所謂プラセボ効果という奴)。

試験運用は上々。
フロントをRas Pi 2にして運用したい。
ウェブとか見てる普段使いの6730bをオーディオメインシステムのmpdサーバーにするのはどうかと思うので。
下図のような感じに出来れば。

先ほど使ったRas Pi 2、piCore7のmpd.conf設定を書き変える。
これで簡単に出力できるかな、と思ったら、pipeなんて出力は対応してないよ、とアラートが出てmpdが起動しない。
えぇー、、何それ。

fatal_error: line 109: No such audio output plugin: pipe

さて、弱った。
pipeが使えないって意味がわからない。pipeって「|」でしょ?使えないってありなの?linux的に。
本家サイトではvolumio2でもフロントに使えるという話もあり、いっそ使ってみようかとも思ったけど、、、なんか気が進まない。
つうか、volumio1.55もraspbianも、気付いたら1年もまともに触ってないのだ。
volumio2って、どうなってるのって感じ。
pipeについてあれこれと調べる。pipeというのは「pipeline」とも言われ、shellの機能として組み込まれているらしい?ということは分かった。
でも、結局、よくわからないのだった。

mpdをソースからコンパイルする際に指定したら、pipelineを使えるようにできるらしいということは分かった。
いっそ、こんな感じ。
./configure --enable-pipe-output
一見、きれいにconfigureは通るが、makeでエラーになる、、、
config.logを読むも、、、何が何だか分からない。

しかたない、raspbian stretchでやってみるか、、、
結果だけ言うと、pipeを使えるようにインストールはできたけど、いざ音を出そうとしたら「paused」で音が出ない。
/var/log/mpd/mpd.logを確認。

sh: 1: cannot create ncat: Permission denied
Jan 28 04:05 : errno: "my pipe" [pipe] failed to play: Write error on pipe: Broken pipe
Jan 28 04:05 : output: Failed to open audio output

Permission deniedって、どうしたらいいのか。mpdにroot権限あげたらいいのか?
いろいろやってみたけど、サジを投げた。

いっそ駄目元でpiCore6でやってみっか、、、
おお、、、いつの間にか、tczにmpdもdoxygenもboostもあるじゃん、、、
しかし結果はpiCore7と同様。pipe2がない?ということで、ソースからのコンパイルも失敗。

半月が過ぎて、結局、フロントは6730bのFedoraでしかうまくいってない、、、
これで本家もpipe使うのをやめたのかな、、、
、、、Fedoraって、ラズパイで動くかな、、、
Fedora27で用意されてるじゃないですか!Raspberry Pi 2/3で動くディストリが!

まあ、そんなこんなでFedora27をラズパイ2で動かそうとして、なにをどうミスったか、母艦6730bのFedora26をクラッシュさせてしまった。
OS再インストール環境の再構築をして、このエントリーを書いている。
まあ、なんだな、ちょっと休む。
ひどい風邪も引き込んだし、幸田浩子のアベマリアでもBGMにしながら養生しよう、、、

Posted at 05:41 in audio_diary | WriteBacks (0) | Edit Tagged as: , ,
WriteBacks
TrackBack ping me at
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20180205a.trackback
Post a comment

writeback message:
Caution!!!
Now, Anyone cannot post a comment.















Search


Advanced Search

Recent entries from same category
  1. PPAPで44.1kHzを再見する
  2. オーディオ状況報告(2025.04.20.)
  3. LAN ネットワークを見直してみた 7-2(GS105EによるVLANの挙動について - 13日、追記)
  4. LAN ネットワークを見直してみた 7(GS105EでポートベースVLANを使ってみる)
  5. MQAメモ
  6. LAN ネットワークを見直してみた 6(ハブについて現時点でのまとめ + NASの移動)
  7. LAN ネットワークを見直してみる 5(Walter Tilgner / Whispering Forest を巡る顛末)
  8. LAN ネットワークを見直してみる 4 (18日、19日に追記)
  9. LAN ネットワークを見直してみる 3
  10. LAN ネットワークを見直してみる 2
  11. オーディオ状況報告(2025.01.03.)
  12. テストシステムのPPAPで、44.1kHzを鳴らしてみる
  13. RoonとQobuzをやめた、他いくつか
  14. 書くことが無いので、libsamplerate (SRC) によるアップサンプリングの設定変更で音質が変わるかどうかを確認した
  15. オーディオ状況報告(2024.07.15.)
  16. 新しいLMSとDaphileとDeezerプラグインについてメモ
  17. 古いRaspberry PiをRoon、Mpd、UPnPとかで使おうとしたら
  18. Raspberry Pi 3B+をRoon Bridgeにする
  19. Logitech Media ServerのUPnP pluginとmpdの設定を見直した
  20. Mac mini (2010 mid)でFedoraが動くようになったので
  21. Logitech Media Serverを整理する
  22. Logitech Media ServerをMac miniにインストールして新しいDeezerプラグインを試みる
  23. DaphileでDeezerの再生ができなくなるので(3月25日、追記)
  24. オーディオ状況報告(2024.01.21.)31日追記:Deezerが使えなくなる
  25. ストレージ
  26. mpdサーバーに銅メッシュを仕込んでみる(17日、追記)
  27. アップサンプリングの設定を変えてmpdサーバーの負荷を減らしてみる
  28. Daphileサーバーに銅メッシュを組み込んでみる
  29. NASが壊れた
  30. 銅素材でPCトランスポート筐体内のノイズ対策を試みる(10月7日、追記)
  31. I try Roon on Linux
  32. オーディオ状況報告(2023.08.03.)
  33. LAN ネットワークを見直してみる
  34. オーディオ状況報告(2023.06.28.)
  35. HP Probook 450 G9, mpd, libsamplerateで高品質アップサンプリングを試みる(6月1日、4日、追記)
  36. 最新ノートPCで起動できるTiny Core 64 mpdサーバーを過去の資産の切り貼りで作る
  37. 最新のノートPCを最新のTiny Core 64で起動する
  38. リッピング(17日、追記)
  39. なぜpiCorePlayerとM500でMQAを再生すると、音が途切れることがあるのだろう
  40. Deezer hifiのMQAをDaphile、piCorePlayerで再生する(追記:WiFiでつなぐことにした)
  41. resampler {type "Best Sinc Interpolator"} 192kHzってどうなんだろう
  42. resampler {type "Best Sinc Interpolator"} を試してみるべきかも・・・(7日、追記あり)
  43. earfluff and eyecandy によるJitterの解説 その1
  44. earfluff and eyecandy によるJitterの解説 その2
  45. earfluff and eyecandy によるJitterの解説 その3
  46. TAS Super LP List と TAS Super Download List
  47. Ras Pi B+とpiCore13.1でPPAP Back Endを作ってみたけど
  48. オーディオ状況報告(2022.05.28.)
  49. Behringer MONITOR1の性能を確認する(5月24日、追記)
  50. いわゆる直結を試みる
  51. DVDドライブで聴くCDの音が良いような
  52. DaphileでMQAデータをpiCorePlayerに転送再生する
  53. Daphile 設定関係の覚え書き
  54. オーディオ状況報告(2022.01.20.)
  55. カーステレオにRas Pi2+piCore7+MPD+i2s DAC (追記 10月31日、11月03日)
  56. オーディオ状況報告(2021.09.05.)
  57. PPAP Back-Endをタンデム化
  58. ネットワーク上のサーバー運用を再考する
  59. pulseaudioでMQAデータを転送再生する
  60. DAC/アンプの切り替えケーブルによる音質変化ついて
  61. オーディオ状況報告(2021.06.14. 06.18. 追記あり)
  62. DAC/アンプの切り替え盤を設えてみた
  63. Musician Pegasus R2R DACを入手した(12.01. 12.07. 追記)
  64. mpdでCD再生に対応する(2022.03.29./.08.16./2025.04.08. 追記)
  65. オーディオ状況報告(2021.05.02.)
  66. アップしたイメージのPPAPへの転用についてPhile Webに記載した(2022.06.21. 追記:Phile Webサービス終了にて記載内容を転載した)
  67. イメージファイルをアップするにあたって、うちのセットからの変更点
  68. UPnPレンダラー兼アップサンプリングサーバーのディスクイメージをアップした
  69. DaphileにNASをマウントしてみる(cue sheetが使える!)
  70. オーディオ状況報告(2021.04.04. もうちょっと整理したい)
  71. DaphileとTiny CoreでDeezer hifiを768kHzにアップサンプリングする(ついでにPPAPで飛ばす - たびたび追記あり)
  72. DaphileとVolumio 1.55でDeezer hifiをアップサンプリングする
  73. DaphileとpiCorePlayerでDeezer hifiを聴いてみる
  74. PulseaudioによるLan経由音声データ転送のデータ量が大きすぎる(未解決案件)
  75. Deezer Web Player使用をサポートするデータベースを運用してみる
  76. ソフトを起動する順番を変えてみる ~ pulseaudioによる音声データ転送 使い方まとめ(2021.01.31. 06.26. 追記)
  77. pulseaudio クライアントのFirefoxを強化する
  78. オーディオ状況報告(2020.11.22.)
  79. pulseaudioサーバーを強化する(その2:12月11日、追記あり)
  80. pulseaudioサーバーを強化する(10月24、25日、11月01、05、10日、追記あり)
  81. ストリーミング音源をpulseaudioで転送しアップサンプリング再生する(10月15日、追記)
  82. 音楽ストリーミングサービス覚書
  83. Pulseaudioの備忘録
  84. 音楽ストリーミングサービスのウェブプレーヤーを使う
  85. Pulseaudioを使ってRaspberry piにAmazon Prime Musicを転送再生する(9月8日追記)
  86. 引き続き、hwとplughwについて
  87. PPAP back-Endの設定を考え直す(hwとplughw)(8月20日追記)
  88. オーディオ状況報告(2020.08.07.)
  89. バランス接続に業務用アッテネーターを試す
  90. Brooklyn AmpでSM-SX100の代替を試みる(07.14. 2022.02.24. 追記)
  91. 手持ちのアンプでSM-SX100の代替を試みる
  92. SMSL M500でMQAを聴いてみた(10.26. 追記あり)
  93. ジッター再々考
  94. サンプリングパラメータによるジッターの影響の差異について
  95. 今更だがpiCore7を復帰させる
  96. 700kHz台でPPAP 複数のFrontを使い分ける(2020.05.01、2023.06.22 追記)
  97. 700kHz台でPPAP(22日、4月7日追記)
  98. オーディオ状況報告(2020.03.08.)
  99. コンデンサーと抵抗と銅板による仮想アース(1月23日、26日、2月10日、16日、22日、27日、3月1日、8日追記)
  100. GNDについての考察してもわけがわからない
  101. コンデンサーと抵抗による仮想アースと銅板(追記あり)
  102. Lascia la spina (2021.04、2022.11 追記あり)
  103. コンデンサーと抵抗による仮想アース
  104. apu2で、Tiny CorePure64-10.1にmpd(0.20、0.21)をインストールする(その4:動作確認)
  105. apu2で、Tiny CorePure64-10.1にmpd(0.20、0.21)をインストールする(その3:0.21 インストール)
  106. apu2で、Tiny CorePure64-10.1にmpd(0.20、0.21)をインストールする(その2:0.20 インストール)
  107. apu2で、Tiny CorePure64-10.1にmpd(0.20、0.21)をインストールする(その1:準備)
  108. LANに機械をつなぐということについて
  109. apu2d4でTiny CorePure64 10.1を動かす
  110. だんだん秋になってくる
  111. ケーブルインシュレーターをコンセントに使う
  112. 久しぶりにインシュレーターを追加する
  113. オーディオ状況報告(2019.05.03.)
  114. 歌声の録音について自分なりに考えた
  115. アップサンプリングについて色々
  116. オーディオ状況報告(2018.12.30.)
  117. Compaq 6730bとTiny coreでアップサンプリング (768kHzアップサンプリングの音について)
  118. apu2c4で768kHzへのアップサンプリングに取り組む
  119. ADI-2 DACとpiCoreで、384kHz以上を鳴らしてみる
  120. raspberry piをncmpcppサーバーに仕立ててみた
  121. RME ADI-2 DACを導入した
  122. fireface UCXの電源をiPowerに替えてみた
  123. USB電源用のDCノイズフィルターを作ってみた
  124. ようやくNASを追加した
  125. piCoreのonboot.lstを編集してタスク軽減を目指す
  126. PPAP (piped pcm audio play) 関連サイトアドレス集
  127. piCore7で作るPPAP Front
  128. piCore7で作るPPAP Back-End (2020.08.16.追記)
  129. PPAP Back-EndのUSB出力が48kHzになっていたので修正した(2020.08.16.追記)
  130. RAMメモリ再生とppap(piped PCM audio play)を比較した
  131. オーディオ状況報告(2018.04.12.)
  132. 今一度、44.1/16を聴き比べる
  133. MPDのアップサンプリングによる音への影響を確認してみる(SoXとLibsamplerateを比較する)
  134. piCore7でppap (piped pcm audio play)を試みる(05.22、2020.08.16、追記)
  135. piCore7にmpdをインストールする方法
  136. オーディオ状況報告(2017.12.24.)
  137. 赤い鳥の音源について思ったこと
  138. fireface UCXについて再び(不覚だった、、、)
  139. オーディオ状況報告とか、いろいろ(2017.10.22. USB029H2RP導入など)
  140. ノイズ対策をあれこれやると音がずいぶん変わってしまった(11月21日USBターミネーターについて追記)
  141. fireface UCXについて(2017.09.05.追記あり)
  142. オーディオ状況報告(2017.07.05.)
  143. ハイレゾとアップサンプリング、384kHz周辺をいろいろと聴いてみた(7月2日、追記)
  144. Moode Audio3.1 384kHz/24bit i2sDACで、メモリ再生を試みる
  145. Moode Audio3.1にlibsamplerateをインストールして384kHzでi2s出力する
  146. オーディオ趣味の課題 備忘録
  147. Fishmans がリマスターで再発されたので1stアルバムを聴いてみた(2017.09.05.追記あり)
  148. mpdからmpdにflacをHTTPストリーミング機能で配信する
  149. mpdのHTTPストリーミング機能でflacを配信してみる(24日追記)
  150. MinimServerをRaspberry Pi B+で動かしてみた(24日追記)
  151. Volumioにマウントした時に機能するシンボリックリンクを作りたい
  152. VolumioをUPnP/DLNAで繋いでみた(1月4日、追記あり)
  153. UPnP/DLNAは難しかった(volumioをupnpで繋いだので追記した)
  154. オーディオ状況報告(2016.11.24.)
  155. JPLAYの音を聴いてみるなど
  156. Raspberry Piとi2sボードでのアップコンバートについて雑感
  157. mpd + SoXによるアップコンバートについて (Ras pi2用のpiCore7にはmpdのインストールが簡単にできる - 追記あり)
  158. mpd + libsamplerateによるアップコンバートについて(2021.04. 追記あり)
  159. ハイレゾを作って再生してみる、など (追記:アップコンバートすることにした)
  160. オーディオ状況報告(2016.06.14.)
  161. Raspberry Pi でメモリ再生を試みる2(raspbianにmpdをインストールする)
  162. Raspberry Pi でメモリ再生を試みる(piCore7にmpdをインストールする)-いろいろ追記あり
  163. NASの中のcue sheetの中を検索する
  164. Volumioのカーネルをバージョンアップしてみる(追記あり、さらに追記あり)
  165. Volumio 1.55 をいじってみる
  166. Raspberry pi B+ / Volumio 1.55 の運用状況
  167. VolumioのSDカード領域を拡張したのでメモ 追記:USBポートの電流出力上限を変更した
  168. 転居後の状況
  169. 引っ越した
  170. I2S DACとRaspberry Pi B+を導入 - Volumioでcue sheetを使う方法
  171. オーディオ状況報告(2014.10.01.)
  172. 加入者網終端装置(CTU)の設定でネットワークを分割する
  173. audio_output_formatについて(Vine Mpd ppcについて覚書-13)
  174. NASの入れ替え
  175. EACの覚書(2019年追記)
  176. Vine Mpd ppcについて覚書(12)デーモンの刈り込み
  177. Vine Mpd ppcについて覚書(11)mpd.conf : audio_buffer_sizeとbuffer_before_play
  178. Vine Mpd ppcについて覚書(10)NASのマウントについて
  179. オーディオ状況報告
  180. Vine Mpd ppcについて覚書(9)twmについて(2014.03.14.追記)
  181. Vine Mpd ppcについて覚書(8)サンプリング周波数とビットレートの変更+追記:mpd.confの設定
  182. Vine Mpd ppcについて覚書(7)というよりEACの設定について
  183. Vine Mpd ppcについて覚書(6)不良cue sheetによる再生の不具合
  184. Vine Mpd ppcについて覚書(5)alsa関連で要らないものを入れすぎていた
  185. Vine Mpd ppcについて覚書(4)ncmpcppのインストール
  186. Vine Mpd ppcについて覚書(3)ncmpcppの設定
  187. Vine Mpd ppcについて覚書(2)mpdのインストール
  188. Vine Mpd ppcについて覚書(1)前書き・OS選択
  189.  オーディオ状況報告
  190. 4年前との違い
  191. ファイルオーディオ現状
  192. ザ・ビートルズBOX USBをEMI Japanから買った
  193. abk1
  194. Magic Dreamの使いこなし顛末
  195. Magic Dreamと黒檀コロの比較
  196. Magic Dream、ようやく使ってみた
  197. Magic Dream、とりあえず使ってみた/ゴムシートの効果
  198. Magic Dream
  199. Audio Diary

May
Sun Mon Tue Wed Thu Fri Sat
       
28

abk1's scratched blog 3::AUDIO DIARY

Categories
Archives

ABK1s HOMEPAGE::audio diary ~2006

Search


Syndicate AUDIO DIARY (XML)
Syndicate this site (XML)

Powered by
blosxom 2.0
and
modified by
blosxom starter kit