USB AUDIO、その9

11月も非常に忙しく、前の仕事の納期が遅れたことから、着手が遅くなって次のお客様にご迷惑をかけたりと、心苦しい月でした。遅れを挽回するためにこの3連休も休みなく仕事をしておりました。

ということで、USB、なかなか進まず、申し訳ございません(^^;;

さて、今日は付属のアプリのご紹介です。前に、4ch録音したDSDファイルを2chのDSDファイル2本に分割するソフトを紹介しましたが、もうひとつ、録音したDSDIFFファイルをWAVEファイルに変換するソフトをご紹介します。

といっても、KORGの録音機器をお持ちの方には全く必要がありません。

本USB基板のみをお持ちでDSD録音される方のための便宜を図るアプリとなります。

見ての通りの簡単なもので、変換したいDSDIFFファイルと、変換先のWAVEファイルを指定してボタンを押すだけです。”32bit Floating Point” というチェックボックスは、変換先のWAVEファイルを24bit/PCMではなくて32bitの浮動小数点によるPCMにしたい場合にチェックを入れます。

通常は再生できるハードやアプリも少なくあまり意味がありませんが、4chで録音したものを (2chに分解して) DAWに流し込んでミックスしたりする場合に、DAWが浮動小数点WAVEに対応していると、演算誤差を小さくできるというメリットがあります。まあ、編集用途にお使い下さいという意図です。

現状は1/32にデシメーションする仕様となっており、DSDIFFファイルのサンプリング周波数を自動的に読み取って、2.8MHzのDSDならば88.2kHzのWAVEに、5.6MHzのDSDならば176.4kHzのWAVEに変換する仕様としております。おそらくはスイッチで1/64のデシメーションにも対応するようになると思います・・・。

今年の正月に本brogにアップしたコマンドライン版ソフトと変換品質は変わりませんが、ソフトの組み方を変えて実用的なものにしてあります。変換速度も(変換しやすいようにわざわざテンポラリファイルを作ったりしませんし)かなり速くなっています。

ところで、せっかくDSD録音したのになぜわざわざPCMに変換して編集しなければいけないのか?という疑問をお持ちの方もいらっしゃるかもしれません。

それは、DSDドメインで編集するソフトが無いということに尽きると思います。DSDの自己矛盾です。正確には、SONOMAというシステムを使えばDSDドメインで編集ができるようなのですが、製作費の潤沢な大手レーベルしか使えないのではないかと思います。

DSDドメインで編集すれば、いわゆるビット落ちというPCMの宿命から逃れることができますし、いつか簡単なミックスアプリを作ってみたいと思うこともありますが、扱うデータサイズが膨大になるので非常に動作が重くなりそう・・・。

USB AUDIO、その8

前回の更新から随分と間が空いてしまいました。楽しみにしてくださっている方には申し訳ありませんでした。

さて、USB基板の方はゆっくりとですが着実に進捗があります。前回更新時点から、DSD2PCM変換回路、および(LED表示による)デジタルレベルメーター回路のインプリメントと動作確認をしました。

録音・再生時にS/PDIFから信号を出すことができますが、DSD録再時にはデシメーション・フィルタで88.2kHzのPCMに変換した信号をS/PDIFから出力します。

また、録音時にはDSD録音モードを含めてデジタル領域でのレベルメーター回路が使用できます。DSD録音時にはデシメーション・フィルタ回路によってPCMに変換された信号を使ってレベルメーターを制御します。

そして、DSD/PCM 両対応DACである、DSD1794Aを繋いで、PCMならびにDSD信号の再生ができることも確認しました。アプリケーションからWAVEファイルもしくはDSDIFFファイルを選択すると、I2Cという制御バス方式によって、DSD1794Aの動作モードを自動的にPCMあるいはDSDに変更するように作りこみましたが、実際に動作を確認したというわけです。

ちなみに、DSD1794A基板のデジタル信号系はHC157を2個使って次のように構成しました。 

残る作業は基板(FPGA)の細かい修正と、Windowsアプリケーションの完成度を上げることです。もちろん、全体的なバグ潰しも並行して行います。ただ、今月の配布には間に合いませんでした。納期的に厳しい部品が1点あるのですが、その手当てが間に合えば年内には何とか・・・したいです。

ぼちぼち仕様をご案内していこうと思います。

USB AUDIO、その7

なかなか忙しくてこちらのプロジェクトに割ける時間が取れないのが目下の(贅沢な)悩みですが、今週はこちらの基板を作ってDSDまんまの音出しができればよいなと考えております。

DSD1794Aは、PCM入力とDSD入力が独立して設けられており、どちらのモードでもSYSCLK入力をSYSCLK入力として受け付けてくれますので、I2Cでレジスタ設定をしようとするには好都合です(PCM1792AはDSD入力を使う場合には、I2Cによるレジスタ設定だと支障をきたすと思われます)。

デジタル部はDSD1794Aのパラ差動、**式でもおなじみですね。追加で74HC157が2個載っかっている基板を作りました。

DSD1794Aの設定はUSB基板上のUSBコントローラチップから行います(ということはつまり、最上位はWindowsアプリからの制御になります)。

USBコントローラチップのI2C制御ブロックを使ってUSB基板上のFPGAと、DAC基板のDSD1794Aのレジスタに書き込みを行うという寸法になっています。

あまり意味は無いですが、参考までに基板の裏も載せておきます。

外付けのDAC基板を用意することによって、PC上のDSDIFFファイルをPCMに変換することなくD/A変換することができます(ハズです)。

DSDIFFファイル録再生時、USB基板のS/PDIFからはFPGAで構成したデシメーションフィルタによってPCMに変換されたS/PDIFを出力する予定です(こちらの実装は来週かな?)。

残念ながらPCM4204はDSDとPCMの同時出力は無いようです。

USB AUDIO、その6

写真は撮っていませんが、リビジョンの上がった基板での検討が始まっています。お気づきでしたでしょうか?以前のリビジョンの基板では、0.5mmピッチのFPGAから2本のリード線による改造が入っていたのを・・・。

最近ではこの手の作業はかなり辛いものとなっていますので、専門の工場に改造作業お願いしています。

さて、新しいリビジョンの基板では機械によるハンダ付け(リフローといいます)を行いましたので、仕上がりの美しさと信頼性が高まっています。

少しづつですが、FPGAのロジックやアプリのバグ取りが進んでいます。FPGAにはもう少し機能を実装しなければなりませんが、そろそろ先が見えてきました。

USB AUDIO、その5

ここのところ、ありがたいことに受託設計業の方が忙しく、残念ながらあまり進んでいません。

検証のため、4ch録音したDSDIFFファイルを、2chのデータ2つに分解するアプリをMFCで作ってみました。このアプリは基板の添付品になる予定です。このあと、録音したDSDIFFファイルをWAVファイルに変換するアプリも近々製作予定です・・・。

USB AUDIO、その4

少しずつ前進しています。

A/Dコンバータ前段のアナログ・フロントエンド基板が出来上がってきましたので、STEREOチャネル分だけ実装して繋いでみました。アナログ回路だけに面積が大きくなり、1枚でUSB基板と同じ大きさです。

さて、USB基板のハードとアプリも、先程4ch対応ができました。

問題は、録音した4chのファイルをどうやってハンドリングするかですが、たとえば176.4kHzのステレオWAVファイル2個に分割する、などが考えられます。編集用途なので32bit浮動小数点データのWAVファイルにも変換できるようにしないと面白さが半減しそうです。そうすることによって、汎用DAW等でミックスダウンを楽しんだりできるのでは、と考えています。この辺の変換ツールは別アプリを作って対応することに・・・・。

レベルメータはLED駆動用パルスを4ch分シリアルでFPGAから出力し、別基板でシフトレジスタIC等でパラレル化してLEDアレイなどを光らせるようにしようかと考え中です。

「再生」モードの方も進捗があります。以前描いて発注しておいたDSD1794A基板が、工場から上がってきました。これも時間を作って部品を実装し、DSD/PCM両対応の再生を確認したいと思います。

USB AUDIO、その3

USB REC/PB バルク転送アダプターですが、残念ながら目を見張るような進展はありません。このところ新規の受託開発案件を頂いていることもあって、なかなか思うように時間が取れないのが主な理由です。

ただ、サポートフォーマット全てにおいて録再の各モードが動作するようになり、だいぶ形が見えてきました。

とは言っても、まだまだ実装したい機能・仕様も沢山ありますし、動作もまだ怪しいところが少なからずあります。「使える」様になるにはもうしばらく時間がかかりそうです。

倍速DSDの4ch録音機能はまだ未実装(汗 アナログフロントエンドも2ch分しか入力していなかったりします。歳のせいか?たまにユニバーサル基板を組むと結構疲れますが、近いうちにOPA1632を使ったフロントエンド基板が中国の工場から出来上がってきます。

最初のバージョンは再生機能に物足りなさが残るかもしれませんが、Windowsアプリは徐々にアップデートできるというメリットがあります(微妙な時期にWindows 7がリリースされるのが非常にいやらしい)。

USBチップのファームウェア、FPGAのロジック回路、そしてWindowsアプリ(何といまさらMFC)、と、結構大変なんです。長い目で見て頂けると助かります。

・・・なんとか、11月の終わりまでには形にしたいと思っております。

ONKYO ND-S1について

iPodからデジタル信号を取り出せるトランスポートということで、Wadiaに続いて、最近ではONKYOからND-S1という機器が販売開始になりました。

そろそろiPodデビューしたいなと思っておりましたので、手持ちのBeatles関連CDをすべてApple Losslessで取り込んでCD棚を整理しようと、新しい5th Generation nanoとセットで購入しました。

早速すべてのBeatles関連CDをiTunesに取り込んでnanoに転送しました。そして、SDRAM_DAIに繋いで再生を開始したのですが、「あれっ?」、FSの表示が48kHzとなってしまい、メモリーバッファーモードにすると早回し再生になってしまいます。

iPodに取り込んだ音楽ファイルはすべて44.1kHz/16bitの信号なのに、再生すると「ND-S1から出力するデジタル信号」のチャネルステータスフラグには、48kHzを示すフラグが付いてきているようです。

USB経由でのPCからのデータについては、入力信号のFSに応じた正しいチャネルステータスフラグが付いてくるようですが(実はこちらの方は自分ではまだ確認していません)、iPodモードで再生すると、音楽ファイルのFSにかかわらず48kHz固定のチャネルステータスフラグが付いてくるようです。

これについてONKYOのサポートセンターに照会したところ、

  1. iPodモードでは音楽ファイルのFS(サンプリング周波数)にかかわらず、48kHz固定のチャネルステータスフラグを付けてデジタル出力している。
  2. チャネルステータスフラグを44.1kHzでなく48kHz固定にしたのは、そのほうが音が良かったという判断である。
  3. 上記「仕様」は、ハードウェア的に固定されているので修正はできない。
  4. 上記「仕様」は、S/PDIFの規格であるCP1201には厳密には準拠していない。
  5. 市販の大多数のDACでは再生できるので製品仕様は変えるつもりはないし、クレーム対応に応じる予定も無いが、今後の対応として、カタログ等にお断りを入れるなどの方向で考えている。

という見解をもらいました。

確かに、ONKYOサイトの商品仕様を見ても、デジタル出力がS/PDIFであるとはどこにも書かれていません。それでもほとんどのDACはDAIレシーバーICが復調したクロックに基づいて動作しますから、なるほど再生には問題ないでしょう。私個人としてはND-S1の仕様は奇妙だと思いますが、「S/PDIFには厳密に言って準拠していない」そうなので微妙なところです。

ND-S1が上記のような仕様ですので、大変残念ですがSDRAM_DAIで44.1kHzのファイルを再生するには、メモリーバイパスモードでお使い頂く必要がございます(FSLEDは48kHzを示しますが)。SDRAM_DAIは入力S/PDIF信号のチャネルステータスを見てFSを判断するという仕様のため、このような結果となります。ご不便をおかけしますが、ご了承ください。

—-  以下、独り言です。 ——————————-

まだND-S1を開けていないのですが、USBモード時はPCM270*系、iPodモード時はDIT4***系を使用しているらしいです(とあるサイトの情報)。だとするとUSBモード時は自動的に正しいFSを示すチャネルステータスフラグが付いてくるのは納得です。

DIT4***系を使ってハードウェア的にフラグが固定されているということは、どういうことなのでしょう。データシートをさらっと眺めただけの感じでは、チップをハードウェアモードで使用した場合、スータスフラグを44.1kHzに固定するのであれば、”CSS”というピンをGNDに落とすことで簡単に実現できそうですが、48kHzにするにはそれなりにパルスを作って”CSS”ピンに入力しなければならず、設計の負荷は少し増しそうです。これを本当に「音が良い」という判断でわざわざ行ったのであれば、オーディオメーカーとして大した姿勢だと思います(個人的には、パルスを作って入れるよりもGnd固定にした方が音に良い方に影響するような気がしますが)。

もしかすると、Appleのチップ(あるいはiPod内部)からはFSを示す信号が来ておらず、チャネルステータスのFSフラグは何らかの値に固定せざるを得ないのかもしれません。たまたま何らかの理由でそれを48kHzにせざるを得なかった、というのが本当のところのような気がします。

気が向いたらお腹を開けて解析してみようかと思います。もしもDIT4***系をハードウェアモードで使って「固定」にしているのであれば、”CSS”ピンを持ち上げてどこかGndにつなげるだけでフラグは44.1kHzに固定できるはずです・・・(そうすることで、何かほかの問題が噴き出して来る可能性はありますが)。ソフトウェアモードで使っているとしたらお手上げです。

ひょっとしてONKYOはCDプレーヤーでも48kHzのチャネルステータスフラグを付けてデジタル出力を出す機種があるのでしょうか?

USB AUDIO

まだまだ「他人様に使って頂ける」という意味での実用には程遠いんですが、DSDの再生装置として働いてくれています。

このところ、16bit/44.1kHzのBeatlesばかり聴いていたのですが、久しぶりにDSD録音した音楽を聴いてみました(デバッグともいいます)。

以前紹介しましたが、TASCAMのDV-RA1000HDという機器を導入して、FM放送や、昔エアチェックしたテープなどをDSDでデジタル化して楽しんでいます(DSDもへったくれもないかもしれませんが)。アナログ出しの音も回路構成の割に(失礼)良く、いろいろな意味で大変重宝しているんですが、オーディオルームのメインシステムにつながっていて、仕事場では使うことができません。

そこで、PCからDSDを「送信」して、DSD対応DACで再生できないかと、かねてから考えていました。深く調べたわけではありませんが、今のUSBオーディオI/Fというのは、基本的にS/PDIFでのやり取りを扱っているので、DSDの送受信には不便です。また、転送モードとしてアイソクロナス転送を用いているため、クロックジッタの影響が避けられません。

そこで、バルク転送モードを利用することで、独自にDSDデータをPCとの間でやり取りさせることにしました。もちろんPCMデータの送受もできるようにしています。

通常、USB2.0のHiSpeed転送であれば、オーディオデータの実録再速度よりもずっと早いですので、たとえば再生を考えた場合、USB基板側の再生速度でPCからの送信データをフロー制御できます(PCがデータを送信しようとするところを、USB基板側の再生速度に合わせて「待った」をかけられます)。

したがってUSB基板側の512fsクロックの精度で録再ができることになります。

基板には、外付けのADC/DAC基板が繋げるように、双方向のデジタルIO端子を設けています。もっとも、オンボードでTIのPCM4204という4ch DSD/PCM対応ADCを搭載しています(上の基板には実装していません)。

また、ジッタ性能が受け側DAIレシーバのPLLによって影響を受けることにはなりますが、S/PDIF出力も付け、”SDRAM_DAI fot TDA1547″にDSD信号を送信することもできます(WAVの再生ではPCMを送信可)。現在は、双方向IO端子に外付けのDAC基板を接続するのではなく、S/PDIF経由で、”SDRAM_DAI fot TDA1547″ にデータを送り、 “TDA1547基板”でDSD再生を楽しんでいます。

そういった使い方であれば、バスパワーでもなんとか行けそうで、コンパクトなUSBアダプターになります。問題はアプリケーションで、Windowsのオーディオクラスを使えないので、独自のソフトを作る必要があります。

続く・・・

アートワーク

しんどいアートワークが終わりました。明日から受託の仕事が入っているのでギリギリ間に合ったというところです。人それぞれだと思いますが、私の場合アートワークは集中して片づけてしまわないといつまでたっても進まないのです。

週末には製造上がりです。新しいものを作るときはワクワクします。

4層板を覚悟しましたが、何とか2層に収まりました。

基板ができても、始まりの入口でしかないのですが・・・。