Current filter: »phileweb« (Click tag to exclude it or click a conjunction to switch them.)
May 02, 2021
オーディオ状況報告(2021.05.02.)
最近のシステム構成は下図のような感じ。上流を若干整理した。

Daphileサーバーはオーディオシステムから離した。音質上の配慮ではなく使い易さの事情だ。音質上の変化もないと思う。
当初はDeezerの再生だけ想定していたんだけど、NASマウントの再生でも使用するようになった。流れというか、ついついというか、いちいちncmpcppを開くのが面倒で、Daphile画面からNASのディレクトリ階層構造をたどって鳴らしている。
本当は、ncmpcppから操作する方がずっと速いのだ。Daphileはいちいち表示に時間がかかる。サクサク快適なのはncmpcppのほうがずっと上だけど、、、
NAS音源再生の音は、Daphileからの操作とncmpcppからの再生では、わずかだがncmpcppのほうが勝る。upmpdcliとnfs、後者の方が負担が少ないということなんだろう。しかし、ふだん聴くのに神経質になるほどの差異ではないので、目の前で開いているDaphileのインターフェイスから操作してしまうということだ。朝三暮四というか怠惰である。
Deezerに置いてない音源もざらにあるので、未だにCDを購入することもあるし、リッピングしたファイルは捨てられない。
DaphileではYoutubeも鳴らすことが出来るらしいんだけど、なんだか手順が複雑で分かりにくく感じられて出来ていない。
そういうわけで、アップサンプリングサーバーのPulseaudioサーバーとしての機能も維持している。Youtubeの音声をサーバーに転送し上限384kHzにアップして再生する手法で、所謂空気録音の試聴とかで使うつもりなんだけど、まだ整備できていない。
FX-08miniを1台戻している。電源アダプターが壊れたので、過去にRaspberry Piに使って意外に好印象だったUSB電源を使って動かしている。
音楽信号が700kHz台の領域とそれ以外を100Base-Tで分ける形になっている。一応これは音質上の配慮なんだけど、おまじないレベルで留まっていて、音の変化があるかどうかの確認をしていない。たぶん、しないまんまになるんじゃないかなあ、、、なんとなく良くなってる気がするで済ませている。
アップサンプリングサーバーのディスクイメージをアップして半月だが、どの程度ダウンロードされているのか、分からない。まあ、それはGoogle Driveの仕様みたいなので仕方ないけど。
もう暫くツイッターのトップには掲示ツイートを留めておこうとは思っている。
柄にもなく今回アップしたのは、今回のイメージは比較的使い易くまとまったので、アップしておく意味もあるかな、と思えたというのが大きい。
数年前にイメージをアップしないのかと訊かれたことはあったんだけど、当時はしなかった。
有志の努力で広く公開され提供されているものを、此方でダウンロードして組み合わせただけで、作ろうと思えば誰でも作れるものを、自分で作ったもの?のようにアップする気にはなれなかったというのが大きかった。
加えて、自分が使っているのが一般的にみて使い易いシステムとは思えなかったというのもあった。使いにくいところに、大したフォローもできないということになれば、興味を持ってダウンロードしてくれた筈の人が興味を失うことになり、そういうのは残念なので。
しかし手前味噌だが、今回アップしたイメージのセットは使い易く出来ていて、アップしてもいいだろうと思った。
初心者でも左程困らずに動かせそうだし、多少マニアックな使い方にも耐えそうだ。
ただ組み合わせただけ、という意味では以前と同じだけど、かかる手間暇の軽減という意味も今回のはあるだろうし、まあ、いいか、という気になった。いろいろネットから世話になっているので成果物を置いとくというのもおかしいが、何処かしら、こっちの気が済むというのがある。自己満足に過ぎないといえば、そうなんだろうけど。
当初からの目的は、libsamplerateの音を実際に聴いてみてほしいというのがあった。
環境を整えた上で聴いたことがある人は、実は少ないのではないかと思うので。
充分にPCのスペックを上げて、300、700kHzとサンプリング周波数を上げてこそ、libsamplerateを使う本当のメリットが生まれてくるというのが僕の実感だ。そういう再生をしてもらって、どんなシステムだとどんな風に聴こえるのか、僕自身が知りたかったというのがある。
そんな手法では聴きたくないという人もいるだろうし、当然そういう人には薦めない。
しかし、どうなのかね、、、
この数年間で、音質改善するいろんな手法が技術的に生まれてきているし、ニーズも興味をもたれることも、あんまりないかもしれない。libsamplerateは使っても意味が無いということになっているようで、いろんな事情で廃れる技術というのはあるんで、それならそれで仕方ないということになるのかも知れないが。
Apr 25, 2021
アップしたイメージのPPAPへの転用についてPhile Webに記載した(2022.06.21. 追記:Phile Webサービス終了にて記載内容を転載した)
先日アップしたイメージをPPAPに転用する方法について記載した日記をPhile webにアップした。
いや、人に説明するというのは難しいものだ。こっちは分かってるから相手もある程度分かってるかのような気になってしまう。とりあえず、理解してもらう説明は後回しで(というか、それって大変すぎ)、動かせるようにということで書いている。それでも何かしら不備がある。
アップしたイメージのPPAPへの転用について
https://community.phileweb.com/mypage/entry/5010/20210425/67563/
PPAPでの使い方なので、バックエンドもアップした。
両方のイメージファイルを置いてあるGoogleのアドレスを書いておく。
20210418-TC64-mpd-pa-upnp-AutoStart.img
https://drive.google.com/file/d/1eZ-ijekRj-ond1OIa7aZXgLxjWYbsIPy/view?usp=sharing
tc64-11-1-base1z-2020-04-05-PPAP-BE.img
https://drive.google.com/file/d/1kHhCtR4WCWs3_8i32JrVgGFin-YK9KIZ/view?usp=sharing
2022.06.21.追記。
Phile Webが11月末にサービス終了になるということで、この日記の内容をこちらにサルベージしておくことにした。
若干、読み易いように修正など入れている。
アップしたイメージのPPAPへの転用について
post_date: 2021-04-25 11:59:42
先日アップしたUPnPレンダラー兼アップサンプリングサーバーのイメージですが、PPAPという手法のフロントサーバーとして機能させることが出来ます。
今回は、この件について記載しておきます。まずPPAP (Piped Pcm Audio Play)について。
過去にPhile Webで話題になっていた手法なので、知っておられる方も多いと思います。
通常は1台のmpd音楽サーバーが行っているデータ処理の流れを、ncatというソフトを使い2台に分割することで音質改善を狙うというものでした。![]()
フロントとバックエンド、2つのPCをLANで繋いで運用します。
扱う音楽信号はPCMのみです。
フォーマット固定の制約があります。つまり2つのPCで扱う信号のフォーマットを一致させる必要があります。
ここでいうフォーマットとは「44100 s16le」とか「384000 s32le」などというもので、Flac、WAV、DSDといったファイル形式のことではありません。PCM信号のフォーマットを合わせないといけないということです。バックエンドは、設定と異なるフォーマットの音声信号を受け付けません。
音源にCDリッピングファイルやハイレゾファイルなど、異なるフォーマットが混在しているような状況だと、合わないファイルを再生するときはフロント側でリサンプリングして合わせる必要があります。ビットパーフェクトでDACに信号を送り込むことができません。逆に言えば、ビットパーフェクトに拘らないのであれば大きな問題になりません。DACが対応できる最高のフォーマットにリサンプリングする設定にして運用する等すればいいということになります。当方ではそのようにして運用していました。
ここから、今回のセットをPPAPで使う方法について書いていきます。
運用に必要な設定をするにはsshでログインし、キーボードを打ってコマンド操作をする必要があります。設定ファイルの編集にはviエディタを操作していただく必要があります。まず、バックエンドについての説明です。
バックエンドは、フロントから信号が送られてきたらDACに伝送するようになっています。
イメージを、グーグルにアップしました。https://drive.google.com/file/d/1kHhCtR4WCWs3_8i32JrVgGFin-YK9KIZ/view?usp=sharing
フロント同様、x86-64対応、Tiny Core Pure64ベースのセットです。
ストレージに焼いて、起動ディスクとして使用してください。
USB-DACをつなぐことを想定しています。起動に際してBIOSでPC自体の音声出力をオフにしてください。LAN経由でsshでログインし設定します。
ユーザー「tc」、パスも「tc」です。USB-DACを繋いだ状態で、コマンドを打って確認、設定していきます。
当方での設定手順を提示してみます。● sshでログインします。
例では192.168.1.15になっていますが、バックエンドのローカルipアドレスを入れてください。[ab@fedora1 ~]$ ssh tc@192.168.1.15 tc@192.168.1.15's password: ( '>') /) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY. (/-_--_-\) www.tinycorelinux.net● aplay -lで、USB-DACがどのように認識されているか確認します。
この例では、card 1、device 0 です。tc@box:~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 1: IncRAL2496UT1 [RATOC Systems, Inc.RAL-2496UT1_], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0● DACへの出力可能なフォーマットをコマンドで確認します。
この例ではDACは「card 1」なのでコマンドも「card1」で調べます。DACが「card 0」の場合は、「card0」で調べます。tc@box:~$ cat /proc/asound/card1/stream0 RATOC Systems, Inc. RATOC Systems, Inc.RAL-2496UT1_ at usb-0000:00:14.0-2, high : USB Audio Playback: Status: Stop Interface 1 Altset 1 Format: S32_LE Channels: 2 Endpoint: 1 OUT (ASYNC) Rates: 44100, 48000, 88200, 96000, 176400, 192000 Data packet interval: 125 us Bits: 24● 「/opt/bootlocal.sh」はOSブート時に起動するコマンド等を書き込む設定ファイルです。
ここに書かれているncatのコマンドを編集します。
card 1、device 0 なので「hw:1,0」、FormatとRatesの数値を参考に、下記のように設定します。tc@box:~$ sudo vi /opt/bootlocal.sh /usr/local/bin/ncat -kl 4444 -e "/usr/local/bin/aplay -D hw:1,0 -M --period-size=4096 --buffer-size=32768 -t raw -f S32_LE -r192000 -c2"● 「filetool.sh -b」で設定保存した上で、再起動します。
Tiny Coreではこのコマンドを打たなかったら設定した内容が消えて残りませんので必須です。tc@box:~$ filetool.sh -b tc@box:~$ sudo reboot再起動したら、バックエンドとして機能するはずです。
次にフロントについて説明します。
先日アップしたイメージを使います。https://drive.google.com/file/d/1eZ-ijekRj-ond1OIa7aZXgLxjWYbsIPy/view?usp=sharing
このイメージをPPAPフロントとして運用するには、設定を書き換える必要があります。
/home/tc/.mpdconfがmpdの設定ファイルとなっています。● sshでログインします。
例では192.168.1.15になっていますが、フロントのローカルipアドレスを入れてください。[ab@fedora1 ~]$ ssh tc@192.168.1.15 tc@192.168.1.15's password: ( '>') /) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY. (/-_--_-\) www.tinycorelinux.net● /home/tc/.mpdconf のaudio_outputを編集します。
tc@box:~$ vi .mpdconf # audio_output { # type "pipe" # name "ppappipe" # always_on "yes" # command "/usr/local/bin/ncat 192.168.1.xx 4444" # } audio_output { type "alsa" name "My ALSA Device 0" device "plughw:0,0" # optional ### mixer_type "software" } audio_output { type "alsa" name "My ALSA Device 1" device "plughw:1,0" # optional ### mixer_type "software" }● outputの設定は上記のような記載になっていますが、下記のように書き直します。
alsa出力をコメントアウト。pipe出力をコメント解除してください。
pipe出力の「192.168.1.xx」の部分は、バックエンドのローカルIPアドレスに書き換えてください。audio_output { type "pipe" name "ppappipe" always_on "yes" command "/usr/local/bin/ncat 192.168.1.xx 4444" } #audio_output { # type "alsa" # name "My ALSA Device 0" # device "plughw:0,0" # optional ### mixer_type "software" #} #audio_output { # type "alsa" # name "My ALSA Device 1" # device "plughw:1,0" # optional ### mixer_type "software" #}● audio_output_formatの設定は下記のように「768000:32:2」が有効になっています。これをバックエンドで設定した数値に合わせてください。合っていないと音声出力自体が出来なくなります。
audio_buffer_size、buffer_before_playは、各自の状況、環境に合わせて調整してください。
● アップしたイメージは当方が試験運用したまんまになっていて、そのせいで設定の選択肢が複数記載されたままコメントアウトされています。これをそのままコメント解除したら設定が重複しエラーになります。
コメント解除する際に指示項目が重複しないように注意してください。audio_output_format "768000:32:2" # audio_output_format "705600:32:2" audio_buffer_size "65536" buffer_before_play "50%" # audio_output_format "384000:32:2" # audio_buffer_size "32768" # buffer_before_play "40%" # audio_output_format "192000:32:2" # audio_buffer_size "16384" # audio_buffer_size "32768" # buffer_before_play "40%" #audio_output_format "44100:16:2" #audio_buffer_size "512" #buffer_before_play "20%"● 「filetool.sh -b」で設定保存し、再起動します。
設定保存しなかったら、再起動で設定した内容が消えますので必須です。tc@box:~$ filetool.sh -b tc@box:~$ sudo reboot再起動したら、フロントとして機能するはずです。
.mpdconfのmusic directory等、他の設定は、各自の環境、使用目的に合わせて設定してください。UPnPレンダラーとして使用する場合は、上記に記述した内容の設定編集だけでよい筈ですが、NASをマウントするなど他の使い方をされる場合は、使用状況に応じての設定が必要になります。
ここにはそこまで記載する余裕がないので、割愛します。
Apr 19, 2021
イメージファイルをアップするにあたって、うちのセットからの変更点
先日、Google Driveにうちで使っているアップサンプリングサーバーをイメージ化したものをアップした。
Phile Webで記事にしている。
UPnPレンダラー兼アップサンプリングサーバーのディスクイメージをアップしました
https://community.phileweb.com/mypage/entry/5010/20210418/67519/https://drive.google.com/file/d/1eZ-ijekRj-ond1OIa7aZXgLxjWYbsIPy/view?usp=sharing
うちのシステムそのままだと不便だろうと思ったので、アップする前にいくつか改造を施した。
それらの点についてメモしておく。
1)OSブート時にmpd、upmpdcliが自動的に起動するようにした
うちではmpd、upmpdcliはsshでログインして起動するようにしている。 これを、OS boot時に同時に起動させるようにした。
sudo vi /opt/bootlocal.sh mpd /home/tc/.mpdconf adduser upmpdcli -H -D upmpdcli -D -c /home/tc/.upmpdcliconf vi .upmpdcliconf mpdhost = localhost logfilename = /home/tc/.upmpdcli.log loglevel = 2 friendlyname = MPD-SRC mpdport = 6600
これで、mpdはrootで起動する。 upmpdcliはrootでは起動できない仕様なので、ユーザーupmpdcliをboot時に作成し、これを依り代に起動させる。
うちのシステムでは何故こうしていないかというと、mpdがrootで起動していたら「mpd --kill」コマンドが効かないからだ。 mpd.confを書き換え設定変更することが多かったので、たびたびmpdを止める必要があった。いちいちps打ってプロセスidを確認してsudo killとか、面倒でやっていられない。 だから自動起動は不採用になった。
upmpdcliについては、そうした問題はないので採用してもいいんだけど、mpd起動のついでにupmpdcliもコマンド1発で起こせるので、ほったらかしになっているという感じ。この際だから、うちでも使うことにするかもしれない。
2)alsa出力設定を2つにした
mpd.confでalsa出力を設定している。 古いノートPCや、現在のうちのアップサンプリングサーバーでは問題なかったんだけど、新しいノートPC(といっても、10年近く前に発売だけど)でbootしたとき、BIOS設定でPCのサウンドカードをオフにしただけでは音が出ないことがあった。 aplay -lで確認したら、0,0ではなく1,0がUSB-DACに振られている。
tc@box:~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 1: IncRAL2496UT1 [RATOC Systems, Inc.RAL-2496UT1_], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 tc@box:~$
BIOSでPCのサウンドカードをオンにしたままでPC起動したら、PCのサウンドカードが1,0、USB-DACが2,0になった。 つまり0,0が振られないのだ。
tc@box:~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 1: PCH [HDA Intel PCH], device 0: ALC3228 Analog [ALC3228 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: IncRAL2496UT1 [RATOC Systems, Inc.RAL-2496UT1_], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 tc@box:~$
なぜこんな仕様になっているのか分からないけど、alsaを設定するのには困る。
対策が見つからなかったので、0,0と1,0、両方にalsa出力するようにmpd.confに記載した。 BIOSでオンボード音声をオフにして、USB-DACひとつだけ繋いだ状態なら、0,0か1,0、どちらかに引っかかって音声出力できるのではないだろうか。 うちにあるいくつかのPCで試した限りでは、問題なく機能した。 こんな感じ。
vi .mpdconf audio_output { type "alsa" name "My ALSA Device 0" device "plughw:0,0" } audio_output { type "alsa" name "My ALSA Device 1" device "plughw:1,0" }
3)alsa出力先サウンドカードの設定を変更しフォーマット変更に対応させた
alsaの出力先は、mpd.confで一般的には下記のように記載することが多い。
device "hw:1,0"
以前のエントリーで書いたが「hw:0,0」のような記載だと、mpd.confで指定されたフォーマットに出力が固定される。 うちではそれでいいが、他者が使う想定だと、個々のUSB-DACに設定を合わせないといけない。それには、mpd.confの書き換え、保存という手順が必要で、sshでログインして、viを使わないといけない、なんていうのは扱いにくいだろう。
device "plughw:0,0"
そこで、「plughw:0,0」に設定記載を変更した。 この記載だったら、USB-DACが対応しているフォーマットを、alsaが読み取って調整してくれる。DACが対応している最上限のフォーマットに自動的に合わせるはずだ。 mpd.confに書かれている768/32がセットが対応する上限設定ということになる。
Apr 18, 2021
UPnPレンダラー兼アップサンプリングサーバーのディスクイメージをアップした
下記内容の日記をPhile webにアップした。
https://community.phileweb.com/mypage/entry/5010/20210418/67519/
このたび思う処あり、ディスクイメージをGoogleにアップしました。
どなたでも使っていただいて結構です。https://drive.google.com/file/d/1eZ-ijekRj-ond1OIa7aZXgLxjWYbsIPy/view?usp=sharing
イメージについて説明します。
1)セット内容とコンセプト:
linux OS(Tiny Core Pure64 11.1)ベースで作成しています。
有線LAN経由でUPnP/DLNAサーバーから信号受信。mpd、upmpdcli、libsamplerate(SRC)で処理し、alsa経由でUSB-DACに出力することを想定しています。
この際にUSB-DACから処理できるフォーマットを読み取り、アップサンプリングします。例えばUSB-DACが対応しているフォーマットの上限が384/32だった場合、そのフォーマットにアップサンプリングしてDACに送るということです。768/32までのアップサンプリングに対応しています。つまり、このセットはlibsamplerateによるアップサンプリングの音を聴くためのシステムということです。
libsamplerateは以前はmpdのデフォルトとされていましたが、情報処理の負担が大きい割りにメリットが少ないと考えられたようで、最近はSoXによるアップサンプリングが主流です。
しかし、libsamplerateのほうがより正確な音声情報処理が行われ、44.1/16のデータからでもハイレゾファイルと同等の再生音が得られます。特に300、700kHz台で優位性が得られると考えています。処理の負荷は高いので、PCに要求されるスペックは高くなります。700kHz以上にアップサンプリングする場合、DDR3以上のメモリを積んだPCが必要です。2)使用方法:
イメージをusbメモリ等のストレージに書き込み起動ディスクとします。
Tiny Core Pure64ベースなので、AMD64、Intel64のPCで使用できます。
有線LANにつないでください。無線は対応できていません。PC起動に際し、BIOSでPC自体のサウンドボードをオフにしてください。こうすることでUSB-DACがalsaから最優先の出力先に選択され、細かい設定をssh経由で行う必要がなくなる筈です。
セットを書き込んだストレージから起動するようにBIOSを設定してください。
無事に起動したら、UPnP/DLNAのコントローラーから「MPD-SRC」を選択し音声出力できる状態になります。3)その他の機能:
sshでログインし設定など変更可能です。パスは「tc」です。
pulseaudioサーバー、PPAPフロントとして機能させることができます。04.20. 追記です。-------------
sshでログインに際して、ユーザーは「tc」です。書き忘れていました。
Tiny Core Pure64ベースのセットで、扱い方はTiny Coreそのものです。
mpd.confは、/home/tc/.mpdconfで設定しています。
追記終わり。-------------出来れば使っていただいた所感を、この記事のコメントで教えていただければ有難いです。
何分にも、このような試みは私自身初めてでもありlinuxのスキルも限られているため、トラブル等のフォローはできないと思いますので、自己責任でお使いください。質問等には可能な限り返信させていただきますが、出来ない場合もありますのでご容赦ください。以上、宜しくお願いいたします。
思う処あって、ということなんだけど、実際、迷ったけどアップしてみることにした。
どんな反応があるかは分からないが。
うちではlibsamplerate(SRC)なしではオーディオシステム自体が成り立たないというような重要なコーデックであるにも関わらず、世間では意味が無いとされている。世間と書いたが、少なくともpulseaudio界隈ではそうなっている。なるようになるしかないのかもしれないが、意味が無いということはないということを井の中の蛙のようなうちのサイトで書いてるだけではダメかなと思うことがあり、、、まあ、なるようになるだろうということで、イメージをアップしてみたということだ。
僕自身が井の中の蛙だということがある。
他のオーディオファイル諸氏の音を聴いたことがない。うちの音を聴いてもらったことがない。
コロナ禍でいよいよ困難になった。イメージでもアップして試してもらうしかないじゃないか。
そういうわけで、宜しければ使ってみてください。
レスはphile webか、twitter( https://twitter.com/flyingnote)で受け付けます。