2011年6月30日木曜日

DE0-nano /VCXO Clock Synthesizer CDCE913/ Dual I 2 C Isolators  ADuM1250

 Digi-Keyに、追加のDE0-nanoと、VCXO Clock Synthesizer CDCE913(2個)と Dual I 2 C Isolators  ADuM1250(2個)と全部で¥9,970分ポチりました。もう少し買いたいものがあったような気がしますが、一万円以下になるよう打ち止め。


 DE0-nanoは未だ使っても無いのですが、据え置きのFPGAもDE0-nanoに置き換え予定なので追加購入。


 CDCE913は、"ES9018のクロック入力はI2SのSCKと同期が取れている方が良いという情報”を実現すべく、とりあえず使えそうなので選定。




VCXO Clock Synthesizer CDCE913

 
 FPGAのPLLでSCKの4倍を作るという方法もあり、SDTransはその方法を取っているようですが(不確か)、DE0-nanoの場合、PLL用電源の外部フィルタ回路が省略されていて不安がある.......と思ったら、念のため見たら、DE0は他の電源と分離されていませんでしたが、DE0-nanoはPLL電源にフィルタが入っていました。
 まあそれでも、PLL ICのほうが期待できそうかなと考えています。


 SPDIF時は、ES9018特許技術のTime Domain Jitter Eliminatorが生きているのかもしれませんが、どうもI2S時はかえって邪魔しているのかもしれませんね。




 ADuM1250は、Naryさんからの情報で知り、ES9018のI2C用のアイソレータとして使用予定です。






 

2011年6月26日日曜日

PCオーディオの理想型2

 かってに引用する形で申し訳ないですが、Music TO GO!の記事でAudirvana作者の技術白書 Beyond bit-perfect: 全翻訳版という、PCでの音質の改善ポイントについての記事が掲載されています。

基本的な考え方は全く同意できそうですが、

TOSLINKよりFirewireやUSBの方が良いという方向に結論づけている
という点で、PCオーディオの理想型での考え方と違った方向に展開されていきます。といっても世の中の大勢はこちらの方向ですが...

TOSLINKはジッタの影響が出易いというのは、ごもっともで良いのですが、ここからこれを回避するアプローチとして、USBを推奨する流れになります。
これは既存のハード環境の枠内で改善を目指す考え方になると思います。

私が、PCオーディオの理想型で書いた、双方向光接続は、根本的な問題点を回避する考え方と思っています。
問題は、製品としてこれを実現しているのもが無い。あるいは無いに等しい点で、そのような製品が登場してくれば、ソフトによる差異はほとんど気にならなくなると推測します。


再生ソフトによる改善
USBは、現状ではDAC以降と電気的な接続が避けて通れない点で、根本的な改善ではなく、対処療法的な改善に当たると思います。
FidelixさんのサイトではUSBはAESより影響が大きいとあります。
再生ソフトによる改善方法というのは、PCへの負荷のかかり方をなどを工夫し、電源のゆれなどを緩和して、DACへ送るデータストリームをなるべく理想的にしようというアプローチになると思います。


Voyage MPDによる改善
最近WindowsよりVoyage MPDの方が音が良いということで、Voyage MPDを採用されている方が多くいるようです。
これも再生ソフトと同じ考え方で、Windowsは音楽再生には関係の無い余分なタスクが多く走っているので、余分な処理を少なくし、PCへの負荷のかかり方をなどを工夫し、電源のゆれなどを緩和して、DACへ送るデータストリームをなるべく理想的にしようというアプローチになると思います。


双方向TOSLINK
双方向TOSLINK(ADAT etc)として、光接続によるPCとDACのGNDを含む電気的分離。と
クロックソースはDAC側、PCからDACへのデータは一旦バッファして直近にあるクロックソースでリタイミングし直す。
この2点を実現すれば、PC側でどんなにジッタ、電源ノイズが発生していてもDACへ伝達されなくなります。
ミキサーやボリューム、レート変換の問題等ビットパーフェクトを阻害する要因を除けばほとんど改善する必要は無いということになるはずです。



ただ電源からの回り込みについては、光接続にしても残りますので配慮が必要になります。なるべくPC系とDAC以降の音響系は隔離する必要があると思いますし、再生ソフトによる工夫で電源への影響は緩和されるというところはあると思います。
ただ電源の回りこみについては、PCの消費電力を下げたり、電源を良質な物を使うなどのアプローチが先決のようにも思います。

2011年6月25日土曜日

SDメモリカードプレイヤー機能の実装14(FATクラスタチェーン処理)

 SDカード上の曲データを再生するには、FATクラスタチェーンをたどり次々とクラスタをたどっていく処理が必要になります。

CMD18でバーストリード化すると決めた当初、1クラスタ分をいっきょに読み、CMD17でFATクラスタチェーンの該当部分を読み次のクラスタを検索しながら曲の最後まで再生させる予定でした。

1曲分のクラスタチェーンを曲再生前にすべて検索し内部に持つことも検討していましたが、内部メモリをかなり消費してしまうのであきらめていました。

この方法でも一応問題ないはずですが、再生中のFATクラスタチェーン検索処理分の帯域を消費してしまうことと、内部データFIFOの深さを深めに設定する必要があります。
帯域の消費は、その分SDカードへのクロック速度を上げてあげなければなりませんし、内部FIFOの深さを深くするのは、最終的にNiosIIのプログラムを内部メモリ化することを検討しており、このためにはあまり好ましくありません。


しかし5月24日 SDHCカードの調査で取り上げたInterface 2010年9月号 FATファイルシステム特集の第5章に、参考になる記述があり、FATクラスタチェーンを圧縮する方法が書かれているのを発見。
上記問題の解決に効果があると考えられ、これを採用させてもらうことにしました。


何も書かれていない状態のSDカードに曲をコピーした場合は、ほとんどフラグメントは発生せず実際には1つの連続した領域に格納されるはずです。
よって何回も消去、書き込みをしない限りは、圧縮FATクラスタテーブルのサイズは、8領域分か16領域分も用意しておけば十分のはずです。
個人的に使用している限り、1曲は連続領域に書き込まれているという前提でも良いかもしれません。




 FATテーブルの圧縮

処理の概要は下記のようになります。


*曲再生の前処理(NiosII処理)*

FATクラスタを検索し圧縮FATクラスタテーブルを内部メモリ上に構築



*曲再生中(ハード処理)*


[開始時]
領域①の先頭クラスタアドレスをCMD18のアドレスに指定

[再生中]
ⅰ.内部データFIFOが溢れそうになったら(停止閾値超過)、CMD18を停止
=>内部データFIFO読み取り再開閾値を下回ったら停止した次のクラスタをCMD18の
アドレスに指定してバーストリードを再開

ⅱ.圧縮FATクラスタテーブルの領域最終クラスタアドレスに一致したらCMD18を停止
=>次の領域の先頭クラスタアドレスをCMD18のアドレスに指定してバーストリードを再開

[再生終了]
データ長分の読み取りに達したらCMD18を停止

TAS5706 評価キット

Ama Ama Audio Visual さんで取り上げられていたのを見てついつい買ってしまいました。

TIのデジタルアンプLSI TAS5706A  20-W Stereo Digital Audio Power Amplif ier with EQ and DRCの評価キットです。
24bit/192kHzのデジタル入力を備えバランス出力のデジタルアンプLSIの評価ボードになります。

MC57xxPSIAから同軸SPDIF、光SPDIFの入力、USBでPC上の EVM softwareで色々制御できるようです。

TAS5706EVM2

 TAS5706EVM2裏面

 TAS5706A拡大


 MC57xxPSIA

 24bit/192kHzの入力を持ちバランス出力可能なデジタルアンプICがあるとは、知りませんでいた。あとDSDに対応してくれていれば、仕様的にはベストに近いところですが、そこまではさすがに対応していません。

 比較的コンパクトなのでポタアンに使えないかとも思いましたが、ちょっと無理がありそうです。

 いつになるか分かりませんが、これをベースにアンプを組んでみたいと思います。


2011年6月24日金曜日

ルーターリプレース  WZR-HP-AG300H

iPad2新調に合わせてルータをリプレースしました。




WZR-HP-AG300H

 今までブロードバンドルータ(LAN:FE_4port)+Gigabitのスイッチングハブ構成で、一時期を除き無線LAN無しで運用していました。
 それをWZR-HP-AG300Hを導入し下記の構成に切替ました。



変更後のネットワーク接続


  • iPad2用に無線LAN復活 ノードPCもGbEポートが4つのみなのでWiFi化
  • Gigabitのスイッチングハブは、熱っぽくて如何にも消費電力が高そう、室温を上げている大きな要因だと思われるので、使用停止。あまり出番がないPS3は通常は接続しない
  • 省エネを謳いGigabitEther対応のBUFFALOのWZR-HP-AG300H 1台に集約



WZR-HP-AG300Hは「おまかせ節電」で普段使わない時間帯は機能を停止したり、無線LANまたは有線LANのみ停止したりでき、通常運用中でも負荷時で10W程度と低消費電力。
 通常使用しない時間帯は、停止にスケジュールしました。これでネットワーク機器は半分以下の消費電力にはなったと思います。エアコンつけないでよい時間が増えればよいですが...



2011年6月22日水曜日

iPad2到着とスタンドにもなるカバー装着

 iPad2が週末到着。
とりあえず事前に購入しておいたスタンドになるカバーであるBELKIN F8N613qeC00 Verve Folio Stand for iPad 2 を装着。

 iPad2  BELKIN Verve Folio Standに装着

BELKIN Verve Folio Stand ロゴ付近


  BELKIN Verve Folio Stand 裏


BELKIN Verve Folio Stand スタンドとして使用状態(最大に寝かした状態)

ちょっと厚めくなるので、持ち運び用としては少し気になるかもしれませんが、主に室内使用の予定なのであまり問題とはなりません。
スタンドとしては横向き専用ですが、角度は比較的自由に調節できます。
本皮製で見た目は結構良いです。

さて、当面の目的のDisplayLinkですが、PCにインストールして、正常にインストールは終了しているようなのですが、全く起動することができない状態です。

本来ならインストール中に色々設定するメニューが現れるようですが、何も現れずにインストールが終了してしまいます。
再インストールしてみても変わらず。...orz

どうしたもんだか...

2011年6月21日火曜日

SHC-100FS

SHURE SE215 用にSHC-100FSを購入してみました。発送は7月上旬以降のようですが...


SHC-100FS

決め手のひとつは、Music TO GO! さんで、"ケーブルは先端までLR別になってるのが分かります。”と書かれていて、バランス化ができることが確認できたことです。

 SE215は、耳にかけて使用するタイプであるため、耳のあたる部分は形状を保てるようにするにはこの点をどうするかが課題で、自分には難易度が高すぎかと思われます。バランス化をどうやって実現するか考えていましたが、このケーブjルなら改造が簡単そうです。

ただ、短くてよいかと一番短い0.8mのにしてしまいましたが、よくよく考えると短すきが気がします。1.2mのにしておくべきだったかなと...

到着後、しばらくしたらヒロセ HR10A-7P-6Pに交換してみたいと思います。 
 

2011年6月19日日曜日

SDメモリカードプレイヤー機能の実装13 (一応音が出たけどへん)

ようやく16bit/44.1kHzで音が出ました。

デバッグではピアノソナタを再生していますが、ピアノの音色らしい音には聴こえています。、音程が外れてノイズもノリノリの状態です。
前にも似たような現象になった記憶がありますが、何のときだったかさっぱり覚えていないし....

しばらく色々調整してみましたが、今のところ原因がつかめません。
原因がつかめないことには、直りそうもないので、とりあえず24bit/88.2kHzの再生、開始位置の調整(現在適当)、曲の終了処理の追加などを進めながら見ていこうと思います。


上海問屋  SDHC 8GB
SD_CLK 5.6448MHz
Sampling Clock 400kHz
Total AccessTime (4sector)  3.412ms(A-B)   Burst to Burst Cycle Tiime 12.3ms(B-D)


 図は、再生中のSDメモリアクセス波形です。
FPGA内部バッファが溢れない程度でバーストアクセスを停止し、エンプティにならないように読出しを再開させています。結果、4セクタ単位にバーストアクセスしています。
SDクロックは5.6MHzで1/3程度のアクセス帯域となっていますので、2.3MHz程度までクロックを落としても転送レートを確保できそうです。

2011年6月16日木曜日

Octava 4x2 HDMI Matrix switch 7.1 Audio到着したけど残念な結果

 Octava 4x2 HDMI Matrix switch 7.1 Audioが到着しまして、とりあえずSACPと接続してSACDの再生を実施してみました。


 Octava 4x2 HDMI Matrix switch 7.1 Audio 裏面左サイド


Octava 4x2 HDMI Matrix switch 7.1 Audio裏面右サイド


付属リモコン


しかし残念なことに、2台のSACDP SONY BDP-S370、 パイオニア DV-610AVともに再生はできず。V1.3となっていますが、もしかするとバージョンアップ時にガードを掛けるようにしたのかも?


BDP-S370の場合、うまくいけば176.4kHzで再生されるはず
BDP-S370の電源を入れた状態では44.1kHzで同期が取れていますが、SACDの再生を始めるとNO SYNCに。

DV-610AVの場合、うまくいけば88.2kHzで再生されるはず。
再生を始めると一瞬88.2kHzで同期しますが、すぐにNO SYNCになってしまいます。


これはAVアンプTA-DA5400ESを接続した状態でもかわらず。つまりDN-HDMI4000ASよりも残念
な結果になってしまっています。 

ファームウェアICとEDID staticというのを送ってもらえば改善されるという情報をいただきましたが、さて送ってもらえるものかどうか

2011年6月13日月曜日

タイムドメイン試聴会

 AVACで行われたECLIPSEタイムドメインマルチチャネル試聴会に行ってきました。

雨模様の天気もあり参加者は寂しい状態でしたが、ECLIPSEタイムドメインの開発者の小脇さんが、タイムドメイン理論と実現方法の概要を分かりやすく解説。ECLIPSEタイムドメインスピーカに賛同するアーティストやエンジニアの紹介を交え関連する楽曲をTD712を使用して聴かせてくれました。前半は2ch、後半はマルチチャネルが中心。

要点としては、
・一般的なスピーカーは箱の鳴りがかなり多大にのっていてこれらが忠実な波形再生を阻害している。
・周波数特性の測定では、箱の鳴りなどによる波形のひずみは現れない。
・波形のひずみを測定するにはインパルス波形の応答を見るとわかる。インパルス波形の周波数特性は、全周波数領域にわたってフラットである。
・音の特徴を決める要素はアタックに多く含まれるため、原音のより忠実な再生には非常に重要。演奏者はアタック部が変質しているスピーカでは演奏しにくいため、忠実度の高いタイムドメインを好む人が多い。

といったところだったと思います。

他のスピーカや楽器生演奏との比較試聴をしたわけではないので、どれくらい一般的なスピーカと異なるのかはよくわかりませんでした。
現在目指しているデジタルチャネルデバイダシステムとは、フルレンジとなるため方向性が完全に異なりますし、周波数特性の面ではかならずしも良好なわけではなさそうですが、原音に忠実な再生は基本として押さえておくべきところだと思いますので、Yoshi9等も含め、注目していきたいと思います。
Eclpseならば、TD510かTD508IIあたりをとりえず候補で考えています。


 TD510

2011年6月11日土曜日

SDメモリカードプレイヤー機能の実装12(バーストリード化)

CMD17によるREAD_SINGLE_BLOCKでは、いくらクロックスピードを上げても24bit/384kHz再生は不可能ということがわかり、CMD18によるREAD_MULTIPLE_BLOCKに切り替えることにし、とりあえず1クラスタ=64セクタのバーストリードができるようになりました。
CRC16の照合を実施しエラー検出していませんので、きちんとリードできていると思います。

サンプルソースが、CMD17によるREAD_SINGLE_BLOCKであったため、読出しのハード化による高速化をすれば、大丈夫と軽く考えていたのですが、データが出てくるまでの時間が長くて想定外。当初予定とはすっかり実装が変わってきています。



Transcend SDHC 8GB
SD_CLK 22.5792MHz
Sampling Clock 1MHz
Total Access Time  12.49ms(A-B)   Data Read Access Time 11.73ms(T-B)
CMD18によるREAD_MULTIPLE_BLOCK 64セクタ分バーストリード


上図は1クラスタ分リードした波形です。22.5792MHzクロックで、1クラスタ分の転送が12.49ms。
24bit/384kHz再生の場合、1クラスタ分で14.2msの再生時間となるため再生可能な範疇に入りました。
セクタをカウントしているカウンタの下位4bitとデータ転送のステートマシンのモニタ出力を追加しています。黄色の波形の'H'および'L'1つが1セクタ分になります。


32bit/384kHzとなると27MHzぐらいまでクロックをアップさせないとまだ実現できませんが、これは可能なら対応するぐらいで考えます。

転送の概要は下記のようなシーケンスになります。

参考としていたドキュメントだと、CMD12を発行した後に転送中のセクタのデータ転送まで完了して転送終了となるようなタイムチャートに見えるのですが、実際に実施してみると、CMD12を出力したら即停止してしまうようです。
そこでCRC16のサイクルに入ったタイミングでCMD12を出力するように変更しました。


CMD18 によりReadデータが1セクタ分毎CRC16が付与されて出力される。CMD12により転送が停止。

CMD18によるREAD_MULTIPLE_BLOCK 64セクタ分バーストリード


下図は、クラスタ最後の転送(64セクタ目)のCRC16出力直後にCMD12を出力しR1bを受信している波形になります。


CMD18によるREAD_MULTIPLE_BLOCKアクセスのCMD12を出力して転送停止している部分


*図のREAD_MULTIPLE_BLOCKをるREAD_SINGLE_BLOCKと誤記っていたのを訂正 6/12