/ 雑記帳

[ Tags :: native ]

DSD配信サーバーの罠(^_^;)

DSD対応配信サーバーを二種類試した。
どちらも問題なくDSDデーターを再生出来たが
DACに入力される形式に違いがある。
前者がDSD nativeであり後者はDoPである。
もちろんDACの入力表示はどちらもDSD入力と表示される。(^_^;)
      
**** List of PLAYBACK Hardware Devices ****
card 0: D20 [DIYINHK USB Audio 2.0], device 0: USB Audio [USB Audio]
Subdevices: 0/1
      
Twonky Serverで配信
# cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: DSD_U32_BE
subformat: STD
channels: 2
rate: 88200 (88200/1)
period_size: 3308
buffer_size: 13230
      
Minimserverで配信
(flac:wav, alac:wav, mp3:wav24, aac:wav24, dff:dopwav, dsf:dopwav)
某ブログでこの設定を空白にすればDSD nativeになると書いてあるが我が家では音も出ない?

※6/18修正追加Ubuntu16.04.2LTS環境ではMinimServer-0.8.4-linux-x64でDSD256で配信が確認出来た(^_^;)

管理人がLinux上で無料?で使用できる音楽配信可能サーバーでは
DSD nativeを配信出来るものは無かった。
      
# cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 705600 (705600/1)
period_size: 26460
buffer_size: 105840
      
MinimserverはLINNで推奨されていると言うことだが
そもそもLINNはDSDを相手にしてないから(^_^;)

— posted by くま at 01:26 pm   commentComment [0] 

Archlinux DSD native 再生が通常のインストールで可能になった。

$ uname -a
Linux arch 4.8.13-1-ARCH #1 SMP PREEMPT Fri Dec 9 07:24:34 CET 2016 x86_64 GNU/Linux
      
$ /usr/bin/mpd -V
Music Player Daemon 0.20.2
      
これで何が言いたいのかと言えば
Archlinuxを普通にインストールして
この状態ならばパッチも当てずコンパイルの必要もなく
(カーネルで指定されたDDC,DACの必要はあるが)
DSD native 再生が通常のインストールで可能になったと言う事です。
もちろん/etc/mpd.confはDSDnativeに関する指定は何も指定しなくて
問題なしです。世の中進んでます!

— posted by くま at 08:42 am   commentComment [0] 

git版 mpd を使って且つ指定 DAC XMOS を使えばDSDをnativeで再生できる

$ ./mpd -V
Music Player Daemon 0.20.2 (v0.20.1-32-gc5cf66402)

$ uname -a
Linux arch 4.8.13-1-ARCH #1 SMP PREEMPT Fri Dec 9 07:24:34 CET 2016 x86_64 GNU/Linux
この組み合わせで確認できた。
DSD512再生時のalsaステイタス
--------------------------------------
カード 0: DIYINHK
access: RW_INTERLEAVED
format: DSD_U32_BE
subformat: STD
channels: 2
rate: 352800 (352800/1)
period_size: 32768
buffer_size: 131072
--------------------------------------

— posted by くま at 11:44 pm   commentComment [0] 

DSDネイティブ再生 DoPとDSD出力の比較(修正版)

DSD再生の場合ドライバ−単体でみればWindowsのASIO2の方がlinuxのDoP方式より優れていたと思います。
linuxでのDSD再生音はWindows+ASIO2に比べて劣っている状態が続いていたが?
kernelとmpdにDSDネイティブ再生を可能とするパッチがリリースされ実用に
耐えるものとなりお陰で両者を比較しても差を感じる事は無くなったと思う。
      
linuxでDSDを再生する仕組み(DoP)としてDSD信号入力のUSB-DACの殆どのモデルは
DoP(DSD over PCM)という方式で信号を伝達している。
これはDSD信号を通常のPCMの枠を使って伝送するという方式。
本来PCM伝送のための枠組みを使って裏技的にDSD信号を通すために
24ビットデータの先頭に8ビットのMarkerを付加してDSDデータと判別できるようにしてから
ホスト側からストリーミングを開始ホスト側では付加されたMarkerを判断して信号処理を行い
アナログ出力へ変換します。Markerが付加されるので
データ量は1.5倍強に増える事となり且つデータが転送されるごとに
PCMかDSDかの判断を行なっているためCPU負荷が大きくなる等の問題があり
再生音に影を落とす事となっていた様に思います?!
(DSD64(2.8MHzのデータ)の場合の転送にはPCMの176.4kHzが必要となる)
      
DSD64再生時動作状況の例
--------------------------------------
カード 0: Combo384
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 176400 (176400/1)
period_size: 22050
buffer_size: 88200
--------------------------------------
DoP方式で一般的なDSD信号(2.8MHzサンプリング)を通すには、PCM換算で24bit/176.4kHzの帯域幅が必要。
  
一方、同じハードウエア環境でDSDネイティブ再生を可能とするパッチを適応した場合は

--------------------------------------
カード 0: Combo384
access: RW_INTERLEAVED
format: DSD_U32_LE
subformat: STD
channels: 2
rate: 88200 (88200/1)
period_size: 11025
buffer_size: 44100
--------------------------------------
DSDフォーマットの直接出力となっているため88200kHzとなっている
         

(注1)※以下は先輩に教えていただきました(^_^;)Dop方式の再生が出る以前には
DSD再生はPCMに変換して聴いていました。当時はPCMに変換しないという意味で
Dop方式をDSDネイティブ再生と呼んでいました。
その後に独Steinberg Media TechnologiesがASIO2.1を開発し
DSDデーターをASIOドライバーを使って無変換で再生する事が出来るようになりました。
現在ではこの方式をDSDネイティブ再生と呼んでいる様です。
ASIOの使用はOSがWindows環境である事が必要でMACやLINUXで使えません。

— posted by くま at 11:12 am   commentComment [0]  pingTrackBack [0]

 

Linux native DSD playback support

一言で言えば「LinuxでASIO 2.1/2.2ドライバーと同等の機能を実現させた」って事
凄いんですけど話題になってない何故?(^_^;)
 
参考リンク:https://github.com/lintweaker/xmos-native-dsdLink
      
Native DSD support for XMOS based devices
    
XMOS based USB DACs and converters can support native DSD playback using a 32-bit sample format.
DACs that support this feature expose it using a Alternate Setting on the USB interface. 
     
On Windows systems this feature can be used with a ASIO 2.1/2.2 driver from the DAC manufacturer.
     
I have added a new DSD sample format to ALSA and the Linux kernel (DSD_U32_LE) to support it on Linux and added the needed quirks to support it for a few XMOS based USB DACs/boards.
     
Currently native DSD playback on Linux is supported for the following
XMOS based DACs/USB converters:
iFi Audio micro iDSD [max DSD512]
iFi Audio nano
iDSD [max DSD256, with latest 4.04 firmware]
DIYINHK USB to I2S/DSD converter
[max DSD128] ..more to follow
-------------------------------------------------------------------------------------------------------------------
XMOSベースのUSB_DACとDDC(コンバータ)は32ビットのサンプルフォーマットを使用してネイティブDSD再生をサポートすることができます。
この機能をサポートしているDACはUSBインターフェース上の代替設定を使用して聴く事を可能にします。
      
ASIO2.1/2.2ドライバーはWindowsシステム上でメーカーにより製造されたDACからで使用することができます。
      
私は、Linux上でそれをサポートするためにALSAとLinuxカーネル(DSD_U32_LE)に新しいDSDサンプルフォーマットを追加し、
いくつかのXMOSベースのUSB_DAC/DDCボードをサポートするために必要な癖を追加しました。
      
現在Linux上でネイティブDSD再生は以下のXMOSベースのDAC/USBコンバータでサポートされています。
      

— posted by くま at 11:09 am   commentComment [0]  pingTrackBack [0]

 

mpd-0.19.17 install

$ uname -aLinux arch 4.6.2-rt5-ARCH #9 SMP Sun Jul 24 18:11:12 JST 2016 x86_64 GNU/Linux
   
$ patch -p1 < 0001-Extend-native-DSD-support-for-MPD-0.19.16.patch
$ patch -p1 < 0008-native-DSD-u32le.patch

$ ./configure --prefix=/usr/local --enable-soxr --disable-ipv6 --enable-libmpdclient --enable-nfs --enable-smbclient --enable-httpd-output --enable-httpd-output --disable-largefile --enable-mad --disable-un --enable-shout --enable-werror --enable-soundcloud --enable-mikmod --enable-pipe-output --enable-recorder-output --enable-shout --enable-vorbis --enable-database 
    

$ make -j 3
# make install

— posted by くま at 11:05 am   commentComment [0]  pingTrackBack [0]

<< 2019.11 >>
SMTWTFS
     12
3 4 56 789
10 111213 141516
17181920 2122 23
24252627282930
 










T: Y: ALL: Online:
ThemePanel
Created in 0.0273 sec.