Apr 21, 2025
PPAPで44.1kHzを再見する
去年のエントリーで、PPAPでCD同等音源(サンプリング周波数が44.1kHz)を鳴らそうとしたら上手くいかない、という話があった。音がブチブチ途切れたり、コントローラーでの操作が反映されるのに数10秒かかる。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20241212a.htm
今回、これが概ね解決したのでエントリーにしておく。
mpdサーバーが繋がっているスイッチングハブ、GS105Eは、ポートの速度を調整できる。44.1kHz音源を扱うmpdサーバーが繋がっているポートの速度を、自動(1000M)から 100M Full に変更したら、問題なく音が出て、違和感なく操作できるようになった。
といっても、mpdとalsaの設定で多少の調整は必要だったが。
つまり、Back-Endへのデータ送信が速すぎたのだ。
多分、PPAPのmpdサーバーは、音声再生時にはデータがあればあるだけ先を見ずに送ってしまう。
過剰なデータは、ncatかalsaのバッファに保存されるのだろう。
44.1kHzの音源は音声の時間あたりのデータ量が比較的少ない。だからコントローラーから出音を止めようとしても、何10秒も音が出続ける。
一方、アップサンプリングしたデータ(うちでは8倍以上にアップサンプリングする)は時間あたりのデータ量が多いので、数秒以内で反応し音が止まるので、比較的、違和感なく使える。
だから、44.1kHz音源のmpdサーバーの通信経路を100Base-Tにしたら、通信量は1000Base-Tの10分の1なので、安定して違和感なく音声再生される。100Base-Tのスイッチングハブを使ったらいいかもしれない。
あるいは、無線LANのほうが有線より遅いので、問題なく再生されるようになる(有線LANに問題があると思ったが、そうではなかった)。
mpdサーバーのLANポートへの設定ができるなら、そういう対応でもいいかもしれない。今回は試していないが、ethtoolというソフトでポートの速度を設定できるということだ。
PPAPというシステムは、サーバー間で伝送を調製する仕組みが殆ど無いということがわかる。
たぶん、ncatというのはそういうことをするソフトではないのだ。
だから人が調整してやらないといけない。
今更、そんなことに気付いた。
良くも悪くも複雑でないぶん、システムの負担が少ないので、音質上はメリットがある筈だ。
しかし、音が途切れたりバッファにデータを溜め込んだりするようでは、少ないはずの負担が増えるだろうから、そうしたメリットも目減りすることになるだろうけど。
さて、この問題を解決してみたら、意外に44.1kHzでRaspberry Piでも、そこそこ音がいい。
去年は、ちゃんと再生できていなかったのかもしれない。