abk1's scratched blog 3::AUDIO DIARY

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

Apr 17, 2013

Vine Mpd ppcについて覚書(11)mpd.conf : audio_buffer_sizeとbuffer_before_play

mpd.confの記載内容に関して。
過去のエントリーで以下のように書いていた。

# MPD Internal Buffering ####

audio_buffer_size		"384"
buffer_before_play		"5%"
#

ここの設定について追記。新規エントリーにする。
参考にリンク。
http://linux.die.net/man/5/mpd.conf

「audio_buffer_size」と「buffer_before_play」のデフォルトは2048と10%らしい。これらを変更することで音質が変わるという。
「audio_buffer_size」の数値はkbである。
「buffer_before_play」はaudio_buffer_sizeのうち何%使うかを0~100%の範囲で設定できる。

5%は少なめの設定だが、384kbの5%ということなら20kb弱だ。
この数値にどういう意味があるのか分からない。
ひどく少ない。
256kbの5%だと12.8kbになってしまう。
これは44.1/16の音楽データだと0.1秒に満たない。384kbの5%だと0.1秒を超える。

384kbの5%は、44.1/16の音楽データだと0.1秒を超えるぐらい。
しかしうちでは88.2/24にアップサンプリングしてるので、0.1秒よりもっと短いはずだ。

上記の設定で、CD1枚単位をflac+cue sheetにリッピングしたものを通して再生する分には、全く問題ない。
しかしiTSから買ったアルバムを通して聴く場合だと、ライブ盤を再生すると音が途切れるのが分かる。m4aをギャップレス再生できないのだ。
384kb/5%では足りないのだろうか。

bufferに関連してリンク。
http://mpd.wikia.com/wiki/Music_Player_Daemon_Crossfading_Troubleshooting
リンク先から引用してみる。

MPD does crossfading by using the buffer.
The amount of buffer used for crossfading is the size of the buffer minus the amount of space reserved for buffer_before_play.
By default (2MB buffer and 25% buffer_before_play) this is approximately 9 seconds of crossfading for 44.1 khz, 16-bit, stereo audio.
If you have the buffer_before_play set to 100%, there will be no crossfading.

crossfadingという操作がmpdクライアントから設定できる。
曲再生が終わって次の曲に移る際に数秒間かぶるように出来る(秒数も設定できる)。

ここで書かれていることから推測するに、buffer_before_playで使われる以外のbufferに、crossfadingのためのデータを読み込むということらしい。
こうした特別な使途がないなら、ほとんどなくてもいいbufferなのかもしれない。
逆に、before playとcrossfading以外で使うことがあれば不具合があるかもしれない。
ギャップレス再生の不具合とは関係があるのだろうか。
http://linux.die.net/man/5/mpd.confには「Try increasing this if you hear skipping when manually changing songs.」とあるが、skippingというのがどういう状態かよく分からない。

みみず工房掲示板からも引用する。

audio_buffer_size
decoderスレッドからoutputスレッドへデータを受け渡すfifoバッファーのサイズです。
buffer_before_play
audio_buffer_sizeのデータがこれより少なくなるとdecoderが動いてバッファーにデータを追加します。
再生開始時はバッファーにデータがこの値になるまで開始されません。
この値を100%にすると常に空きが出ないようにdecoderが動きます。

ここも参考にリンク。
http://d.hatena.ne.jp/propella/20061202/p2 ALSA PCM プログラミングのサウンドバッファ - 言語ゲーム

「audio_buffer_size "384" buffer_before_play "5%"」だと、20kb弱のbufferを切らさないようにdecoderが動いてるってことになる?
audio_buffer_size "1024" buffer_before_play "100%"といった設定だと、1MBのbufferを常に抱えることになる。
全く状況が違ってくるだろう。
常にdecoderが動いてるというのは望ましい状態なのかどうか。
buffer_before_playが100%だと常にdecoderが動くということだけど、buffer_before_playが小さい場合もdecoderが動く頻度が多くなると思う。
再生音にどんな変化があるのだろう。

どんな設定がいいのか、試行錯誤してみる。

こういう試行錯誤がやりやすくなった背景にはibook G4をtelnetサーバーにしたということがある。
当初はsshを考えていたんだけど「鍵」の扱いが面倒でやめた。もしかしたら鍵を使わない設定も出来るのかもしれないが分からなかった。家庭内LANなのでと割り切ってsshdも止めてしまった。

telnetサーバーはVine Linux ppc 5.2には最初からは入ってないので、Synapticパッケージマネージャを使ってインストールした。
当然だけどtelnetを使うと何かと楽だ。いちいちオーディオラックの下からibookを引っ張り出す必要がないし、ncmpcppを操作しながら、同じ画面でmpdサーバーの状況も操作できるというのは面白い。

クラシックの歌劇のCDを曲ごとにリッピングし、flacで保存したものを再生する。
「audio_output_format」は44.1kHz、16bitに固定した。

まず「audio_buffer_size "256"」にしてみる。
「buffer_before_play」の値は、0、10、50、100と換えてみた。
結果、これでは数秒間しか音が出ないことが分かった。
256では駄目みたいだ。

次に「audio_buffer_size "264"」にしてみる。
再生自体に問題はない。
しかし「buffer_before_play "100%"」にするとncmpcppでFキーを押して早送りすると、そのあと音が出なくなるなど再生の不具合が出る。
「buffer_before_play "10%"」にすると問題なくなった。
buffer_before_play以外のbufferは使用状況によっては不可欠かもしれない。
ギャップレス再生は問題なし。

いろいろ試していく。
こまごま書いていっても分かりにくいので、結果を表にする。
縦軸が「buffer_before_play」。
横軸が「audio_buffer_size」だ。


256 264 288 320 512 1024
0 b np np np np np
10 b np np np np np
20 b np, f



30 b np, f



50 b np, f np, f np np np
60 b f



80 b
f f f np
90 b



f
100 b f f f f f
  • b : 再生しても数秒間しか音が出ない状態。
  • f : Fキーで早送りしたときに不具合が生じる。
  • np : no problem

npとfの両方が付いているのは、不具合が出る頻度が少ないと感じた所である。
あまり厳密に回数を数えたりまではしなかったので、印象での評価だ。

ざっと見た感じ、早送りにはbuffer_before_play以外のbufferが必要だと分かる。
必要な数値を計算してみる。
1024*(1-0.8)≒200、320*(1-0.5)=160、264*(1-0.3)≒185

どうやら、200kb程の余裕があれば、問題なく早送り出来るようだ。
余分のbufferが足りないと早送りの後で音が出なくなったりする。それでも何回かFキーなどを連打したら音が出る。
しかし、buffer_before_playが100%だとそれも上手くいかない。早送り自体が出来ないこともあり、止まったときに音を出すにはトラックの初めから再生するしかないようだ。

ギャップレス再生はaudio_buffer_sizeが256kbのとき以外の条件だと問題なく出来た。
256kbでは再生自体がままならなかったので仕方ない。
ということは、ギャップレス再生の可否はbufferの大きさには依存しないということだ。

m4aだとどうか。実は、audio_buffer_sizeが1024でも音が途切れる感じがあった。では、audio_buffer_sizeの数値によって途切れる感じが違ってくるかというと、以外にそうでもない。
mpdの設定よりも、ファイル形式による影響のほうが大きいのかもしれない。

現在の設定は以下の通り。きりがいい数値にした。

audio_buffer_size		"320"
buffer_before_play		"10%"

設定によって確かに音色の感触は違う。
しかし、どの設定が優れているかの判断は難しいと思った。
audio_buffer_sizeが大きいとゆったりした感触になるというのは世評のとおりだと感じた。

buffer_before_playの数値による違いは、どうもはっきりしなかった。
100%だとやや窮屈に聞こえるような印象で、音飛びさえなければ0%のほうがいいような気がする。しかし、そんな印象は気のせいじゃないか?という気もする。
素人考えだが、「0%」というけど実際に再生直前の音楽データのbufferを「0kb」で回してるなんてことは考えにくくて、実はmpdが勝手に判断してデータを切り回してると考えたほうが実際に近いのではないかと思う。

ちなみに、選曲時に「skipping」と思われる不具合も生じなかった。
そういうわけでbuffer_before_playは少なめだ。

アップサンプリングについての音質評価はまだしていない。しかし、少なくともbuffer_before_playの数値よりは影響が大きい印象だ。

ファイル形式によるギャップレス再生の不具合の違いは、そのうちまた確かめてみようと思う。
僕が使ったm4aファイルが、もともと良くないものだった可能性だってあるからだ。
iTunesで同じCDをリップして確認する必要があると思う。

追記。
CDを楽曲ごとにリップして作ったm4aファイルを再生してみた。
サンプリング周波数は320kHz。
やはりiTSで買ったファイル同様、わずかに楽曲間で音が飛ぶ。

ギャップレス再生の可否は、mpd自体の問題ではなく、各々のファイル形式のCodecによるのではないだろうか。本来ギャップレス可能になるはずのCodecにmpdが充分に適応できていないということなら、mpdの問題ということになるだろうけど。

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

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















Search


Advanced Search
Search:
Entire Site This Topic Only
Match:
Any All
Partial Whole Words only

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. ppap (piped pcm audio play)を試みるが、一筋縄に行かない、、、
  136. piCore7にmpdをインストールする方法
  137. オーディオ状況報告(2017.12.24.)
  138. 赤い鳥の音源について思ったこと
  139. fireface UCXについて再び(不覚だった、、、)
  140. オーディオ状況報告とか、いろいろ(2017.10.22. USB029H2RP導入など)
  141. ノイズ対策をあれこれやると音がずいぶん変わってしまった(11月21日USBターミネーターについて追記)
  142. fireface UCXについて(2017.09.05.追記あり)
  143. オーディオ状況報告(2017.07.05.)
  144. ハイレゾとアップサンプリング、384kHz周辺をいろいろと聴いてみた(7月2日、追記)
  145. Moode Audio3.1 384kHz/24bit i2sDACで、メモリ再生を試みる
  146. Moode Audio3.1にlibsamplerateをインストールして384kHzでi2s出力する
  147. オーディオ趣味の課題 備忘録
  148. Fishmans がリマスターで再発されたので1stアルバムを聴いてみた(2017.09.05.追記あり)
  149. mpdからmpdにflacをHTTPストリーミング機能で配信する
  150. mpdのHTTPストリーミング機能でflacを配信してみる(24日追記)
  151. MinimServerをRaspberry Pi B+で動かしてみた(24日追記)
  152. Volumioにマウントした時に機能するシンボリックリンクを作りたい
  153. VolumioをUPnP/DLNAで繋いでみた(1月4日、追記あり)
  154. UPnP/DLNAは難しかった(volumioをupnpで繋いだので追記した)
  155. オーディオ状況報告(2016.11.24.)
  156. JPLAYの音を聴いてみるなど
  157. Raspberry Piとi2sボードでのアップコンバートについて雑感
  158. mpd + SoXによるアップコンバートについて (Ras pi2用のpiCore7にはmpdのインストールが簡単にできる - 追記あり)
  159. mpd + libsamplerateによるアップコンバートについて(2021.04. 追記あり)
  160. ハイレゾを作って再生してみる、など (追記:アップコンバートすることにした)
  161. オーディオ状況報告(2016.06.14.)
  162. Raspberry Pi でメモリ再生を試みる2(raspbianにmpdをインストールする)
  163. Raspberry Pi でメモリ再生を試みる(piCore7にmpdをインストールする)-いろいろ追記あり
  164. NASの中のcue sheetの中を検索する
  165. Volumioのカーネルをバージョンアップしてみる(追記あり、さらに追記あり)
  166. Volumio 1.55 をいじってみる
  167. Raspberry pi B+ / Volumio 1.55 の運用状況
  168. VolumioのSDカード領域を拡張したのでメモ 追記:USBポートの電流出力上限を変更した
  169. 転居後の状況
  170. 引っ越した
  171. I2S DACとRaspberry Pi B+を導入 - Volumioでcue sheetを使う方法
  172. オーディオ状況報告(2014.10.01.)
  173. 加入者網終端装置(CTU)の設定でネットワークを分割する
  174. audio_output_formatについて(Vine Mpd ppcについて覚書-13)
  175. NASの入れ替え
  176. EACの覚書(2019年追記)
  177. Vine Mpd ppcについて覚書(12)デーモンの刈り込み
  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