拡張オーディオフォーマット機能について

420 views
Skip to first unread message

kku...@gmail.com

unread,
Jan 11, 2016, 3:12:19 AM1/11/16
to lightMPD
本筋からはずれた質問です。お許しください。
digifi laboにあるlightMPDの拡張機能、拡張オーディオフォーマット機能を通常のmpdソースに当てて使う事は出来ないのでしょうか。素晴らしい機能なので何とか通常のmpd環境でも使ってみたいと考えています。
gitで最新版(0.19.x.x)をdownloadしてパッチをあててautogen.sh-configure-make-make installして/etc/mpd.confに条件を加えて見ましたがマップの様にアップサンプリングしてくれません。lightmpd以外では使えないと言うことなのでしょうか?

kku...@gmail.com

unread,
Jan 11, 2016, 5:27:58 AM1/11/16
to lightMPD
mpd.confのsamplerate_converteは"soxr very high"にしています。

digi...@gmail.com

unread,
Jan 11, 2016, 8:16:14 AM1/11/16
to lightMPD
kkumaxさん

configure実行時のCFLAGS,CXXFLAGSに下記を追加して下さい。
    CFLAGS="-DEXT_DSD2PCM" \
    CXXFLAGS="-DEXT_DSD2PCM"

apu1版のlightmpdではCFLAGS,CCFLAGSは下記のようになっています。
    CFLAGS="-O2 -fopenmp -march=btver1 -msse4a -ffast-math -DHAVE_DECODER_SELECTOR -DEXT_DSD2PCM" \
    CXXFLAGS="-O2 -fopenmp -march=btver1 -msse4a -ffast-math -DHAVE_DECODER_SELECTOR -DEXT_DSD2PCM"

P.S.
bootの件はもう少しお待ち下さい。ACアダプターの2.1->2.5変換コネクターが見当たらなくてapuに電源を入れることができません。


kku...@gmail.com

unread,
Jan 11, 2016, 8:56:08 AM1/11/16
to lightMPD
申し訳ないです。Linuxのこの辺はさっぱりです。

>configure実行時のCFLAGS,CXXFLAGSに下記を追加して下さい。
>CFLAGS="-DEXT_DSD2PCM" \
>CXXFLAGS="-DEXT_DSD2PCM"

この内容について具体的作業が分かりません。具体的にはどのファイルに追加すれば良いのですか?教えてください。
それとも./configuer のオプションのような形で追加するのでしょうか?疎くてすいません。でも実現したいので教えてください。お願いします。

kku...@gmail.com

unread,
Jan 11, 2016, 10:52:32 AM1/11/16
to lightMPD
./configure \
CFLAGS="-DEXT_DSD2PCM" \
CXXFLAGS="-DEXT_DSD2PCM" \
--prefix=/usr/local \
--enable-soxr \
--enable-mad \
--enable-mpg123 \
--disable-ipv6 \
--enable-libmpdclient \
--enable-nfs \
--enable-smbclient \
--enable-httpd-output \
--enable-database \
--enable-debug \
--enable-httpd-output \
--disable-largefile \
--enable-soundcloud \
--enable-libwrap \
--enable-mikmod \
--enable-pipe-output \
--enable-recorder-output \
--enable-sidplay \
--enable-shout \
--enable-test \
--disable-un \
--enable-vorbis \
--enable-wave-encoder \
--enable-werror \
--enable-zzip

これだとDSDがスルーで出てくるが他のサンプリングは
そのまま出てくるだけ...何か違うことやっている?

digi...@gmail.com

unread,
Jan 11, 2016, 8:16:10 PM1/11/16
to lightMPD
kkumaxさん

すみません、まちがってました。正しくは
    CFLAGS="-DUSE_EXTEND_AUDIO_FORMAT"
    CXXFLAGS="-DUSE_EXTEND_AUDIO_FORMAT"

でした。

configfureはkkumaxの方法でOKです。CFLAGS,CXXFLAGSを上記のように修正して下さい。

いま、dsd2pcmを改修していてそれと混乱してました。


kku...@gmail.com

unread,
Jan 11, 2016, 9:15:38 PM1/11/16
to lightMPD
早急なご回答感謝します。
動作を確認しています。すばらしいです。
ありがとうございました。
最後に確認なのですが、HPでの説明で下の様にありますが

>注意
>拡張オーディオフォーマットを使う場合はaudio_outputのformat は指定しないで下さい。


これはアップサンプリングの設定、
たとえばaudio_output_format "X4L4:24:2"は
/etc/mpd.conf の
audio_output {...}この...に入れてはダメという事で良いですか?

digi...@gmail.com

unread,
Jan 12, 2016, 7:29:42 AM1/12/16
to lightMPD
kkumaxさん

> たとえばaudio_output_format "X4L4:24:2"は
> /etc/mpd.conf の
> audio_output {...}この...に入れてはダメという事で良いですか?
これをやるとエラーになってmpdが終了します。

アップサンプリングの設定はaudio_output_formatとaudio_outputのformatで行いますが、拡張フォーマットの有無にかかわらず
この両者の併用はさけた方がいいです。

audio_output_formatでアップサンプリングを指定するとデコーダスレッドでアップサンプリングが行われます。
audio_outputのformatでアップサンプリングを指定するとアウトプットスレッドでアップサンプリングが行われます。
audio_output_formatでアップサンプリングを指定し、audio_output の formatでもアップサンプリングを指定すると
2回のサンプリング周波数の変換がおこなれます。

例えば、
audio_output_format = "X2L2:24:2"
audio_output {
..
format   = "176400:24:2"
..
}
と指定した場合、44.1Kの入力があるとデコーダースレッドで88.2Kにアップサンプリングされさらにアウトプットスレッドで176.4Kにアップサンプリングされます。
2回サンプリング周波数の変換が行われるのでCPUによっては処理も間に合わなくなる場合もありますし、音質的にも不利になると思います。




kku...@gmail.com

unread,
Jan 12, 2016, 9:48:46 AM1/12/16
to lightMPD
詳しい解説ありがとうございました。理解する事ができました。我が家のメインAPU1Cのvoyage-linuxとarchlinuxに拡張機能を有効にしたmpdを再インストールして聴いています。同じソースからのインストールなのに音が違うのが不思議です(笑)digifi laboのページはハードの話題もあり楽しく読ませていただきました。pcm2dsdのページもopenしたら是非読ませていただきます。今の最大の疑問がなぜP2D基板が必要なのか?という所なのでその辺の理解が深まるのでは?と期待しています。
Reply all
Reply to author
Forward
0 new messages