サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。一般のオーディオファンの方のためのものではありません。頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。十分に注意をして作業して下さい。営利目的のご使用は認めておりません。記事の転載や、基板・キットの商用利用の方は、ご連絡ください。学生やサークルの学習目的でまとめてご購入する場合は特別価格でご提供させていただきます。気絶してしまいました。(金)I2S-DACを348kHzで駆動すると、どういうメリットがあるの?RaspberryPiのI2S出力は最大で384kHzのサンプリング周波数で出力が可能であることは、日経リナックスに書かれていて、ご存知の方も多いと思います。ここでは、実際に試してみた結果と、384kHzで出力できることのメリットとして、どんなケースが考えられるのかを書きたいと思います。実は、日経リナックス2016年6月を号買ったのですが、この号の読者専用のダウンロードサイトから落としてきたドライバで348kHz駆動がすんなり出来たかというと、そうではありませんでした。4.1.21用という中途半端なバージョンになっていて、Rasbianイメージをダウンロードしたままでは組み込むことが出来ないのです。Linuxに精通している人はご存知とは思いますが、現在のLinuxのドライバはKernelのバージョンが末尾までひとつでも違うと組み込めません。それはそれとして、384kHz再生の利用目的も私の考えていたのとちょっと違うなぁっと思いました。筆者さんは、CDからリッピングした44.1kHzの信号をそのままDACに出力した場合と、SoXリサンプラーを使ってソフトウェアアップサンプリングした場合とを比較されていました。DAC内蔵オーバーサンプリングデジタルフィルタとSoXリサンプラーの比較(差換え)です。(アップサンプリングしたらからといってハイレゾになる訳ではないというのは筆者さんと同意見です)SoXリサンプラーは、動作が軽い割に特性も悪くなく、音もまあまあ良い(カラーレーションが少ない)ので、リアルタイム処理のときには良く使われていますが、ハードウェアによるFIR演算や、高精度なアップサンプリングソフトウェア(非リアルタイム系)と比較するとさすがに負けてしまいます。華やかで鮮度が高く感じますが、大音量で聴くと、じきに音量を下げたくなってしまう音というと解かり易いかもしれません。PCM5102AクラスのDACでも44.1/48kHzは8倍、88.2/96kHzは4倍、176.4/192kHzは2倍のアップサンプリングがDAC内部で行なわれているため、CDを再生しても、よくハイレゾの説明で使われるようなギザギザ波形では再生されていません。最低でも352.8kHzのサンプリングレートで滑らかにDA変換されています。PCM51xx系のDACに内蔵されているデジタルフィルタは、かなり音が良い(特性はソコソコの)ものが搭載されています。このあたりは30年もの間、DA変換を専門でやってきたバーブラウンのノウハウの賜物でしょう。前置きが長くなりすぎました。思うのは、下図のようなケースです。言ってしまうとアレですが、MPDのDSD変換再生は、想像していた以上に上品で聴き応えのある音がしますね。この図の上側のようにPCMに変換したあとSoXリサンプラーによって192kHzまでもう一度変換されていました。PCMに変換したあと、そのままDACへ出力できます。無駄な変換がいらなくなり、よりストレートに再生が可能になりますね。この図が実際にDSD2.8MHzから352.8kHzで再生しているときの証拠(?)です。/proc/asound/card0/pcm0p/sub0/hw_paramsとコマンドを打つと、再生しているサンプリングレートが分かります。拡張パッチを実装しました。https://patchwork.kernel.org/patch/9160203/それに、SabreBerry32のドライバも合わせて拡張しています。完全に音切れなく再生できるかというと、まだそこまでは到達できておらず、時折ノイズが混じってしまう問題が潜んでいます。24bitのPCMで録音されたものをNOS-DACで再生するというのも面白いと思います。DXD録音のサンプリングレートなら、NOS(ノン・オーバー・サンプリング)で聴いても全く問題がないと考えられるからです。2LのサイトにはDXDの無料サンプルが何曲か置いてありますね。拡張Alsaドライバの対応方法の詳細は、また後日説明したいと思います。DSD再生の音飛びは、なんとなく解消されつつあります。肝心な音質の感想はといいますと、SoXを使っていたときのDSDの音とはかなり傾向が違います。引っ込み思案で優しく響いていた音は、あれがDSDの音の良さなのかなと思っていたんですけども。いう具合の鮮烈な音に変わりました。8倍の内蔵デジフィルの動作条件を満たせません。SabreBerry32搭載のクロックは高い方で49MHz。いうことで、デジフィルバイパスモード(つまりNOS)で使用してみました。DSDからPCMに一度は変換していますが、その後はDAC内蔵のFIRフィルタもバイパスするという荒業のためでしょうか。こんなストレートで爽やか、そしてベールが一切かかっていない音をDSD音源で聴いたことがありませんでした。好みの分かれる音かもしれませんが、選択肢のひとつとして面白いと思います。コンパイルにはかなりの時間がかかるので、バイナリで提供できればと考えています。再生は必要なの?実際にはDXDで録音されたものがそのまま聞ける(配信される)ケースは稀だと思います。DSDも5.6MHz、11.2MHzと周波数の高いデータがごく一部で配信されていますが、DSD配信自体がPCMにとって代わるほど有利な訳でもありません。多くのDSD配信が、PCMで編集(ミキシング、マスタリング)した後、DSDに変換、もしくは、一旦アナログに戻したあとDSDレコーダーで再録音されたものであるという事も忘れてはいけません。いうことで、348kHzをそのまま再生できないからといって、普段、音楽を楽しむ上で不都合があるのかと言うと、そんなことはないと思います。今のところ、ちょっとした興味を満足させるための「調味料」的存在なのかもしれません。にほんブログ村ブログランキングに参加中です。よろしければ「ぽちっと」お願いします。気絶してしまいました。takobozuと申します。私の環境でうまくいくかどうかを試させていただきました。結果は、残念ながらサーというバックグランドノイズが出続けます。試しました環境は以下のとおりです。4.6.6にalsaの上記パッチを当てコンパイルしました。(2)mpd-0.19.17にlintweakerさんのdsdパッチを当てコンパイルしました。(3)ハードはrpi2B+usb-dac(combo384+pcm1795dac)kernelはlowlatencyでコンパイルしております。hw_paramsは上記表示と同じ結果ですのでパッチはしっかり当たっていると思います。上記記事とは環境が違いますので当然の結果ですかね。うーん、たかじんさんのおっしゃるいい音が聴きたかったなあ。kernelのalsaモジュールがそのままでは、384khz等が定義されていないとは知りませんでしたので今回の記事は勉強になりました。最後になりましたがお礼申し上げます。上記のノイズですが、352.8khzをcombo384は受けられてもpcm1795が受けられないんからなんでしょうか。気づきました、ガックリ。17時31分takobozuさん確かに、PCM1795はI2S入力時は192kHzまでですね。外部デジフィルモード(DFTH)のときは1.5MHzくらいまでのサンプリングレートで入力できます。combo384がそのフォーマットで出せるのかは分からないですが。00時04分たかじんさん記事、興味深く拝見しました。mpdのdsd2pcmはその後にフィルター(soxやlibsamplerateなど)を使うことが前提のようで内蔵のフィルターではノイズがとりきれません。DACがNOSだとそれ以降のシステムによってはノイズがスピーカーにまで届くかもしれません。lightMPDの掲示板でも384K対応のDACでdsd2pcmを行うとノイズがのるという報告がありました。最後にdsd2pcmのフィルター係数をのせますので確認してみてください。Services(http://dsp.jpn.org/dfdesign/)でできます。以前、お話したかもしれませんがlightMPDではdsdを直接指定したサンプリング周波数のPCMに変換することができます。石川高専のhttp://dsp.jpn.org/dfdesign/fir/mado.shtmlで上記の値を入力すると係数を計算してくれます。SabreBerry32搭載のクロックは高い方で49MHz。いうことで、デジフィルバイパスモード(つまりNOS)で使用してみました。この機能は公開されるのでしょうか?公開されるとlightMPDのdsd2pcmの拡張が生きてくるのですが。ps3ではsacdをpcmに変換してましたが、音はとてもよかったです。(それでsacdを買い集めることになりました)個人的にはdsd->pcmにも可能性があると思ってます。さんとても重要、かつ、貴重なご意見ありがとうございます。添付いただいたデジフィルの特性を見てみました。確かにカットオフ周波数が100kHzくらいと過剰に伸びていますね。NOS設定については、近いうちにメールいたします。rateという修正が入っているのを発見しました。352800となっているだけです。それと面白いのは、この修正は本日から3日前で、4.9.y(今は4.9.56)以外にはこの修正が入っていないことです。4.11.y、4.13.yで確認しましたがこの修正はされてません。これからされるんでしょうか。384000もいれとけばいいのにとか思いました。すいません、前置きが長くなりましたがこれが本題ではありません。highにすればなおるよ、みたいな投稿がありました。そこでたかじんさんの本記事を思い出しまして投稿した次第です。kenelにパッチをあてて384kHzまで再生できるようにすればsox使わなくてもいいんじゃないかと。sound/pcm.hとなってます。本記事で書かれているhttps://patchwork.kernel.org/patch/9160203/のパッチはあてないといけないのかなあと思います。(nanopi-neo2ではそうでした)pcm.hを見ますと、やはり192000Hzまでしかdefineされてませんので。それで、パッチをあててビルドしなおすことを考えるわけです。smpdのカーネルは4.9.47-rt37です。モジュール使っておられるので(おそらく)カーネルだけ入れ替えるわけにはいきませんよね。最新の4.9.56でビルドしてもいいのですが、rt-patchが9/6以降全く更新されてません。cloneすると最新の4.9.56しかもってこれません。するわけなんですが、そのソースをみるとbcm2710-rpi-3-b.dtsなどbcm2710関連のdts,dtsiが見当たりません。githubのcommitsのところから4.9.47のところまでさかのぼりそのソースを見てもbcm2710関連のdts,dtsiがありません。たかじんさんは過去のバージョンにさかのぼってrpiのカーネルのビルドをされたことがおありなら、アドバイスをいただけると助かります。7.1-2017.08となってますので。このことはパパリウスさんには内緒でお願いいたします。さんMoodeも今年に3月くらいにRTカーネル版で384対応してきてましたね。hifiberryDACでもES9023でも384kHz/352kHz出てたと思います。おっしゃっているカーネルソース修正とは別のパッチを当てていると考えられます。Moodeを作っている人は、かなりマニアックで、私も、このパッチにSabreberry32を合わせるのに相当調べました。RaspberryPiのカーネルソースの384kHz対応は、まだ中途半端ですね。highにすればノイズが減るというのは、なんでしょう。highじゃないとき、何が動いているのか気になります(笑rtパッチは、安定しているバージョンと不安定なバージョンがあるので、だれかが検証されたものを使うのがラクです。履歴からバージョンをみてそのcommit番号で落としてきます。同じバージョンでも沢山の人がcommitしているので確実に同じソースになるかは分かりません。https://github.com/raspberrypi/linux/commits/rpi-4.9.y完全なcommit履歴はこっちです。gccバージョンは合わせた方が無難ですね。18時35分たかじんさんご回答ありがとうございます。commit番号を指定して落としてきても、bcm2710関連のdts,dtsiはないんですよ。この辺の仕組みがまだよくわからないですね。暇を見つけては、色々調べたいと思います。さん確かにないですね。別のバージョンでコンパイルしたdtboをコピーして持ってきても動作すると思います。15時26分kernel(4.9.58)をLowlatencyでビルドしなおし、symphonic-mpdでも384kHzまで再生可能にしました。NanoPi-NEO2と基本的には同じでした。本記事にある、dsd64がmpdのdsd2pcmで352.8kHzのpcmに変換され再生されていることもhw_paramsで確認いたしました。この音が聴きたかったわけです。dsdはusb-dacでnative-dsd再生させてきましたが、それに勝とも劣らない音のように感じました。soxrはもちろん使っておりません。(smpdは初期設定のまま)最適化オプションなし、rt化なしでこれですから、また色々いじって遊びたいと思います。4.9.58にも一部、rejがありますが問題なくビルドも通りました。(今すでに、4.9.59ですが)これで、hifiberry-dacを使うdacはすべて384kHzまで再生可能となりました。さん素晴らしい成果ですね。soxを使わないという所もさすがです。symphonic-mpdはカーネルのパラメータもいじっているようなので、本家で384kHz対応されるともっと面白くなるかもしれませんね。09時57分たかじんさんパパリウスさんにはメッセージを送りました。一応、こんな感じで遊んでみました、と。最適化について教えてもらってもいいのですが、そこはお任せします。気絶してしまいました。pi+I2SDACでlightMPDを試す。bar)マオラボ湖と空と坂道45gs時計とカメラとモバイルRSSを表示する。