2010-12-18

DSD:切れ目を探してみる 次のステップ

色々あちこちで会話して…

・どうもプレイヤーの問題ではないか?
・信号線を途中から分岐させてるので、電圧低下とか、出力不足の可能性もありそ…
・PLAY時に発生するデータ不良はどうも内部の電源パワー不足っぽい…

ってことで…対策案として
・HDMI-I2S 基板取り付けて、バッファ入れ、差動化、アイソレーションで信号を整形してみる
・電源強化、コンデンサとかを容量アップとか?
・ソフト的なエラー処理プログラム作成

ってあたりですかね。順番に試して検証していってみようかと思います。

DSD:切れめを探してみる試み その4



非常に面白い…

起動時のサーボの問題なら、ポーズかけて実行すればそこらのサーボ問題は回避できるのではないか、と考え実施した結果。
上が曲途中からの起動、下が曲先頭からの起動。

こうしてみると、曲先頭にはある程度の微細データがあり、先ほどの起動時データの確認と類似しているのがわかる(完全一致するかについては、後ほどデータを検証してみます)

となってくると、不思議なのは、1つ手前で、ぽつーんと1つだけ出てたデータ。あれはお皿にのっていないデータと見なせるわけで、機器にからむノイズという事になる。これがどこからやってきたのか…謎は深まる…

DSD:切れめを探してみる試み その3


悩みが増えた…

無音時のデータがA5→2Dへ変化した…なぜだー
無音時から再生開始時のデータパターンはランダムっぽい…これも理由がよくわからん…
(何度か同じお皿の冒頭部を録音してみた結果として)

ビットの開始位置が違うから、全体の値が異なる、という理屈はわかるが…

A5(1010 0101) -> 2D(0010 1101)となる理由がわからん。録音側の重ね合わせとかで何か起きてるのかしら?
オシロで信号を直接覗いてみないとわからんかもだなぁ…

色々悩み中

===追記===

ここまでくるとお見事としか…
なんか電源まわりのせいですかねぇ、ほんとに…

技術的課題と解決方法案

なんかノイズが乗るな?とおもってた音ですが、しばらく放置してクロックの発振が安定したあたりでやったら正常っぽく聴こえるように…ってことは、クロックのロックが外れてるケースがあるってことですな。

ASRCとかの回路を入れないとしたら、SCLKをどちらかの機材のに合わせる必要があるわけですが、これは加工が面倒そう…ちょっと調べてみますが…

で、なんかいい手はないかなー、と思案してて1つ思いつきました。

要するに写真とかのDレンジを広げるのと同じ方法が使えるんぢゃね?と…

1:何度か同じデータを録音します。最低3つ、できえれば4つ以上。
2:ビット列の開始位置を併せるためのシフトを実施します。
3:幾つかのデータ間での比較を行います。
3-1:データ間比較で同じなら正常データ。
3-2:データ間比較で違うなら、多数決(一致データの同じものが多いものを採用、違うものはリップ時のロック不良等に起因するノイズと見なす)

ってやれば、お皿自体に起因するノイズはともかく、この手のリップ時のノイズは無くせますね…って、CDとかでも同じことできそうぢゃんw

なんか時間とソフト処理で解決できそうなので、そっちを考えることにします(笑)

DSD:切れめを探してみる試み その2


というわけで別の楽曲でテスト。
なんか、途中でぷちぷち音飛びしてる気がしなくもないが…クロックが同期とれてないせいかしら…ここらはDSDダウンロードデータとリップしたデータとのバイナリ比較をやらんとわからんなぁ…

ともあれ、曲区切りのチェック…うぇぇ…汚いです…

考えられる要因は
・もともと曲間もデータがある(完全無音ではない=オーサリング時になんかしてる)
・プレイヤー内部の暗号解除チップが、通電されるとなんかデータを吐く(のが検出される)
・プレイヤー内部でなんかノイズが乗ってる(これは下記で検証)
・録音機がノイズを…

ひとつひとつ可能性を潰していかんといかんですね…面倒だなぁ…


ちなみに、録音冒頭で、未再生から再生に向けたあたりのデータがこれ。
未再生の時はA5がずらーっと並んでるので、プレイヤー側からのデータは何も出てないのがわかる…プレイヤー内部のDACチップはMUTEでもしてるのかしら…
再生ボタンを押して、お皿が回り始めると、99系のデータがちらほらしてくる…これが、お皿回る→再生開始、までの間の話なのか、再生開始(つまり曲頭のデータ)なのかは今の処未判別。もうちょっと厳密に時間からデータの区切りを作りださないとわからんね…もしくは曲冒頭からガンガン鳴るような曲を使うか…

なんにせよ、お皿側で都合のよいデータを探さないとわからん…ってことで、テストデータ待ちですな…

しかし、なかなかに興味深い

DSD:切れめを探してみる試み その1


個人的には、どーでもいいんですが(アルバム1つまるまる1データで扱うのも特に気にならないので)…

なんか某氏がやってる作業を自動化できんかなー、とデータを眺めてみました。
つーても4分で170MBとかあるので、普通に眺めてると日が暮れる…ってんで、曲間にあたる時間をAudioGateで再生させてメモ…で、ビットレート(2822400)から、その曲間のアドレスを求めて、その付近をバイナリダンプしてなんか特徴的なデータになってないかなー、と…

予想では、A(1010)か6(0101)がいぱーい並んでると読んでいたのですが…あっれー全然ないや…
#誤記6は0110でしたね、5(0101)が正解です…失敗した…orz

ところどころにA6とかAAとかあるので、無音っぽい区間ではあるんですが、なんか色々他にもあるくさい。どうもクラッシックの一連の曲で、その曲間(演奏はしていない区間)にあたって、無音に見えるが無音ではないらしい…もしくは、録音機材自体が持つフロアノイズを記録しちゃってるか…

というわけで、こういうケースは単純には判別つかない模様。演奏時のデータを構築して、あるdB以下だったら無音区間とみなすか、もしくは、CDDBあたりから同じ曲のCDの曲データ拾ってきて、同じタイミングで曲切れるだろ、って自動計算でカットするくらいかなぁ…

完全に曲区切りの(無音区間の)ある奴をやってみて、データ比較してみますかねぇ…

ES9018データシート

お昼頃、気付いたら知人より留守電が…

「ES9018のデータシートがついにWeb上に公開されてしまったようです」と。

ありゃりゃ、と思って、帰宅後にちょっと探してみる…でも酔っ払いなのでさくさく寝ちゃいましたが…

ES9008とES9018がuploadされてるみたいですね…これでレジスタ周りを弄ったりが容易に…って、弄れそうな人は、データシートなくてもそこそこいけそうで、確証が得られたって処でしょうか。

I2Cのコントローラー製作すっかなー

2010-12-17

Musiland と HDCD 再生

全然気付いてなかったんですが…

Musilandの最近のドライバって、HDCD再生機能がデフォルトで入ってるんですね…

HDCDを調べてみると、基本は44.1/16データで、CDのまま再生なんですが、HDCDと認識すると色々データ拡張を行うとか…

PCでこいつを再生するには foobar2000 使った上に、専用のプラグインを入れないとダメだとか…

でも、Musilandならデータ流しこめば認識してドライバレベルで拡張するようで…こりゃ面白いや…

メディアになってる状態だけではなく、リッピング後のデータでもHDCD認識はできるとか…うちの手持ちにそんなCDあったかなぁ…少し探してみよう…

===追記===

Monitor シリーズ用のにははいってないのかしら…表示が出ませんね…んー、もうちょっと探してみよう

2010-12-15

第二のラッパ…

第二の天使がラッパを吹いた。
すると、火で燃えている大きな山のようなものが、
海に投げ入れられた。
海の三分の一が血に変わり、
また、被造物で海に住む生き物の三分の一は死に、
船という船の三分の一が壊された。

いえね、1つ前のネタで使うつもりだったんですが、すっかり忘れていたのでw

というわけでビットパーフェクト検証用データの準備中です。

対象のデータは
ノルディック・サウンド~2Lレーベル・サンプラー(SACD+ブルーレイ音声ディスク)

丁度DSDの再生テスト用に2L本家からダウンロードでデータは購入済みだったりします(DSD64 and DSD128)。

同じ曲を何回買うんだ…とかおもわなくも…

適当にリッピングして、ダウンロードデータとバイナリ比較して、完全一致するようなら何の支障もなく…とわかる仕組みです。

違ってるよーなら、「なんかオーサリングでデータ変えてるん?」って質問を2Lに投げてみようかと…(どーやって入手したとか言われそうですがw)

さてさて

2010-12-14

冬コミネタ その1


察して…(をぃぃ

XPの古いマシンでやってみましたが、全然問題なさそうですね…
試しにAudioGateにデータ送って再生してみましたが、ぱっと10分くらい聴いた感触からすると全然問題なす。

プレイヤー側クロックをこっちのI/Fボードから供給してやれば、もっと安定しそうだなぁ、とか思いつつ。

まぁ、色々やる気になればできてしまう時代になったんだなぁ、と思ったり…

マネしちゃダメですよ!?

===追記===

ちとモノをそろえて、バイナリ一致の確認をとってみたいと思っています。

要するに
(1)ダウンロード購入できるDSDデータ
(2)同じDSDデータをSACD化したパッケージ
を用意して、これらがバイナリ一致すれば、方式の完全性が確認できる、というわけですな…

2Lあたりをみればなんかないかなー、と思いつつ…

ヘッドフォンのマルチ駆動



手持ちである、8chのUSB-DDC基板(44.1/16なら16chですが)、これを使って…

Linux機とかで、チャンネルデバイドしたデータをUSB(ASIO)使ってマルチチャンネル転送。
それを複数のDACで受けて、別々のPHPAに突っ込んで、マルチドライバのヘッドフォンorイヤホンを個別駆動…

なんか、マルチドライバのヘッドフォンあればできちゃいそうな気がしてきました…

ネットワークのせいでちょっと気持ち悪かったマルチBAのIEMも、この方式なら綺麗に鳴らせそう…ってことは、カスタムIEM作る気になれるかも…(イヤーチップのコネクタが4ピンとか6ピンとかになりますがw)

なんか面白そうなので、来年の夏コミあたりを目指して製作するかもしれません。

いぁ、WSDで8ch録音されたデータを再生するには…って考えてたら…そういえば、デジタルチャンネルデバイダー使えば、Low/Mid/High別々にデータとして切り出して、それぞれDAC駆動できるぢゃんと…そうすれば位相とかずれない波形が作れるんぢゃないかと…

2010-12-10

冬コミの本の内容(予定)


DSDプレイヤー周りの現在の構想図より、黄色の部分を重点的に冬コミ本化する予定です。
どこまで書けるかは「法律」との絡みがぁ…まぁ、当日会場で直接聞いてくれれば色々喋れる事もあるかと思います。

狙っているのは、PCレスでのポータブルDSD再生環境で、そこに向けた検討やら検証の結果等を記す予定。
とわいえ、まだ幾つか検証が終わっていない件も含まれるので、はたして書ける内容になるかは当日まで不明(笑)

同人誌は現地配布以外は「しません」ので、ご来場お待ちしています。

しかし、本当になんとかなるもんだなぁ…(を

いろいろと出ましたねぇ…

Colorful Technology Pocket Hifi-Player

…最初に見つけたころはよかったんですが、今となっては…

手持ちのポータブルシステムに組み入れても、向上する処がにゃい…ので見送りですねぇ…見つけたころに売ってたら買ってたと思うんですが…実に残念…

SR-71B

こっちは期待してます。Headfiでは、"フルバランスぢゃないと効果ないぜー"って話らしいですが、手持ちのポータブルシステムはフルバランスなので…PCMもDSDも…ってことで検討してますが…当面は資金難ですかね…

周囲で買う人もいるだろうから、どっかでシステム繋げて聴かせてもらおうかな、と思いつつ。

2010-12-09

cPlay version 1.0 final のビルド

色々弄ってた処…あっれー、ASIOドライバーが見つからない…

なんでぢゃろ、とちまちまステップ実行してたら…

asopdrivers.cpp 中の bool AsioDrivers::loadDriver(char *name) で、

if(!asioGetDriverName(i, dname, 32) && !strcmp(name, dname))

とやって、ASIOドライバのマッチするものを探してロードしようとしてるんだが…

name = "MUSILAND Monitor Series(USB)"
dname = "MUSILAND Monitor Series(USB) ASIO Driver"

とかになってて、strcmpでマッチしないことが判明。あっれー、どこで違う文字列拾ってんだろ…

って、色々調べるのも面倒なので適当に名前マッチさせちゃえということでちょっと修正w

if(!asioGetDriverName(i, dname, 32) && !strncmp(name, dname,28))

とかやって、ASIO Driverを無視させてみた処、無事認識、再生成功しました。

これで、ほっと一息。あとは USB PAL のドライバ認識させて、DSDのレスポンスが帰ってきている事を確認できたら…DSD流せるような改造を施す事に…

年末までにできるといいなぁ…

2010-12-08

状況の整理

デバイス
(A) USBPAL
(B) Musiland Monitor 01 US

プレイヤー
(1) foobar2000
(2) cPlay (今回ビルドした奴)

(A) に関しては、どうもASIOドライバ周りが変…(1)でも初期化できないとかいわれてしまうので…メーカー問い合わせ中。
(B)-(1) に関しては、ASIOで認識して再生問題なし。ASIOは普通に動いてるらしい…
(B)-(2) に関しては、ASIOデバイスを認識できてない様子。起動時にレジストリがどーのとか出るから、ちゃんとインストーラーでインストールしていないのが原因かしら?

というわけで cPlay の問題と、USBPAL の問題の2つが現在残っている状況、ですな

===追記===

USBPALに関しては、Add-Onボード付けたら動きました。どうやらクロックのせーじゃないかとの話。
AddOnボードにはジャンパピンがあって、それが効いてるのかなーってことでベースボードだけ(つまりI2SやDSD)だとジャンパピンの設定が必要だということはわかった。
この考え方で正しいか?をメーカー問い合わせ中。

そして、cPlayから認識されない問題は残ったまま…デバッグしまっかねー

2010-12-07

ふぃ、なんとか動いたかしら?



ふぃ、なんとかビルドできた、かな…色々ワーニングでてるが…

__declspec(dllimport) public: char const * __thiscall std::basic_string への対処は…色々調べてもうまくいかなかったので…

flac-1.2.1 の libFLAC++ の構成ファイル3つを、cPlayer のプロジェクトに持ってきて、そのままビルド、libFLAC++.libをリンク対象ファイルから削除、という強引な方法をとってみました(をい)

libFLAC++.libを作成してた時の標準インクルードの問題のような…

まぁ、できたのでよしw

DSDサポートを入れて、基板を認識させてみます。

===追記===

やったー、ってことでUSBPAL基板繋いだらASIO認識しない…って、USBPALのコントロールパネルでサンプルレート変換しようとしたらエラーになる…ってことでメーカーに問い合わせ処理中…orz

こまったもんだ

2010-12-05

Buffalo II 狂想曲

Buffalo II DAC 100MHz 版 2度めの放流が本日10時から(先ほど)だったので、Twitterで勇者たちの発言を眺めていたんですが…

すごいですねー、開始5分で売り切れ…orz カートに入れ過ぎたって、数修正しようとしたら、Out of order になったとかいう人までいて…

次回は1週間後…一体一回あたり幾つリリースしてるんですかねぇ…

え、おいらはもう2つ持ってるのでみおくりモードで…

===追記===

次回は2週間後とのこと、しっぱいしっぱい

あと、ちょくちょくカート追加ボタン出てますね、ボタン押し間違え対応でちょろちょろ放流されているのかな…粘れば買えそうです

2010-12-04

第一のラッパ

第一の天使がラッパを吹いた。
すると、血の混じった雹と火とが生じ、
地上に投げ入れられた。
地上の三分の一が焼け、
すべての青草も焼けてしまった。
[ヨハネの黙示録8.7]


マジコン違法化に伴い、DVDの家庭内での暗号化解除も違法とみなされるそうで…みなさん如何お過ごしでしょうか?

…写真は…何も言いません…わかる方だけで……察して……

いぁ、なんでこの音を世に解き放たないんでしょうかねぇ、ホントに…というか何も考えずに一発で成功するとは思ってもいませんでした、ええ…

暗号化が音質にどのくらいの影響を与えるものなんでしょうかねぇ…謎ではありますが、検証してみないとですね…

迂遠なるDSDポータブル機システムの構築に向けて、一歩踏み出してみました…そろそろやばいエリアです、ええ…

2010-12-03

ノロ、ですかね…

パシフィコ横浜でのET2010の3日目。

なんか凄く体がちくちくと痛い…
おなかもごろごろ鳴る…
ってか、下痢ですよ下痢、それも3回も水のようなのが(帰宅して4回目)
昼飯食べにいったら、全然食事が喉を通らん…とろろご飯+きつねうどんで、超あっさり系なのに…

息子1号の通ってる保育園でノロ発症らしい
息子2号が3回も吐いて、昨日は脱水症状のため4時間も点滴受けてたらしい

あー、やっちゃいましたかねぇ、これ…

とりあえず今日は早く寝よう…

2010-12-01

面倒だなぁ…

libFLAC++_static.lib(stream_decoder.obj) : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (__imp_?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) が関数 "public: virtual enum FLAC__StreamDecoderInitStatus __thiscall FLAC::Decoder::File::init(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?init@File@Decoder@FLAC@@UAE?AW4FLAC__StreamDecoderInitStatus@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) で参照されました。

.\Debug\cicsPlay.exe : fatal error LNK1120: 外部参照 1 が未解決です。

結局この未解決が解決できない…どうも、libFLAC++_static.lib と VS2010 の標準ライブラリがあってないせいぢゃないかと予想するも、どこをどーなおしたものか…

libFLAC++_static.lib を VS2010 で作り直す方が早いかしらと、libFLAC のプロジェクトファイルを VS2010 で変換してみるも、うまくいかない様子…0からプロジェクト作り直さないとダメかしら…

configure + make で作っててくれればいっくらでも解析できるんだが、VSは全然慣れないなぁ、と思いつつ設定項目を探す毎日…orz

ここが通れば cPlay のビルドが完成して、次のステップへ移れるんだが…