オリジナルはWINAMP.COM内  Forums > Tech Support Greatest Hits > DirectSound Output FAQ
DirectSound Output (out_ds) FAQ
http://forums.winamp.com/showthread.php?threadid=100492

DirectSound Output (out_ds) FAQ 日本語版 (2005/05/29)

Winamp2/3/5ユーザ向けDirectSound outputについてのFAQです。
多くが2/5用プラグイン向けの内容ですが本質は共通です。
オリジナルに加筆をしており、最新のプラグインを対象にして書いています。

foobar2000 FAQ 日本語訳
http://foobar.s53.xrea.com/fbwiki/index.php?foobar2000%20FAQ%20%C6%FC%CB%DC%B8%EC%CC%F5
・どの出力(DirectSound・waveOut・Kernel Streaming)を使うべきですか?
・Resamplerの設定はどうするべきですか?
参考に。

-見出し-

HOW TO GET HELP(技術的な質問をする前に読んでください)

1. 一般的な質問

Q: どこで最新・過去のバージョンを手に入れればよいのですか?
Q: どうやって設定を行うのですか?
Q: DirectSoundとwaveOutとの違いは何ですか?
Q: DirectSoundとwaveOutとの音質に違いはありますか?
Q: ソフトウェアおよびハードウェア・ミキシングの違いは何ですか?
Q: デバイス情報(Deviceタブ)に表示されているものは何を意味しますか?
Q: なぜout_dsには優先度(スレッドプライオリティ)の設定が無いのですか?
Q: out_dsのソース・コードは公開されませんか?
Q: しかし、SSRC(Shibatch sampling rate converter)はLGPLです...

2. トラブルシューティング

Q: ISAバスのサウンドカードでは再生音質がよくありません。
Q: なぜDirectSoundはwaveOutより常に音量が小さいのですか?
Q: SB Audigyでカリカリ音(スタティックノイズ)が入ります...
Q: DirectSoundで奇妙な音"しっ(hiss)"が出ます...
Q: 音飛び,どもり,その他の再生異常をどのように扱えばよいのですか?
Q: しかし、2.0.x/2.1.xといった初期のバージョンでは
    SB Audigyの上で音飛びはしなかったので2.2.xには多くの不具合があるのでは...
Q: 状態表示(Statusタブ)に表示されているものは何を意味しますか?
Q: リソースをむさぼるソフトウェアを併用すると常にアンダーランが起き続けます...
Q: 再生する時にすべての音声を止める必要はありますか?
Q: どんなファイルも再生しようとするとエラー・メッセージが出ます...
Q: ギャップレス・フェード再生はどうすればよいのですか?
Q:5.1ch等マルチスピーカでの再生ができない

3. リサンプリング

Q: どこでリサンプラを手に入れればよいのですか?
Q: リサンプリングで音質改善はされるのですか?
Q: いつ、どんな設定でリサンプラを使ったらよいのですか?
Q: しかし、私のSound Blasterでは96kHz/24bitsにリサンプルすることができます...
Q: リサンプラを使用する場合、最良の音質品質の為に
    入力プラグインではどんな設定をしたらよいのですか?

4. 補足

Volume control項の調整方法(Volume control)について
Resampling項のディザリング(Dithering)について
PPHS Resamplerについて


HOW TO GET HELP(技術的な質問をする前に読んでください)

あなたが問題を抱えていて、このFAQが助けにならない場合
サウンドデバイスの種類
使用しているサウンドデバイスドライバのバージョン
正確なWindowsのバージョン
を含む十分な環境の情報
および使用するout_dsの設定(ハードウェアアクセラレーションが有効か無効か、など)を記入してください。
迅速で有用な返答を得たければ、これらの情報が要求されます。


1. 一般的な質問

Q: どこで最新・過去のバージョンを手に入れればよいのですか?
A:
Winamp2/5向けのものは5.12本体に含まれているv2.42が最新です(必ずしも更新する必要はありません)
DirectSound output v2.42 (転載)
それ以前のものは以下のURLで転載されています。
http://sawgweb.com/sawgstuff/
out_ds.exe for Winamp2.81まで (out_ds.dll)
wa3update.exe for Winamp3.0#488 (cnv_pcmdsound.wac)

またv2.2.7まではWinamp.iniに設定保存されていましたが
v2.2.8ではレジストリを使用します。v2.2.10以降は再びWinamp.iniへ設定を保存します

Winamp2/5用のプラグインはDirectSound output v2.xが現行です。
Winamp2.81以降にはv2.x
Winamp2.79〜2.80にはv1.x
Winamp2.78には旧式のNullsoft DirectSound plug-inが付属しています。
通常は最新のもので問題ありませんが仕様変更がなされているので
環境・用途によっては問題が出るかもしれません。
旧式プラグイン転載のページから古いものを落とるので試してください。

*使用しているバージョンの確認方法*
Winamp2/5では「設定(Preferences...)」-「プラグインの設定(Plug-ins)」-「Output」で一覧に出るもの
Winamp3では「Preferences...」-「Audio」-「DirectSound」で設定欄右下に出るもの
※Winamp3#488ではCritical updatesの導入後可能になります。また詳細部の設定に関してはコンポーネントの設定画面を呼び出すConfigurification Registryの導入が必要になります。

Q: どうやって設定を行うのですか?
A: 一番最初のルール:
プラグイン内の説明が十分明らかにわからない場合
理解できない設定部分に触れてはいけません。
恐らくそれらを変更することはただ事態を悪化させるだけでしょう。

Q: DirectSoundとwaveOutとの違いは何ですか?
A:
簡易説明:
Win95/98/Me/NT4上ではwaveOutを
Win2k/XP上ではDirectSoundの上で使用するべきです。

詳細説明:

waveOutは
32ビットWindowsでデジタル音声を扱う為のAPI(Application Programming Interface)で
古く旧式のものです。

古いOS(すべてのWin9xおよびNT4)上では最良のパフォーマンスの為にwaveOut出力を使用するべきです。
ただしwaveOutの機能は複数のアプリケーションで同時に音を鳴らすことができなかったりと制限されています。
その制限を避けたい場合はDirectSoundを使用してください。

Win2k/XP上では古いソフトウェアとの互換性にのみ供給されているように見え
複数のアプリケーションで同時に音を鳴らすことができないといった問題は解決されているようです。

それは、どんな種類のハードウェアアクセラレータも使用しません。
ミキシングはすべてソフトウェアによって実行されます。
(CPU負荷が高い場合は音が途切れるかもしれません)

DirectSoundは
32ビットWindows(NT4のDirectSoundは私の経験から恐ろしく壊れていますが)の
すべてのバージョンに再配布できるとともに利用可能な新しい"現代"のAPIで
複数のアプリケーションで同時に音を鳴らす機能
独立したボリュームコントロール
ハードウェアアクセラレータレイヤ
ハードウェアエミュレーションレイヤ(ハードウェアでサポートされない機能はソフトウェアによってエミュレートされます。したがって、プログラマが新しいl33tコードを古いSB16でうまく動作するかどうか心配する必要がありません)
などをサポートしています。

あなたがOSおよび適切なサウンドデバイスドライバの為に最新のDirectXをインストールしている限り
NT4を除いてどれに使用しても一般的に素晴らしいに違いありません。
それらの実行方法が比較的よいので(waveOutより少ないCPU負荷で、waveOut実行方法の異常から決別できる)
Win2k/XP上でwaveOutより好まれます。

DirectSoundは他のDirectXコンポーネントのように
下位レベルのハードウェア機能に直接触れることなく
ゲームでハードウェアアクセラレータを利用させることを目指して作られました。

Q: DirectSoundとwaveOutとの音質に違いはありますか?
A:
1. Win2k/XP(WDM)において、waveOutとDirectSoundはPCMデータをWindowsカーネルのミキサ(k-mixer)へ渡すちょうど異なる2つの方法です。

waveOutがソフトウェア・ミキシングのみを使用します。
それはシステム上特有の問題を抑える傾向にあります。

DirectSoundでは有効にした時ハードウェア・ミキシングを使用できますが
その設定は音質問題を引き起こすと知られています。
out_ds v2.2.4からハードウェア・ミキシングがデフォルトで無効になっており
ソフトウェア・ミキシングを使用しwaveOutをエミュレートします。
なのでその音質問題はout_dsそのものに関してはありません。

ハードウェア・ミキシングを使用するには
「ハードウェアアクセラレーションの許可(Allow hardware acceleration)」を有効にしてください。
v2.2.4以前はハードウェア・ミキシングで動作します。

2. Win9x上では、DirectSoundは下位レベルのハードウェアアクセスを独自に行います。
それは多くの場合でwaveOutより異なって作用するかもしれないことを意味します。
例えば、ISAバスカードが22khzへダウンサンプルする仕様はよく説明されています。
これを簡単に面倒無く直す為に「プライマリバッファの作成(Create primary buffer)」を有効にします。
すべてのWin9x上においてデフォルトで有効になっています。

ダウンサンプリングしようとするそれを余分で愚かなソフトウェアだと感じる場合は
常に「プライマリバッファの作成」を可能にすることができます。
それは上記のようにハードウェアによって再生するフォーマットをファイル自体のフォーマットと同じものにさせることができます。

48kHz固定出力を備えた新しいAC97規格対応のサウンドチップはそれに影響されませんが
出力をいつでも48kHzへリサンプルするでしょう。
これらにはSB Live!/Audigyシリーズも含まれています

Q: デバイス情報(Deviceタブ)に表示されているものは何を意味しますか?
A: 簡易説明:

"Certified"
そのデバイスドライバがMicrosoftによって証明(それがMicrosoftのスタッフによってあなたが実行しているコードでテストされ、不具合がないことを確認している)されたものかどうか示しています。
※しかし、証明済みドライバであっても確実に不具合が無いとは言い切れません

"Emulated"
サウンドデバイスの為に適切なDirectSoundドライバをインストールしなければ"yes"と表示され
DirectSoundの機能はwaveOutの機能(古いOSにのみある)を使用しエミュレートされるでしょう。
なので"yes"と表示された場合、よりよいパフォーマンスの為
DirectSoundの代わりにwaveOut出力を使用するべきです。

"Supports sample rates from %A Hz to %B Hz"
ハードウェアによってミキシング可能なサンプルレートの範囲を示しています。
範囲外の入力サンプルレートはハードウェアの対応するレートへ
ソフトウェアによってリサンプルされるでしょう。
これはサウンドデバイス自体の出力性能を示しているわけではありません

注意:
DirectSound自身は100000Hzまでのサンプルレートをサポートしています。
当然それより高いサンプルレートを使用することができません。
DirectX 9.0からはOSが対応していれば200000Hzまで可能です。
もちろん対応するサウンドデバイスとドライバが必要になります。

(continuous)と表示された場合
最小と最大(上記参照)の間のサンプルレートすべてがサポートされます。

"Hardware memory"
デバイスにはメモリが搭載されていますが、通常PCIバスサウンドカードでは利用可能でありません。
それらはシステムメモリを代わりに使用します。

"Hardware mixing"
アプリケーションがハードウェアによってどれだけ同時に音声をミキシング可能か示します。
注意:
利用可能なハードウェアリソースがない場合
新しく再生しようとするものがソフトウェアで処理されるので
この数値が制限するわけではないことに注意してください。

"Speaker setup"
Windowsコントロールパネルで設定したスピーカの種類を示しています。

Q: ソフトウェアおよびハードウェア・ミキシングの違いは何ですか?
A: DirectX 8.1およびWindowsXP SP1でのハードウェア・ミキシングは
MicrosoftのDirectSoundコアおよびドライバごとの処理方法の両方において高度に不具合が多いのです。

WindowsXP上でハードウェア・ミキシングを使用した場合
再生開始時に音飛びを引き起こされることが異なるサウンドデバイス上でテストされ問題標本として確認されてます。

有名なAudigyでの"音飛び"、設定によって生じるカリカリ音(スタティックノイズ)は音質に酷い障害を与えます。

ソフトウェア・ミキシングはより安全のように見えますが
システムによっては(私のところではないが)CPU負荷が高くなると音がどもることもあります。
しかし、これを使うことにより上記のカリカリ音(スタティックノイズ)の発生や音飛び等が修正されます。

安定した環境についてはハードウェアアクセラレーションを無効にしておくことが強く勧められます。
それはv2.2.4からデフォルトで無効になっています。
ハードウェア・ミキシングを使用するには
「ハードウェアアクセラレーションの許可(Allow hardware acceleration)」を有効にしてください。

有効にしてもすべてのデバイスがハードウェア・ミキシングを行えるわけではなく
それを使用可能であることがどんな時も使用していることを意味しません。
DirectSoundはリソース不足の場合ソフトウェア・ミキシングへ切り替えることがあります。
使用されるミキシングの種類についての正確な情報はStatusタブの表示を参照してください。

さらに、ハードウェア・ミキシングを使うことによって
ハードウェアあるいはドライバのいずれかの問題により音質問題を引き起こすかもしれません。

Q: 状態表示(Statusタブ)に表示されているものは何を意味しますか?
A: いくつかを簡易説明:

"Data buffered"
デコードが高CPU負荷やファイル呼出の遅れによって止められた後、どれくらいの間再生できるか
どれくらいトラック最後尾の無音部を設定された値で除去できるか
を示しています。

"Buffer locks done"
バッファの内容を修正した回数を示しています。

"underruns"
再生するのに十分なデータが無く
どれだけの回数、再生を止めたのか示しています。
(さらに音飛び問題によって影響されます。上記参照)

注意:
out_ds v2.2.0以降では
アンダーランを引き起こすこと無く音声の欠損を得るかもしれません。
(アンダーランを扱う新しい方法により)

Q: なぜout_dsには優先度(スレッドプライオリティ)の設定が無いのですか?
A: 優先度は最大に固定するようにプログラムされています。私の知る限りではそれでどんな問題も起こりません。
他にCPUを多く使うアプリケーションを使用した場合、それを変更することはただパフォーマンスを下げるだけでしょう。
ここで設定する必要はないのです。

優先度に問題があると思う場合は代わりに入力プラグイン内の設定を変更してください。
さらにWinampの処理優先度(プロセスのプライオリティ)を変更するのも手助けになるかもしれません。
しかしその設定変更は危険です。もし実際にする必要がなければ(OS不安定に結びつくかもしれない)それに触れてはいけません。

Q: out_dsのソース・コードは公開されませんか?
A: いいえ、out_dsのソース・コードはAOL/Nullsoftが所有しています。
私はそれを公開することができません。

Q: しかし、SSRC(Shibatch sampling rate converter)はLGPLです...
A: out_ds_ssrcによって使用されるSSRCライブラリは
オープン・ソースのout_waveによって使用されるものの正確なコピー(文字通りに)です。


2. トラブルシューティング

Q: ISAバスのサウンドカードでは再生音質がよくありません。
A: 簡易説明:
「プライマリバッファの作成(Create primary buffer)」を有効にしてください。

詳細説明:
DirectSoundは古いISAバスのサウンドカードを使用する場合
ISA帯域幅を確保する為、積極的にダウンサンプルする傾向があります。

「プライマリバッファの作成」を有効にすることはハードウェアによって再生するフォーマットをファイル自体のフォーマットと同じものにしようとします。
これの設定は実際に古いデバイスだけに影響します。

Q: SB Audigyでカリカリ音(スタティックノイズ)が入ります...
A: 「ハードウェアアクセラレーションの許可(Allow hardware acceleration)」を無効にしてください。

Q: なぜDirectSoundはwaveOutより常に音量が小さいのですか?
A: Win2k/XPにおいては、DirectSoundが独立した音量制御を行っている一方
waveOutの音量変更はソフト側で独自の音量制御を行えるものを除き
共通のwaveボリューム設定を変更するように見えます。

言いかえれば―waveOutで再生→50%に音量を設定→共通のwaveボリュームが50%に
その後DirectSoundに変更し50%に音量を設定した場合、結局最大音量の25%になってしまいます。

解決方法: waveOutを使用せずWindowsのボリュームコントロールで
waveボリュームを最大に設定してください。

※サウンドデバイス・ドライバ等の環境によっては
waveOutやソフトウェア・ミキシングで動作しているDirectSoundに比べ
ハードウェア・ミキシングで動作しているDirectSoundの方が音量が小さい傾向にあります。

Q: DirectSoundで奇妙な音"しっ(hiss)"が出ます...
A: TotalRecorderをアンインストールしてください。それは多くのものを壊します。
(これを研究しているThor氏に感謝)

Q: 音飛び,どもり,その他の再生異常をどのように扱えばよいのですか?
A: 異常にもいくつかの種類があります:

1. バッファを数回、停止かまたは繰り返す

繰り返される原因-他の何かがCPU使用を横取する
停止の原因-ファイル呼出が遅すぎる

バッファ量を増加させてみてください。
CPU使用をむさぼる他のプログラムが問題を引き起こしている場合
Winampの設定で処理優先度(プロセスのプライオリティ)を高くすることで
手助けになるかもしれません。
(警告: 自己責任で行ってください。
ある理由でWinampがフリーズ/クラッシュしたらOSまでをフリーズさせるかもしれません)

2. 音が飛ぶ

$#!@は故障した再生位置を報告する機能です。
(私がこれを研究するのを手伝ってくれたJSheridan氏へ大きな賛辞)

恐らくAudigyおよび他のいくつかが音飛びの影響を受けます。
基本的にそれは不要データを返す代わりに現在の再生位置検索することを
サポートする機能によって引き起こされます。
出力コードを作ることはそれがバッファ包まれ、データを前方に書くと思われます。

それを直すにはハードウェア・ミキシングを無効にしてください。

3. はじける音(popping)やぱちぱちする音(crackling)が鳴る

ハードウェアの衝突です。
何かがサウンドデバイスへ送られているデータの流れを遮っています。

4. カリカリ音(スタティックノイズ)や奇妙な音"しっ(hiss)"が鳴る

ドライバ側の厳しい問題です。
それはハードウェア・ミキシングを無効にすることで時々直ることがあります。

Q: しかし、2.0.x/2.1.xといった初期のバージョンでは
    SB Audigyの上で音飛びはしなかったので2.2.xには多くの不具合があるのでは...
A: それは違います。
2.0.x/2.1.xは、Audigyでの音飛びを回避するために改変を行っていましたが
これらの改変はAudigyの問題をただ解決するためだけに多くの他の設定を壊していました。

私が知っている限り、最新のAudigyドライバには音飛び問題が無いので
直ちにそれらをインストールしてください。

Q: リソースをむさぼるソフトウェアを併用すると常にアンダーランが起き続けます...
A: バッファ長を20sに設定してください。
Bufferingタブ「CPU使用制御(Enable CPU usage control)」を有効にすれば
演奏開始/シーク/etc時の途方もないWinampによるCPU使用を防ぐことができます。
トラック変更時に起きるアンダーランを減らすためには
「トラック間バッファ長,先読バッファ長(Buffer ahead on track change)」を増やしてください。

Q: 再生する時にすべての音声を止める必要はありますか?
A: いいえ、Win2k/XPまたはWin9x上でサウンドデバイスが複数のアプリケーションで同時に音を鳴らすことができる場合(もしそれが不可能なら再生中に他の音声を再生することができませんが)
そうする必要はありません。

Q: どんなファイルも再生しようとするとエラー・メッセージが出ます...
A: サウンドデバイスのドライバおよびDirectXを更新してください。

Q: ギャップレス・フェード再生はどうすればよいのですか?
A:
・ギャップレス再生について
ギャップレス再生がうまくいかない場合
入力プラグインがファイルを開く為にあまりに時間がかかっていることが原因です。
「トラック間バッファ長,先読バッファ長(Buffer ahead on track change)」を増やしてください。
150〜600msが望ましい値です。
また「バッファ長(Buffer length)」の値を調整してください。これが無音部を除去できる長さを決めます。
CDなどでトラックの終わりに長い無音(バッファ長より長いような)が続いていたりするとうまくいきません。

トラック先頭・最後尾(on start/end of song)のフェード処理を無効にしたり
必要に応じてトラック先頭・最後尾の無音除去を有効にし値を調整してください。

なお「プレバッファ長(Prebuffer on start / seek / underrun:)」
「トラック間バッファ長,先読バッファ長(Buffer ahead on track change)」は
必ずバッファ長よりも小さい値に設定してください。

・無音除去(Silence remover,Kill Silence)について
設定値によっては曲の一部が不自然に削られたりと問題が出る場合があります。
除去できる長さも「バッファ長(Buffer length)」に左右されます。
再生フォーマットによってはうまく除去できない場合もあります。
ギャップレス再生と同様に長い無音には不得意です。

・フェード再生について
Winamp3ではクロスフェーダという出力プラグインにとらわれない便利なものがあるので特に問題はないのですが
Winamp2/5では基本的にout_dsを使わなければいけません。
waveOutで使用するなら複雑な設定可能のフェード処理ができる出力プラグイン
SqrSoft Advanced Crossfadingが挙げられます。
他にもDSPによるクロスフェードプラグインも存在します。

Fadingのon end of songを有効にすればトラックの最後尾でフェードアウトさせることができます。
標準の設定値では333msと短い値なのでフェードしている感覚が薄いかもしれませんが
Winamp3のクロスフェーダは標準で5000msなのでその程度まで増やせば快適になるかも。

フェードの長さはギャップレス再生と同じように 「バッファ長(Buffer length)」に左右されることがあります。
on end of song以外の項目ではバッファ長より長い値に設定しようとすると
設定された値に合わせてバッファ長を変更するかについての確認ダイアログが出ます。
またバッファ長を増やすことによって
曲再生/シーク時にかかる負荷が大きくなることもあります。

Winamp5標準添付のWinamp Modernを使用している場合
EqualizerのToggle Crossfading Between TracksボタンのON/OFFが
Fading項のon end of songの有効無効の切り替え
横の数字がカスタムフェード時間(Use custom fade time)と連動しています。
Decrease Crossfade Timeボタンで1s減らし
Increase Crossfade Timeボタンで1s増やせます。

出力プラグインの設定を呼び出すことなく簡単にフェードアウトの切り替えをすることができますが
出力にDirectSound outputを設定している場合のみ可能です。

Q:5.1ch等マルチスピーカでの再生ができない
A:「ハードウェアアクセラレーションの許可(Allow hardware acceleration)」を有効にし
複数のサウンドデバイスがある場合は使用するデバイスを選択してください。

・Windows Media Playerでは5.1ch再生できたのにWinampに変えたら2chになってしまった
Windows Media Playerはハードウェアミキシングで動作しますが
Winampの標準設定はソフトウェアミキシングです。設定を変える必要があります。

・古いWinampから最新のWinampへ更新したら2chになってしまった
out_ds v2.2.4以前は標準設定がハードウェアミキシングでした。
しかしv2.2.4からはソフトウェアミキシングで動作するので同様に設定を変える必要があります。

「ハードウェアアクセラレーションの許可(Allow hardware acceleration)」を有効にしても動作しない場合は
サウンドデバイスのドライバ、DirectXを見直し必要に応じて更新してください。

全ての環境で動作するとは限りません

こちらの説明も参考にしてください
Multiple Speaker Output
http://forums.winamp.com/showthread.php?postid=396233


3. リサンプリングについて (for out_ds_ssrc)

FAQv2.1からこの項は削除されています。
SSRCはけして使用を推奨されるものではありません。
リサンプリングについて、その必要性について
よくわからない場合は使用しない方がよいでしょう。

HydrogenaudioのForumを参考にしてください
http://www.hydrogenaudio.org/

Q: どこでリサンプラを手に入れればよいのですか?
A:Winamp2/5用にDirectSound output、waveOut共に
SSRC(Shibatch sampling rate converter)を持つものが用意されています。
http://sawgweb.com/sawgstuff/ (転載)
out_ds.exe: DirectSound Output v2.2.6 SSRC
out_wave.zip: Winamp2 waveOut plugin v2.0.2a SSRC
これらに含まれるout_ds_ssrc.dll、out_wave_ssrc.dllがそれです。
out_ds.exeを導入すると標準のout_ds.dllも古いものに上書きされてしまうので
DirectSound output v2.2.6 SSRC (転載)
あらかじめ他に移動しておくか単体で抜き出した上記のファイルを導入してください。

Winamp3では出力プラグインそのものにSSRCを持つものはありません。
別途リサンプラを導入する必要があります。
http://sawgweb.com/sawgstuff/ (転載)
 resampler.exe: Output resampler DSP component for Winamp3 (488).

またASIO output plug-inもSSRCを持っています。
対応環境であればリサンプルの必要はまずありませんがデバイスの対応していない
サンプルレートのファイルを再生する場合などにはこちらを使用してみると良いかもしれません。

WINAMP5用 ASIO出力プラグイン
http://otachan.com/

Q: リサンプリングで音質改善はされるのですか?
A: いいえ、リサンプリングによって再生音質を改善することはできません。
リサンプリングは損失のある処理方法です。

例えば、ビットマップ・イメージを別のサイズへ拡大縮小した場合
出力されたイメージは非常に似ているように見えます。
しかし、あなたがそれをズームして見れば、それはもはや同じではありません。

それでも、あなたのドライバ/ハードウェアにリサンプリングを扱わせる代わりに
高品質のソフトウェアリサンプラ-SSRCを使用すれば
ハードウェアでさせた時の大きなデータ損失を回避することができます。
SSRCを使用した場合、たとえ「高速モード(Fast mode)」で動作させても
通常よりも高い負荷になることがあるので注意が必要です。

Q: いつ、どんな設定でリサンプラを使ったらよいのですか?
A: まず最初に、ハードウェア性能を確認してください。

いくつかのカード(例えば、すべての古いSound Blaster)はそれ自身でリサンプルしません。
なので常に最適の音質(=リサンプリングによる音質損失は無い)
を得られるのでしょうから当然SSRCでリサンプリングの必要はありません。

SB Live!/Audigyを始めとする古めのデバイスやオンボードサウンドはAC97規格で
サンプルレートが48kHz固定出力であり、再生するものすべてが48kHz/16bitsにリサンプルされるでしょう。
リサンプリングの質はドライバ/ハードウェア/Windowsカーネルのミキサなどで変わります。

ほとんどの場合で
SSRCリサンプラがあなたのハードウェア/ドライバによってするものより優秀です。
あなたのハードウェア/ドライバが自分自身でリサンプルするのを防ぐために
SSRCで48kHz/16bitsへ処理の設定をすべきです。
また、設定値と同じフォーマットに対してはSSRCは動作しません。

全てのサウンドデバイスで48kHz/16bitsへサンプルレートが固定されるわけではありません。
あなたの持つハードウェアがSSRCを必要とするのか、確認の上使用してください。
新しいAudigyやE-MU、Envyチップなどを搭載したデバイスは改善されています。
DirectSoundとそれ以外の方法で再生後のバイナリが一致しないデバイスも存在しますので
正確な出力を追及する場合デバイスに適した出力方法を選択するのも必要でしょう

Q: しかし、私のSound Blasterでは96kHz/24bitsにリサンプルすることができます...
A: 確かにできます。しかし96kHz/24bitsへアップリサンプルした後
Windowsミキサがハードウェアのサポートするフォーマット(48kHz/16bitsなど)へダウンサンプルし直し
結局それは役に立たないデータ損失になってしまいます。
ハードウェア性能より上にアップサンプルしないでください。

Q: リサンプラを使用する場合、最良の音質品質の為に
    入力プラグインではどんな設定をしたらよいのですか?
A: まず最初に可能な場合はリサンプリングを回避してください。
これはSSRCを使用しなくとも高い音質を得る有効な手段の一つです。

in_mod/in_spc/in_snesなどは出力サンプルレートを変更でき
設定をリサンプルされるレートに合わせれば回避できます。
例えばSSRCで48kHzとするならサンプルレートを48k(48000)というようにします。
再生サンプルレートを上げることで再生時の負荷が増大することもあります。
SSRCと共にパソコンの処理能力を考え使い分けてください。

元々48k/16bitsのものならば当然リサンプリングの対象にはなりません。


4. 補足

Volume control項の調整方法(Volume control)について
以下の3つがありますが
1 : liner(一般のプレイヤーではこの形)
2 : logarithmic
3 : hybrid
通常は1のlinerで問題ありません。
直線的な変化か、対数変化かなど。

Resampling項のディザリング(Dithering)について (for out_ds_ssrc)
ディザリング(Dithering)とノイズシェーピング(Noise Shaping)の設定です。
デフォルトの設定で問題ありません。

以下のURLを参考に。

Dither
http://www.earlevel.com/Digital%20Audio/Dither.html

PPHS Resamplerについて
Winampプラグインとは全く関係ありませんが
foober2000用DSPコンポーネントにSSRCとは異なるリサンプラがあります
PPHS Resampler plugin
http://www.hydrogenaudio.org/index.php?showtopic=21799

使ってみた感想ではfoobar2000に付属するSSRCと比べて
・通常モードでは負荷が約半分
・品質の違いは感じられない

diskwriter使用時には高品質のおたちゃん氏のSSRC - Otachanを使用すれば良いので
通常の音楽再生には軽快なPPHSを使用するのが良いでしょう


TOPページへ