フィールド・レコーディング

前にも書きましたが、TIのPCM4204というADコンで遊んでいます。TIのADコンバータ、PCM420*シリーズのデータシートで周波数スペクトラムをみると、40kHzから先の周波数でデルタシグマのノイズが増えていることが見て取れます。

そのものズバリのモードもありますし、おそらく倍速のDSD(128fs)でデルタシグマ変調し、チップ内蔵のデジタル・デシメーションフィルタでPCMに変換しているのだと思います。

SACDと同スペックのDSDでは20kHzの少し先からノイズが増えていきますので、PCMのハイ・サンプリングモードで録音された音源に対して、通常のDSD録音では少なくとも高周波特性の点ではかなわないと思われます。

24bitというハイビット収録は、性能面でデルタシグマADを使わざるを得ないと思いますので、音声信号のハイクオリティデジタイズという点に関しては、倍速の128fs DSDモードでの収録が現時点での理想的な手段ではないかと思います。

自分は残念ながら音楽録音の機会はほとんどなさそうなのですが、倍速DSDの4ch録音できるUSB ADユニット基板が作りたくなってきました。かつてのフィリップスのクラシック録音の基本は、ワンポイント+2chの4ch(さらに+1という話も)であったと聞いています。
セミ時雨れのDSDマルチなんていうのもいいかな 。   DPA4060BMを4本は無理かもしれませんが、WM-61Aを4本なら簡単です。フィールド・レコーディングという世界も、はまると結構面白いものです。
ADコンより前のアナログ・フロントエンドは別基板にして××式を試してみたりとか・・・。

各chを倍速DSDでAD変換し、たとえばFPGAでfs=176.4kHz/32bit浮動小数点の4chPCMに変換してPCへ録り込めば、SOUNDFORGEなどを使って浮動小数点演算処理でMixダウンしたりできるかな?などと思ったりもしました。

また、PCから倍速DSDで出力して、基板のFPGAで32bitのPCMに変換してから、最新の32bit対応DACで再生する、というのも面白そうです。S/PDIFという既存のフォーマットに縛られなければいろいろな可能性も見えてきます。

単にオタッキーでマニアックなだけの妄想かもしれませんが・・・。

とりあえず画のようなアプリのフレームワークを作ったのでコマンドライン用のコードを移植してみようかと・・・

USBトランスポート

CypressのFX2LPというUSB2.0対応インターフェースチップを使ってUSBオーディオ・インターフェースを作りました。

通常、USBオーディオ・インターフェースというと、USBオーディオクラスというものを使ってアイソクロナス転送という方法でS/PDIFの形でPCとデータをやり取りします。で、Windowsにはカーネル・ミキサーというものがあって、これがデータを改変したりするといわれています。

当方、アイソクロナスではなく、バルク転送を使ってデータをやり取りすることにしました。USB2.0のHiSpeedであれば、AUDIO転送には十分すぎる帯域がありますので、FX2LP側の( 今回作った )基板にクロックを載せてこちらをマスタにすることができます。

従ってそこからS/PDIFで送り出すのではなく、直接DACを駆動するのであれば、ジッタの心配はありません。

当方はとりあえず( デジタルオーディオ基板の )開発マニアですので、WAVEファイルだけではなく、DSDファイルを再生できるようにしました( というか、とりあえず今はDSDだけ再生可能 )。

しかも、128fsという倍速のDSDでもThinkPad X31というセントリーノ( スペルを忘れた! )搭載超古いWindowsXPパソコンでも問題ないことを確認できました。よって、176.4kHz/192kHzのWAVEファイルでも転送速度的に問題ないでしょう。

倍速のDSDデータは、とりあえず1bitコンソシアムのデータを利用させていただきました。単純に再生してDSD対応DACでD/A変換してもよいのですが、PCM4204というTIのチップがあるので、それを使って遊んでみました。

このPCM4204というA/Dコンバータは、DSDを入力すると44.1kHzのPCMに変換してくれる機能があります( 44.1kHzオンリーのようです )。そこで、こいつに128fsの倍速DSD信号を喰わせて、44.1kHzのS/PDIFを吐き出させるという、酔狂な実験をよりによってお盆休みに実行したのでした。

結果は、すでに書いたとおりに、うまいこと動作したというわけです。

デジカメが不調で証拠 (笑) 写真が載せられないのが残念ですが、PCから見てオーディオデータの吐き出しと、キャプチャの双方ともできていますので、4chの倍速DSD対応 USB A/Dコンバータ、なんていうのも( 帯域が許せば )できそうです。

Hiビット/HiサンプリングなAES3をS/PDIFへ変換

以前このブログでも書いたのですが、しばらく前にTASCAMのDV-RA1000HDというレコーダーを導入し、ハードディスクトランスポートとして使っています。

DSD信号が入出力可能( ほとんど使いやしないんですが )な機器ということもあり、LINNのDSではなくてこちらを選択しました。メインのピュアオーディオにPC関係 (LAN関連機器を) を繋ぎたくなかったというのもあります・・・( RA1000HD自体がPCみたいともいえますが )。

この機械の一番使いづらい点は、24bit/176.4kHz(192kHz)の入出力が通常のS/PDIFではできないというところにあります。 

業務仕様であるAES3-2003の、 Dual Wire/Double Speedという、XLRコネクタ×2端子を使用する接続方法で、チャンネルごとに独立したXLRケーブルで( 結果的にレートを半分の88.2/96kHzに落として )伝送するようになっています。

これでは、CORDのDAC64のような高級機に接続するしか、24bit/176.4kHz(192kHz)を再生することができないように思われます。スタジオユースの業務用録音機を家庭での再生用に使用するのが間違っているといえますが・・・。

リアパネルの写真はTASCAMのHPから拝借しましょう(画像をクリックすると拡大画像が開きます)。

そういうわけで、S/PDIFとの相互コンバータを作ったという記事を少し前に書いています。つい先ごろ、本格的な使用に備えて基板をケースへ入れました。

 

PCM1795って何だ?

ラジオ技術を書店でペラペラめくっていたら、TIの河合さんという方の記事が出ていました。TIも32bitのデルタシグマDACをリリースしてきたようです。

発表されたデータを見ますと、TIの評価ボード通りに基板を描けば、-150dBの信号がそれと認識できるというような内容だったと思います。旭化成が出してきて実際に製品に使われ始めたので、対抗上やむなくリリースしてきたような感じでしょうか。

実は仕事上で、FPGAの機能にI2Cのスレーブを入れ込むということをよくやるのですが(お客様に要求されるのです)、FPGAの回路をハードウェア記述言語(ソフトウェア開発に使うC言語のようなイメージ)で構築する際に、机上で動作シミュレーションするために、相手方(要はFPGAのレジスタを設定するCPUの方を指します)の動作もハードウェア記述言語で構築する必要があります。

何が言いたいかというと、通常は安いマイコンでPCM1795などのレジスタ設定をするところですが、I2Cマスタの機能を回路で構成できますので、CPLDに焼きこんでPCM1795のレジスタ設定をしてみました(もちろんPCM1792Aなどもやろうと思えば一緒です)。仕事の関係でI2Cのアナライザなどもやむなく?所有していますので、設定がきちんとできているかどうかの確認も楽にやらせていただいています。

残念ながら、バラック基板にPCM1795を載せて設定をしてみたというだけで、実際に有用に使い倒し始めました、という話ではありません。こんな感じの基板があればいろいろ実験ができるのにな~、といったところです(回路定数は適当です)。 

作ったI2Cの回路は、11.2896MHzとリセットを入れてあげて、リセットが解除されると、左右2つのDACのアドレス16から21までを順番に設定し(初めにLchを設定し、次にRchを設定)、設定が終わると今度は順番に設定したアドレスのレジスタを読みだすというものです。読み出しが終了したら次にリセットがかかるまではうんともすんとも言いません。

PCM1795のデータシート25ページめの、「Write Register」を2つのPCM1795に対して行い、次に「Read Registerを」2つのPCM1795に対して行います。「Register Address」に先頭値の「16」番地を入れると、あとは実際の値だけを6回続けて(21番地まで)書き込んでいきます(アドレスはPCM1795内で自動的に「1」ずつ進んでいきます)。

読み出しも「Repeated Start Condition」というのが追加になるだけで書きこみとほぼ同じ動作をします。

確認した限りでは、きちんとACKが帰ってきますし、書きこんだ値が読みだされていますので、所定の動作をしていそうです。ちなみに、CPLDのリセット解除はPCM1795のリセット解除より遅くなるようにしてやることが大切です(少なくともシステムクロック1024発分以上は・・・)。

ALTERAやXILINXのツールは無料で使えますので、経験者の方だけでなく、挑戦されたい方は下記のソースをコンパイルして適当なCPLDに書きこんでみて下さい。規模的にはXILINXならXC9572XLあたりに入るはずです。

各レジスタの設定値を変えるためにどこをどう書き換えてコンパイルすれば良いかは、ソースをご覧になってご想像下さい(現状は適当な値が入っています)。 たぶんわかりやすいと考えています。2つのDACのスレーブアドレスは上の回路図のようにしてください(それぞれのADD0とADD1)。

著作権は私、ElectrArtが所有しますが、ご自身の検討目的に限ってご自由にお使い頂いて結構です。動作保証、サポートはございません。自己責任でお願いします。

I2C_MASTER.vhd

技術ネタ

最近ソフトネタばかりで寂しいというご意見を頂きましたので、当方も下のお二方に負けず劣らずのマニアであることを証明?します(笑)

今回の場合、実用性というか利用できるシーンが希少なのにわざわざ作ってしまったというところがミソです。

最近になって、まだまだ少ないながらも、ハイサンプリング/ハイビットのDRMフリーな音楽ファイルが入手できるようになってきました。そこで、ネットワークオーディオではなく、まずはハードディスク内蔵レコーダを、ということで、しばらく前からTASCAMのDV-RA1000HDという機器を手に入れて使い始めています。

SONYなどからもHD大容量の機種がリリースされていますが、CDクオリティ程度のファイルしか扱えませんので、触手は動きませんでした。

そのTASCAM君、本来が業務用途ということで、176.4kHz/192kHz(24bit)には対応するものの、いわゆるS/PDIFで伝送するのではなく、XLRデジタルケーブル2本を使ったAES3フォーマットのDual Wire /Double Speedという方式しかサポートされていないのです。

とは言っても、少し昔の高級機だとか業務用機などではそこそこ使われている方式のようです。例えばCORDのDAC64なんかも確か採用していたと思います・・・。

そこで、下の写真を見て頂くとお分かりかもしれませんが、このAES3フォーマットのDual Wire /Double Speed とS/PDIFとを相互に変換するコンバータを作りました。

176.4kHz/192kHz(24bit)なんて実際に使うことは滅多にないんですが(皆無に近い?)、使おうと思った時になすすべがなく指をくわえているのが悔しいので、頑張ってみました(疲れました)。FPGAの中身は大したことないのですがアートワークが面倒臭い・・・。

このハードディスクレコーダはさらに変わっていて(業務機だから普通か?)、なんとDSD信号を入出力することができます。

DSDファイルなんてさらに希少で、1bitコンソーシアムで公開されているWSDファイルか、ノルウェーの2LというDRMフリーな音源製作販売会社が公開しているDSDIFFファイルしか入手できませんが、KORGのMR-1などの機種でDSD録音もできるようになってきたようですので、マニアとしてはこういったファイルもハンドリングしたくなります。

そこで、デシメーション・フィルタ基板とSDRAM_DAI for TDA1547(DSD)を合体したような基板も作ってみました。DSDファイルを再生してSDRAM_DAI for TDA1547搭載DACでDSDのままD/A変換したり、PCMに変換してからコンベンショナルなDACへ入力することができるようになります。相互コンバータなので逆もまた可能です。

扱うのがSDIF(DSDraw)やSDIF3といわれるフォーマットなので、外部ワードクロックに同期できるようにもしてありますし、もちろんクロックマスターになることもできます。

アートワークにはなんだか非常に疲れましたが、とにかく176.4kHz/192kHz(24bit)のPCM音楽ファイルや、DSD音楽ファイルがネットで普通に購入できるようになって欲しいと、マニアである小生は期待しています。

ちなみにですが、176.4kHz/192kHzですと100kHz近くまでの高周波が再現できることになりますが、当方の場合は聴力検査の結果だけからみると全く意味のない情報量ではあります・・・。

DSD出力セット

連休をはさんだこともあってだいぶ遅くなってしまいましたが、SDRAM_DAI for TDA1547(for DSD DAC)基板, DSD出力基板, ヘッダ基板, そしてTDA1547基板の実装が終わりました。構想を開示してからも随分と月日が経ってしまいました・・・(^^;;;;;;

いつものように、専門の工場へお願いして実装して頂きました。

写真右上のDSD出力基板は、SCD-XE600などのSACDプレーヤーに内蔵することになります。写真左上のヘッダ基板とSDRAM_DAI基板 (およびDAC基板) はDAC側に内蔵し、SACDトランスポート( のDSD出力基板) とDAC (のヘッダ基板) 間とをLANケーブルでつないでSACDを自作DACで楽しむことができるようになります。

ヘッダ基板とSDRAM_DAI for TDA1547基板間には、写真のようにワイヤーハーネスを接続し、SDRAM_DAI基板からはヘッダ基板を経由してDSD出力基板側へ認証信号 を送信し、DSD出力基板からはヘッダ基板を経由してSDRAM_DAI基板側へDSD信号を送信することによって、SDRAM_DAIから水晶発振器精度のジッタレスDSD信号を取り出せるというものです。

先ほど、1m半ほどのカテゴリー5のLANケーブルで動作確認を完了しました。

お薦めのDSD DACということでスペック的には最新のデバイスには及びませんが、TDA1547移動平均2パラ差動DAC基板というものをずいぶん前から作ってあります(愛用しています)。当方の趣味的嗜好が強いかもしれませんが、弦楽器の好きな方には特にお勧めです。スタインウェイなどもコロコロと気持ち良く鳴ります。何といってもPHILIPS DACというのが魅力です(^o^)

こちらの基板はデジタル部のチップ部品と、DACチップであるPHILIPSのTDA1547(2個)とセットでお分けするものです。

ピッチの細かい小さなICはあらかじめ半田付けしてあります。また、チップ抵抗やチップコンは作業性の良いパッケージサイズのものを選択してありますので、注意深く作業して頂ければ完成させることは難しくないと思います。

SDRAM_DAI基板からは「BIT CLOCK」, 「DSD Lch」, 「DSD Rch」, 「System CLOCK(256fs)」の4つの信号が出ており、DSDデータに対するBIT CLOCKの位相を反転して出力することもできるなど、汎用性を持たせていますので、TDA1547以外にも使うことができるのでは、と考えています。 

「SDRAM_DAI for TDA1547」の概要はこのブロック図でご確認頂けます。

まだ少し時間がかかりますが準備が出来しだいリリースさせていただきますので、よろしくお願いします。なにかご質問がありましたらメールを頂ければと思います。当方のメアドをご存じでない方は下のアドレスへお願いします。

BSデジタル放送の音声

以前こちらの記事で、NHKのBSHiによるコンセルト・ヘボウ管弦楽団の演奏会生中継について書きました。

その後簡単に編集してBD-Rに焼いておいたのを最近視聴してみましたが、できれば音楽だけもファイルにしておきたいですので、BD-RをPS3で再生し、光デジタル出力をサウンドカードでキャプチャしました。

この放送、「5.1chサラウンド」という触れ込みでしたので、PS3の光デジタル出力からは、PS3にてAACからPCMにデコードされた後にSTEREOにダウンミックスされた信号が出力されるわけですが、PS3の出力はFs=48kHzにもかかわらず、どうやら放送はFs=32kHzだったようです。

いずれにしても、これなら「Bモードステレオ ( Fs=48kHzのAAC ) 」で放送して欲しかった!

おそらくNHKからパッケージメディアが発売されるのでしょう。それならBDだけではなく、SACDも出して欲しいと切に願います。

KORG MR-1

夏場にどうしても録りたいものがあり ( 残念ながら音楽ではありません。) 、必要に迫られて前の記事のB&H PHOTO VIDEOからMR-1を調達してみました。

なぜか本体$220, 送料$45という不思議なプライスが付いていましたので、いろいろリスクは考えられましたが、リスクテイクの価値があると考えてポチるに至ったのでした。Digi-Keyからパーツを調達するのと同様、アンカレッジを最終経由地としてUPSによって配送されました。幸運なことに、ブツには特に問題はありませんでした。とりあえずビデオカメラ用に使っているステレオマイク (AT822) を流用する予定です。

ということで、試し録りが済んだところで、LINE入力で測定をしてみました(^^

DACを繋ぐのも面倒なので、RME のHDSP9632というPCIサウンドカードから176.4kHzサンプリングのアナログ信号を出力して、MR-1のLINEに突っ込んでみました。

最初にホワイトノイズ。上が176.4kHzで収録したWAVをWaveSpectraにかけたもの、下は、DSDで収録したDFFファイルを、MR-1付属のアプリであるAudioGateで176.4kHzのWAVに変換後、WaveSpectraにかけたものです。

AudioGateでWAVに変換した方は、45kHz以上が急峻にカット※されていますが、もともとこの帯域はMR-1に搭載されたA/DであるPCM1804のデルタシグマに伴うノイズ成分ですから、徹底的に落としてやろうという方針なのでしょう。ハードウェアでこのようなデシメーションフィルタを構成するのは大変ですが、さすがにソフトウェアなので何でもできますね。

※PS3やDSD2S/PDIFデシメーション・フィルタ基板のように、AudioGateの設定でこの部分のフィルタはOFFにすることができます。(5/4追記)

次は20kHzの正弦波で、同様に上のチャートはWAVで収録したもの、下の方はDSDで収録したものをAudioGateでWAVに変換したものです。 

ここでも、AudioGateの急峻なフィルタが印象的です・・・。上のチャートは、結局、PCM1804内部のハードウェアによるデシメーション・フィルタの特性が表れているといえます。デルタシグマA/Dというのは、もともと吐き出すのがDSD信号ですので、ICチップの外部へPCMでインターフェースするには、ロジック回路によるデシメーション・フィルタを介さなければならないというわけです。

余談ですが、PCM1804などをDSD出力モードで使用する場合、( ICチップ設計者の習性として ) おそらくデシメーション・フィルタ回路部への電源供給を遮断するなどして、省電力化に努めている可能性がありますので、DSDで収録する方が電池の持ちがわずかながらも良い可能性があります。

私の場合は、おそらくDSDで収録すると思います。

次は1kHz正弦波。周波数軸をlog表示に変更しました。

付属のマイクはあくまで「お試し」ということもあって、安いラジカセみたいな音で録れます。あとは電池駆動の高品質なマイクプリが欲しいところですが、それこそ自作かな・・・。

MR-1におけるマイクの違いによる音の変化に関しては、YouTubeで実に素敵なビデオが公開されています ( 元はココかな?) 。演奏が上手で曲もなかなか良いので聴いていて引き込まれてしまいます。お勧めですよ。

SDRAM_DAI for TDA1547とDSD出力基板

結局、LANケーブル(カテゴリ5位か?)を使ってDSD基板とSDRAM_DAI for TDA1547を繋いで頂くことにしました。SDRAM_DAI側にもLANコネクタ用のヘッダ基板(LVDSチップも載ります)をつなげて、DSD基板とLVDSで双方向通信することで出力制限します。

それぞれの基板はタカチ電機のL字金具を使ってセットのバックパネルに取り付け可能です。

近いうちに実装屋さんに出す予定。5月下旬には少数リリースしたいと思います。

仕様等、詳細は後日・・・。

DF1706Eにつなげて176.4/192kHzでも・・・

SDRAM_DAI(PCM1794用)ですが、DF1706Eを使うことでPCM1704で176.4/192kHzの再生もできるように、少しばかりモディファイしました。

 上のような基板を作りました。DF1706Eは176.4/192kHz入力にも対応していますが、このときはx4オーバーサンプリング・モードでの対応になりますので、入力信号がx4モードか否かを教えてやる必要があります。

モディファイしたSDRAM_DAIでは、信号が176.4/192kHzのときに、DF1706Eに対して「x4_H」という1bitフラグでこれを通知するようにしました。

 

ただ、「x4_H」フラグを外へ出すためのFPGAのポート(基板のコネクタ空きも)がなかったので、これに同期してLED基板の仕様も少し変更し、ポートの数を稼ぐことにさせていただきました。

具体的には、SDRAM上の書込みアドレスと読出しアドレスの相対位置関係を示す8個のLED用コネクタ(9pin)があるんですが、いままではpin1本について1個のLEDに対応させていたところを、4bitの信号を新LED基板上でデコードして8個のLEDを制御するように改めました。つまり、fs表示用のLEDと同じようにすることで、必要なpinを減らしました。

新しいLED基板の回路図はこちらです。

DF1706E基板の回路図はこちらです。

新しいLED基板の物理的形状(基板の留穴位置を含む)とLED座標は変更していません。

なお、x4モードのときにはDF1706E側では、入力されるシステムクロックが128fsである必要がありますので、モディファイしたSDRAM_DAI基板のFPGAでは、176.4/192kHzにおけるメモリーバイパス時にも、出力クロックを128fsにしていますが、これはPCM1794(A)の要件とも矛盾しません。