新しいものを表示

リミッタ無関係にダメっぽい(整数の精度になってない)の、fb2k、winamp、DirectShow、
ダメじゃないやつKbMediaPlayer(ds、winmm両方)

あ><; リミッタ拾ってただけ?><;

Winamp、WMP12も整数精度になってない><

WASAPI共有の高精度再生、うまく言ってる場合とそうじゃないのがわけがわからなくなってきた・・・・><(例えばfb2kは整数の精度で再生してない><)

もしかして、WASAPIはWASAPI共有でも高精度(というか32bir float上で完全な精度)だけど、DirectShowとかwinmmとか経由では低精度?><;

楽しいハック講座 (4) Windows7 オーディオアーキテクチャの概要 – Windows Multimedia Hacks blogs.msdn.microsoft.com/windo

DirectShowじゃなくDirectSoundが何かしてるっぽい挙動っぽさ?><

DirectShowでwavファイル再生したら精度めちゃくちゃって出た><; なぜ?><;

orange さんがブースト
orange さんがブースト

・・・よく考えたら当たり前なのかも?><(WASAPIに32bit整数で送って、32bit精度で鳴ってなかったらむしろWindowsがぶっ壊れてる><;)

TuneBrowserしゅごい!!!>< ちゃんと32bit整数の精度でmp3を再生してる!!!!><

オレンジが作ったこの精度チェックする仕組み、他アプリの音量とかも監視した上で(=他のアプリの音が鳴ってたら正しくチェックできないから)、いいタイミングで自分自身の再生精度が正しいのかセルフチェックし続けるメディアプレイヤー作れそう><
これなら「Windowsはリミッター云々で音悪い」って文句言ってる人も納得しそう?><;

具体的になにをしてるかというと、 

1. WASAPIループバック録音する(32bit floatのはず><)
2. 各サンプルを集計する><(16bitなら65536種類以下になるはず><)
3. さらに集計したサンプル間の差を集計する><
4. もし整数なデータのみを再生(普通は16bit)のみをしているのであれば、全てのサンプルの差が整数倍にしかならないはず><

全部整数倍だった → すばらしい!><

一部違ってた → 別の音が混じって鳴ったか、そもそも整数な音声データでは無い(例えば正しくmp3を再生した)か、音デカすぎてリミッターに引っかかった

これつまり、精度の測定もせずにビットパーフェクト再生とか言ってんじゃねーよ!>< と言えるツールが出来たと言える><(だだしあくまでWindowsのオーディオエンジンの中でであって、デバイスドライバとかハードウェアがどう処理するかは別><(例えばこのまま16bitでDACに送れば16bitの精度では当然再生出来ない><))

Perfect Precision!><
WASAPI共有モードが完全な精度で再生できている事(1枚目)と、デカすぎる音(わりと不評な)標準リミッターが動いた(結果鮮度が落ちた)事の検出(2枚目)もできた!>< オレンジしゅごい!><(自分で言った)

ここちょっとずるい><;
"WASAPI共有モードで普通に再生するだけで"
普通に含まれない再生方法もあって「クリッピング寸前の爆音」かつ「16bit再生」の場合には、Windows音悪いよ論者の言うとおり音が変化する><
回避する為には、プレイヤー側で32bit float化して音量調整してからWASAPIに送ればいい><(そうすれば数学的に16bitのデータをbitパーフェクト再生と全く同じであると言える完全な精度で正しく再生できる><)

スレッドを表示

Windowsの音声処理すばらしい!!!!>< 誰だよ音質悪いとか言い出したやつ!><

つまり、オレンジの推測通り、もし32bit float入力対応のDACを持っているのであれば、WASAPI共有モードで普通に再生するだけで、ビットパーフェクト再生><(と全く同じであると数学的に証明できるはず(っぽい><(数学苦手><;)))

古いものを表示
:realtek:

思考の /dev/null