minisharc_ik2

miniSHARC用の自作基板プロジェクト

Pocket

最近は全く時間が取れなかったのですが、半年以上前に購入して構想だけは進めていたminiSHARCのプロジェクトをようやくスタートできそうなのでまだ途中ですが記事を作成しました。これから随時更新としたいと思います。

こちらは実質このスピーカ記事の続きです。

ウェルフロートボードのレビューと空気録音

要するに当方の使っているDuntech内蔵の6dBクロスオーバーではウーファーの中高域残留成分がスコーカ以上の帯域と大きく被ってしまい、そのせいで音が濁ってしまう問題を解消したいのです。これが気になっているので最近空気録音もさっぱりやる気がありません。録音した音は中域が濁ってるのが分かってしまっているからです。

中域がどうして濁るかといえば3WAYの真ん中の混雑した帯域だからです。ウーファーは動作が重いですがスコーカ、ツイータと行くに従って軽く小さくなります。それぞれの音声帯域の被りが大きいにも関わらず、3wayユニットが同一スピードでは動かないために音はどうしても滲み濁ります。特に6dBのネットワークですと帯域外成分の減衰量が大幅に少ないので非常に被りのエネルギーが大きくなります。これが中域混濁の原因だと考えています。

duntech-x-over-46-copy

いままでは対策としてスピーカの内部配線やルーティングを強化することでウーファーの駆動力(立ち上がり、立ち下がりのスピード)を無理やり上げましたが、それでも現代ハイエンドスピーカと比べると今ひとつ追いつけない音でした。もちろんこれにより無対策より大幅に向上していますので、上記の仮説はすでに裏付けのある理論です。

そこで現状の課題を一気に解消するためにFIRなデジタルクロスオーバー+バイDAC+バイアンプまでチャレンジしたいとずっと構想していました。そのためのツールが今回のminiSHARCというわけです。miniDSP社には買ってすぐ使えるもっと手軽な基板があるのですが等位相を実現できるFIRフィルタに対応している製品となるとminiSHARCとなります。

そしてminiSHARCを動かすためにここまで時間がかかったのは専用基板を作成したかったからです。一応miniDSP社にはSPDIF入力+外部ASRC機能を追加する標準ボードがあるのですがそれは購入していません。そこの部分も含めて全部自前でやりたいと思っています。最近になってようやく基板の設計が出来てきましたので、基板の狙いと仕様について書いてみたいと思います。

  • SPDIF1入力(4系統から任意の1系統をセレクト)、SPDIF4出力(DSPの出力を4系統)
  • ASRCはCS8421を使用。過去の実績で測定特性がとても良かった。
  • 電源回路、電源供給にはいままでのノウハウを活かした良いものを使う=ASRCのデータ伝達には不完全性が伴う為。
  • ASRCのリファレンスクロックにはminiSHARC内蔵よりも優秀なクロックを試せるようにする
  • 今後の拡張のためにDACは搭載せず、最大でデジタル4WayのSPDIF出力にする
  • SPDIF出力はI2Sと比べて音質的問題があるが汎用性が高く色々なDACで実験が可能。バッファを入れて駆動力を確保

以上です。とにかく音質的に納得できるものにしたいので、既存の基板は使用せず自分なりに納得のできる設計にしたかったということです。せっかくDACを拘って作ってるのでその性能をスポイルするようなデジタルDSP段にはしたくありません。やるなら現状のDACの性能を活かせるようなものにしたいですね。特にASRC段のSN比は意外と重要ではないかと考えています。ここが適当だとデジタルでSNが悪化してしまいDACの足を引っ張ってしまう筈です。なのでこの辺をきちんと考えて設計しないと行けません。

主要デジタル部の回路図をおいておきます。ICの構成だけ書くとPCM9211>CS8421>AK4101というセットです。AK4101は初めて使いますがSPDIF4系統のDITはこれしかなかったので、いつもの通りいきなり基板を作って動作を試します。一応あとから設定を変えられるように設定ピンは一通りディップスイッチにしてあります。

minisharc_ik3

こちらの途中経過の回路だとminiSHARCマスターでASRC側はただのスレーブ動作なのですが、このあたりのクロックの品質を変えてみて結果がどう変わるかも作ってみてから一度検討してみたいところです。

2018年1月31日追記

ASRCの直近にTCXOを追加で配置しました。ダンピング抵抗を付け替えることでminiSHARCオンボードのMCLKとどちらのクロックを有効にするか選択できるようにしてあります。最初はminiSHARCマスターで実験しますが、特性を測って問題があったらすぐに切り替えしたいです。

ちなみにminiSHARC基板側に載っているオシレータについても調べてみました。これはかなり低性能なオシレータっぽいです。データシートには5psという測定条件不明のジッター値がありますが、一般的には200円くらいのオシレータでも12kHz以上の帯域のジッターで1ps以下は普通にありますので性能は決してよくないです。なので安定度のppm性能も大したことないと思います。とても音悪そうです。

データシートはここにあります。JFVNYというまるで型番みたいな会社です。

http://en.jfvny.com/downloadRepository/120e28db-8780-4d81-a8bd-60388f3d99ed.pdf

こんなクロックをマスターにするしかないminiSHARCの設計はどうかと思いますがピュアオーディオ的なクオリティを求める製品ではないみたいなので仕方ありません。そこはなんとかこちらでカバーしたいと思います。

ということでオシレータの差し替えは最低限やりたいところです。そして差し替えもminiSHARCに乗ってるオシレータをただ交換するのではなく、miniSHARC基板側の粗悪な電源を使わないように当方のボードのきれいな電源から直接クロックを駆動してminiSHARC側へと供給する方法を一度やってみたいと思います。もちろん出力に関わる部分はオシレータから直接供給してジッターの影響を排除します。

この部分を追加した基板をもう発注しましたので来週中には基板が届くと思います。次の更新は基板が届いてからになりそうです。

2018年2月10日追記

img_6221

上記写真は動作テスト中です。一部設計ミスか不明ですがI2C通信に問題があったのですがPCM9211はICの初期設定でも動きますので、とりあえず動かすこと優先でやっています。オリジナルのネットワークは残したままウーファー、(ツイータ&スコーカ)の二つに分割します。アンプ、DACは2セット用意します。

今回の基板では4系統のSPDIF変換のためにAK4101を使っていますが、このICを使った設定がネットにあまり情報が出ていなかったのでここで書いておきます。まず設定は非同期モードでSPIで設定を書き込みして動作させています。非同期モードはソフトからの操作が必要ですが対応周波数など一番融通が聞いてよいです。といっても設定すべき項目はMCLKとLRCKの比率「を合わせることです。

CKS1-0: マスタクロック周波数選択 (Table 1) Default: “00” (Mode 0: MCLK=128fs) CKS1-0 bitsの設定はピン設定と内部でORが取られます。

あとAK449XシリーズとSPIフォーマットに互換性がないのでそこは注意した方がいいです。最初命令を書き込んでも動かないなと思ってよく見たらアドレスとデータの転送方法自体がAK449Xシリーズとは違います。AK4101で追試する方はこのあたり気をつけてください。あとはAK4101は5V電源のみの対応ってところも注意が必要です。

miniSHARCの設定

まず注意点としてminiSHARCは48kと96kのものがあります。ソフト自体は公式サイトから落とすのですが48kと96kは互換性がなくてソフト自体が別モノです。要するに48kと96kを別々にダウンロード、インストールする必要があります。一つのソフトで切り替えるわけではありません。購入は一つで大丈夫ですがダウンロードは二つです。この辺注意書きを見なかったので最初96kにする方法が不明でした。

次にルーティングです。自分がやりたいのはASRCチップからminiSHARCのマスターに同期したI2Sで入力して、デジタルフィルタで帯域を分割されたステレオ2chを2系統出したいわけですから、次の画像のような設定となります。

%e7%84%a1%e9%a1%8c

次にFIRフィルタの設計です。IIRなら初期設定をちょっと弄るだけで簡単にフィルタリング出来るのですがIIRでは位相ズレが起きてしまうのでFIRです。しかしFIRは自前で係数を用意しなければなりません。今時は便利なツールがあるのでそれを使います。

そのまえにFIRでフィルタを設計するためにはタップ数を決めないといけません。タップ数が大きいほど理想的なフィルターになるのですが、少ないと理想からはなれた特性になります。miniSHARCは96kHz時には合計で4300タップまで使えるということになっています。48kHzにすると倍のタップ数を使うことが出来ますがサンプリング周波数が半分です。このあたりは周波数とタップ数どちらを確保するかは各自の好みで決めてくださいという仕様です。

一応こちらで試した限り48kHzは高域が荒く情報量が落ちるので96kにしています。FIRフィルタの係数は倍にしても大して変わらないので自分は96kを選びました。根本的な音質は96kが優位で、フィルタの微細な遮断特性は48kのほうが優秀です。

あと96kHzのときに気づいた問題なのですがタップ数がスペック上の数字をフルに使えないことです。こちらで試したところでは4chの場合は1chあたり844で合計3376タップでした。残り24は使っていない4chの合計ですね。タップ数の最低は6なので未使用の合計が24ということです。どうなってるんでしょうね。スペックの合計は実は4300ではなくて3400の間違いではないのかなと思うのですが…。ちょっと打ち間違えそうな数字ですね。

ということで1chあたり844で設計します。設計はrePhaseを使いました。設定はこんな感じです。本当はSPのクロスオーバーの帯域は300ではないのですが、元々のネットワークは6db/octなのでとりあえず300Hzにしています。Duntechのオリジナルネットワークだとウーファーの帯域は500Hzですが今は300Hzにしています。400など間の数字は試していないので細かい所はまた改めて調整します。

844_hpf

844_lpf

基本になるフィルタは画面の左下で設定するのですが、ここでは分割された二つのチャンネルを合成したときに周波数がフラットになるLinkwitz-Rileyをリファレンスに設定しています。こちらのオリジナルのスピーカは6dB/octですから48dBならデジタル化によってとんでもなく遮断性能は上がります。

impulse settingで色々いじれますが大事なのはタップ数、窓関数、周波数、出力フォーマットです。あとは触らなくても大丈夫です。

タップ数は3376/4=844です。最初1024+664という比率でLPFとHPFを分けていたのですが、レイテンシーの設定が必要なこととLPFとHPFを切り替えるたびにタップ数の設定を変えないといけないのが面倒になってタップ数は844に揃えました。音は比較してみましたが遮断特性を神経質に積めてまでタップ数を分ける意味はあまりないと思いました。

窓関数は矩形を選んでいます。矩形だと一番dBの高い位置のカーブが正確に見えたのでこれを選んでいます。他の窓関数にすると-10dB以下のカーブが全然理想と違うカーブになってしまいます。なので0dBに近い曲線がリファレンスに近いものを選びます。dBは対数ですから大きい値ほど重要です!この画面で言えばdBが0に近いところの曲線は重要ですので曲線の正しさには神経質になる必要があります。

逆に微小な値はあまり神経質になっても仕方ないです。たとえば画像だと-40dBあたりから理想カーブから大きく外れていますが、-40dBは0dBから見て100分の1のエネルギー量です。重要度も100分の1ということです。なのであまりタップ数にはこだわらなくても良いかなと思っています。タップ数を倍にしてもこの辺りのカーブがきれいになる位なので…。なにしろオリジナルのネットワークは6dBです。漏洩成分が-40dBになるならとりあえず十分と考えます。

FIRでは低周波に行くほど遮断特性を確保するためにタップ数が必要になるので、300Hzではなく200Hz以下になると844タップでは遮断特性が大幅に落ちそうです。844タップというタップ数的には300Hzくらいが限界だと思いました。抑圧はやはり40dB位は確保したいですし。このあたりの決定は使っているスピーカユニットの数や性能に依存する部分になってきますので、クロスオーバーの周波数設定は各自で判断が必要になるところです。

デジタルチャンデバ後の空気録音

img_6224

まだ完璧な設定ではないですがクロスオーバーのデジタル化でどのように音が変わったのか比較参考用としていくつか取ってみました。過去にスピーカの改造などで録音したことがある音源が中心です。環境は以下のとおりですがDACとアンプが二台になったこと以外は大して変わっていません。音が良くなった要因の大半はデジタルチャンデバによる効果です。

  • オーディオIF(AD+DDC) : Lynx Hilo
  • マイクプリ : 自作THAT1580+THAT5171
  • マイク : DBX RTA-M * 2
  • DAC&プリ : AK4497 DAC * 2
  • パワーアンプ : Ncore NC500 * 2、Ncore NC252

ここに置いたのはいずれも過去に空気録音でアップしたことがある曲ばかりです。以前のものと比較して頂ければすぐにわかりますが、相当良くなってます。予想より10倍くらい良くなってびっくりしました。今までウーファーの漏洩成分がとんでもなく悪さをしていたのだとよくわかります。余計な成分がなくなったのでウーファーが軽々動いていますし、中高域も軽やかでとてもクリアです。ちょっと以前のものと比べて低音があっさりしすぎてる気もしますが細かい部分はこれからです。

正直調整前のポン出しでここまで良いとは驚きです。とりあえずFIRを適用して音出ししてみただけの状態です。バイアンプの効果もあるかとは思いますがそれ以上に帯域分割が効果的だったということになりそうです。もうここからクロスオーバーを調整しても今回ほどの圧倒的な飛躍はする気がしません。とりあえず細かいチューニングで良い効果があったら記事に追記したいと思います。何もなかったら大してここから向上しなかったということです。

Fourplay 「Chant」

Christina Aguilera 「Express (Burlesque)」

ハナヤマタOP「花ハ踊レヤいろはにほ」

TAK「Brand New Type」

鈴木このみ「Beat your Heart」

中島愛「神様のいたずら」

かめるかめりあ「#include」

ななひら「HoneyTrap」 ベスト版のConfetti-Box収録版です。自分がマスタリング担当しています

2018年2月11日追記

昨日の空気録音ですが、あれこれ聴き比べてると気になる点が出てきます。昨日も低音が薄いかもしれないと書きましたが気のせいではないようです。やはりオリジナルのクロスオーバーが500Hzなのでクロス300Hzではマッチングが取れていないのです。帯域図を見るとスコーカーの帯域はオリジナルでは300Hzで-6dBも減衰してしまっています。下の赤矢印の部分です。

duntech_xover

これに気づいたのはとととさんの「Beat your Heart」を聞いて感じました。

これを聞くとベースのディテールがハッキリ聞こえます。こちらの録音ではベースのゴリゴリした質感どころかベースラインすら不明瞭です。この曲はベースラインとベースの質感が伝わることは音楽性としてかなり大事なところです。こちらの録音ではベースラインが不明瞭ですから、まさに音楽性が欠けてしまっているようにしか聞こえません。

昨日は圧倒的に基礎クオリティが向上したので冷静さを失って感激していましたが、次の日になると冷静になりますね。やはりきちんと調整しないと細かい所はまだまだダメです。ということでFIRのクロスオーバーフィルターを作り直して最適値を探ってみたいと思います。

クロス300Hz、400Hz、500Hzで比較

クロス300Hzは上記のとおり楽曲によって一部の重要な情報が欠損することがあるのでNGです。

クロス500Hzでは情報量の欠損の問題がありませんが中高域が固くなります。音楽的には問題があったとしても全体の質感は300Hzのほうが自然で良いです。なぜクロス500Hzがダメかといえば500Hzは音楽で重要な情報が集まっいる中間の帯域だからです。大抵の楽器の下支えより上の帯域で骨格の中心に近い音域です。なので500Hzで切ると丁度骨格の部分を分断することになってしまうので音楽的にはかなり中途半端です。下支えと骨格の接続部で分割するなら300Hz位のほうが確率的に上手くいくでしょう。このあたりは理屈ではなくて音楽編集の経験からの話です。最初に500Hzに設定してイマイチだと思いましたがやっぱり500Hzクロスはダメです。

では中間を取って400Hzではどうでしょうか?これもダメでした。いいとこ取りというよりどっち付かずです。中高域は300Hzより固く感じるし低音も今ひとつ薄く感じます。これはダメですね。

薄くなってしまう問題を本質的にクリアするためには内蔵のネットワークをバイパスすれば良いのだと思うのですが、これをやってしまうと今後DAC単体の比較をしたい時などに一時的に単体パワーアンプで比較することができなくなってしまいます。今後永遠にバイアンプ、バイDACする覚悟が出来るまではそこまで手を入れるつもりはありません。ということで発想を変えます。セオリーからは大幅に外れますがクロスオーバーは別に同じ周波数じゃなくても良いってことです。

非対称クロスオーバーにする

目的は中高域が固くならないようにして、中低域の情報量が失われないようにすることです。スコーカ以上は500Hzなどの高い帯域でカットすると音が固くなるので、ハイパスフィルターは300Hzでなければなりません。

次にウーファー側のローパスフィルターですが、こちらは300Hzでカットすると情報量が失われてしまうので、400Hz、500Hzとしてみます。あえて300Hz~の帯域を被らせることでこの帯域の情報量を確保します。

ハイパスは300Hz、ローパスは400Hzという非対称クロスオーバーです。これで減衰した情報を確保してみようという試みです。まず300+500Hzと300+400Hzの比較では300+400Hzが良さそうでした。300+500Hzでは中低域が重くなりすぎるし音が濁りすぎます。

ということで300+400Hzなら中高域が固くならず情報量も確保できました。良いところどり出来ている感じがしますね。ということで空気録音をやってみました。

「Beat your Heart」 300+400Hz、非対称クロスオーバー

良いです。ベースラインがだいぶ明瞭になっています。ですがまだちょっと薄い感じがしますね。

ここで次に行った対策はバイアンプになっていることを活かしてウーファー側のゲインを上げることです。DAC内蔵ボリュームなので簡単に0.5dB単位で調整が可能です。結論から言えば+1.0dBがベストでした。+2.0dBだとちょっと重すぎるし濁ります。恐らく帯域被りの影響やらスピーカの筐体の強度不足など悪いところが目立ってきます。なので+1.0dBで当面完成としたいと思います。

この辺は理屈じゃなくて聞いた感じの印象で決めてます。こういう調整では音楽制作エンジニアのような繊細な調整ととても似ています。そしてかなり感覚の世界です。

マスタリング等では0.5dB以下の調整で音が決まることが普通にありますが、こういう領域に突入したオーディオの調整も同じかもしれません。測定値で追い込めるのはある程度までで、最後の最後1.0dB以内の微調整は周波数特性をみても殆ど判断出来ないからです。現実的には測定上は部屋の特性、バッフル面の回折などで周波数特性は数dB単位でフラフラするのが普通ですので、測定誤差に埋もれて見えませんが音は変わります。

何がいいたいかというと、最後は測定じゃなくて自分を信じて音を決めるしか無いってことです!

調整後の空気録音

沢山アップするとキリがないので、厳選して3曲を取り直ししました。

「Beat your Heart」 300+400Hz非対称クロスオーバー、ウーファー側+1.0dB

Fourplay 「Chant」

中島愛「神様のいたずら」

個人的な意見としてはBeat your Heartはこちらの方がずっといい感じですね。グイグイ低音が押してくる感じがあって更に一体感もあります。その上である程度混濁感が少なくハイスピードでクリアな感じもできるだけ維持…こうじゃないとこの曲の雰囲気が出ません。

Chantはどっちでも問題はないと思いますが調整後のほうが若干バランスはいいかもですね。どちらであっても音楽的に支配的な要素とはあまり被ってないと思います。この懐の広さがオーディオでよく使われる理由かもしれません。どんなシステムでも破綻せず鳴るって試聴会では大事ですね。

神様のいたずらは新しいものは重みがあります。この曲の場合は以前の繊細で軽いイメージに独特の良さがあると思いました。以前の録音は幸が薄い感じがしてせつなさや儚さを重視する曲調、歌とあってて良いですね。

ということで、このあたりはかなり微妙な領域です。曲や好みによってどちらが良いかは変わる余地があるかと思います。これが音楽の面白さですかね。

神様のいたずら空気録音まとめ

色々なシステムと比較できます。