flyingnote
flyingnote
マイペースにやってます。

日記

最新のレス

日記
製品レビュー/コメント

製品レビュー/コメントへのレスはありません

お気に入り製品

お気に入り製品はありません

お気に入りユーザー

  

お気にいられユーザー

最新の日記

アップしたイメージのPPAPへの転用について

先日アップしたUPnPレンダラー兼アップサンプリングサーバーのイメージですが、PPAPという手法のフロントサーバーとして機能させることが出来ます。
今回は、この件について記載しておきます。

まずPPAP (Piped Pcm Audio Play)について。
過去にPhile Webで話題になっていた手法なので、知っておられる方も多いと思います。
通常は1台のmpd音楽サーバーが行っているデータ処理の流れを、ncatというソフトを使い2台に分割することで音質改善を狙うというものでした。

フロントとバックエンド、2つのPCをLANで繋いで運用します。
扱う音楽信号はPCMのみです。
フォーマット固定の制約があります。
つまり2つのPCで扱う信号のフォーマットを一致させる必要があります。

バックエンドは、設定と異なるフォーマットの音声信号を受け付けません。
音源に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をマウントするなど他の使い方をされる場合は、使用状況に応じての設定が必要になります。
ここにはそこまで記載する余裕がないので、割愛します。

最新のレビュー/コメント

レビューはありません

マイルーム

現在のシステム構成
現在のシステム構成
持ち家(戸建) / リビング兼用 / オーディオルーム / 16畳~ / 防音あり / スクリーンなし / ~2ch

(NAS音源システム) NAS (QNAP : HS-210、HS-251)の音源をアップサンプリングサーバーに転送。 (ストリーミングシステム) Deezer等ストリーミング音源をCompaq 6730b : Daphileで受信、LMS/UpNPでアップサンプリングサーバーに転送。 (アップサンプリングサーバー兼PPAP-Front) HP Elitebook 2570p :…

所有製品