Core Audioって実はバイナリ一致しないの?

closeこの記事は 6 年 2 ヶ月 2 日前に投稿されたものです。最近の記事内容との齟齬がある場合,リンク切れが頻発している場合がありますが,ご了承下さい。

私Core Audioってバイナリは当然一致するもんだと思ってたんです。ASIOの系譜だって話ですし,誰もバイナリ不一致だよねとか言いませんし。Benchmarkのwikiには色々と書いてありますし…。

ところが,先日USB-DSD基板で有名なElectrArtさんが,「MacにおけるBit perfect」というエントリで実はバイナリが一致しないんじゃないかという検証結果を掲載されました。下掲の引用部分をご覧頂ければおわかりとはおもいますが,デジタルケーブルを繋げたもので一切アナログの要素はないです。このUSB基板自体デジタルでしか出力できません。

>Mac (ちなみに最新のOS X 10.6.4にアップデートしてあります) に繋いだUSB DUAL AUDIO基板上のS/PDIFを経由して、別のPCのRME HDSP9632というカードへ入力し、そのPC上で動作するWavespectra でリアルタイムに「録音」してスペクトラムを観てみました。

これにはびっくりしまして,早速Appleの有償(1回3000円だそうです)の窓口にAppleCare使って問い合わせてみました。

私Macは持ってませんので,iPhone担当の部署に質問しました。質問内容としては「CoreAudioの仕様として,ボリューム100%の場合,記録されているデータとD/A変換する直前のデータは同一なのですか?」という感じです。

で,頂いた回答内容ですが,「テクニカル部門とも確認したのですが,テクニカル部門のみ参照できるCore Audioの技術仕様書にもバイナリについて記載した項目がないため回答できません。理由としては,そもそも非公開情報に該当するか,または検証自体をしていないか,が考えられます。」とのことでした。

まあ,この回答内容にもさらにびっくりですが,もう少し情報収集に努めてみたいと思います。ほんと,PC関連は持っていない製品についてはコメント出来ないですね。反省。

このエントリをご覧の方で,「私バイナリ比較してみたよ!データあるよ!」という方の情報提供や,「このページにデータ掲載されてるよ!」といった情報をお持ちの方,いらっしゃいましたらご一報頂ければ幸いです。

【追記】
追加記事がきてました。
http://fpga.cool.coocan.jp/wordpress/index.php/2010/10/08/amarra-junior-%E5%86%8D%E3%81%B3mac%E3%83%8D%E3%82%BF%E3%81%A7%E3%81%99/
http://fpga.cool.coocan.jp/wordpress/index.php/2010/10/08/core-audio-driver-on-mac/

ElectrArtさんの記事を改めてまとめますと,以下のような感じですかね。
・CoreAudioの仕組み自体はバイナリ一致を前提にしている模様
・ただしアプリによってはデータを受け渡す際の処理が甘く,ファイルが改変されてしまう
【iTunes@MacOS X】
24bit/44.1kHzのバイナリ一致を確認,48kHzも多分大丈夫,96kHzは不一致
【afplay・QuickTime@MacOS X】
24bit/44.1kHzのバイナリ不一致を確認

【追記】
ElectrArtさんの追加記事によると,AmarraMiniについてはバグ?ということで修正が行われたようです。
http://fpga.cool.coocan.jp/wordpress/index.php/2010/10/13/ammara-junior/
誰かが確認して指摘するまではそのままだったのでしょうか。何事も確認することは重要ということですね。

Core Audioって実はバイナリ一致しないの?」への6件のフィードバック

  1. ピンバック: えるえむ

  2. Macindows

    iTunes自体はElectrArtさんも書かれているように、(恐らく)48kHz,24bitまでならbit transparentと思いますが、そもそも24/96は再生するとき48kHzになったように記憶しています。

    QTはPCの場合、24/192までbit transparentだという記載が以下にあります。
    http://www.designwsound.com/dwsblog/?p=1718

    MacのQTやfplayはどうなのか光miniケーブルがあれば確かめられそうな気がしますが(入出力がアナログ、光デジタル共用なので、再生/録音を同時に行って、元ファイルと比較)。

    返信
  3. えるえむ 投稿作成者

    Macindowsさん,いつもありがとうございます。
    ElectrArtさんの記事を改めてまとめますと,
    ・CoreAudioの仕組み自体はバイナリ一致を前提にしている模様
    ・ただしアプリによってはファイルが変換されている
     iTunes@MacOS X
     24bit/44.1kHzのバイナリ一致を確認,48kHzも多分大丈夫,96kHzは不一致
     afplay・QuickTime@MacOS X
     24bit/44.1kHzのバイナリ不一致を確認
    ということでしょうかね。afplayとQuicktimeでバイナリが一致するか否か興味深いところです。暗にリッピングデータの再生もiTunesを薦めていることからすると16bitも精度出てないのかなあ…。
    ところで,PCでQTがバイナリ一致するというのは凄いですね。iTunesはQTを再生エンジンに使っているはずなので,音が悪いことでマニアには非常に有名なiTunesはバイナリが一致するということになるのかも…。うーむ。

    返信
  4. 闇異人

    えるえむ様

    おっしゃるとおりiTunesはQTを再生エンジンに使っています。
    しかし、Quicktime Playerもエンジンは同じなので、バイナリが不一致と
    言うのはどうにも解せないです。
    さらに言えばafplayはQuicktimeすら通しておらず、これはおそらくですが
    双方ともにCoreAudioから同じAPIを呼び出しているはずなのでiTunes
    がバイナリ一致なら全てバイナリは一致するはずなのですが・・・?

    返信
  5. えるえむ 投稿作成者

    大阪の朝日ステレオセンターのHN白髪犬さんから,WEISSのINT202をつかってビットパーフェクトのチェックをした結果をいただきました。
    http://tatsumi.audio-asc.co.jp/
    INT202については下記。
    http://www.asiaweiss.com/main/?p=1062
     
    16bit/44.1kHz,48kHz,96kHzはバイナリが一致するようです。
    後日他のフォーマットのチェックもして頂けるそうですが,24bit/44.1kHzのバイナリが一致するようならUSBとIEEEで処理が異なることになり,バイナリが不一致になるようであればafplay・QTではどこかの処理が不十分ということになるのでしょう。
     
    白髪犬さんありがとうございます。

    返信
  6. えるえむ 投稿作成者

    闇異人さん,コメントありがとうございます。
    iTunesについてQTを再生エンジンに使っているのはWindowsPCの場合で,Macの場合は私はわかりません。Macの場合,諸説あるようです。
    最近CoreAudioの解説本がでたので,そちらをご覧頂くか,もしくはMacindowsさんがおっしゃっているようにループバックしてテストするか,どちらかしかないですよね。
    私も,「~なはず」でCoreAudioなら何でも大丈夫だろーとか思っていたら,実はアプリによって違いますみたいな話になって,持ってないMacについては極力話題にするのを避ける他ないなあという状況です(苦笑)。

    返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title="" ktai=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">