Generic ASIO Driver 総合スレッド
ASIO4ALLの設定ノウハウって見た事ないんだけど、
俺も最近解決方法を発見したんでとりあえず。
1. "Beyond Logic"
【原因】USBオーディオI/Fに、
Windowsの標準オーディオ出力を割り当てている場合に
このエラーが発生する事が多いようです。
【対策1】USBオーディオI/Fを、Windows標準オーディオ出力に割り当てるのをやめる。
具体的には、
・コントロール・パネル→サウンドとオーディオデバイス→オーディオ を選択し、
「既定のデバイス」に、DTM用オーディオI/F 以外 のもの(オンボード等)
を指定する
【対策2】ASIO以外のデバイスドライバを経由した音出力を無効にしてしまう。
具体的には、
・スタートメニュー→ファイル名を指定して実行 で
net stop "Windows Audio"
を実行すると無効になる。
・スタートメニュー→ファイル名を指定して実行 で
net start "Windows Audio"
を実行すると通常の状態に戻る。
2. [設定]項目について
DMA mode:
これは、古いオーディオI/F (ISA接続)のための最終手段なので、
USB接続やIEEE1394接続の場合、まるっきり無関係みたいです。
(PCI接続や、PCMCIA接続の場合は・・・よくわからないw)
ASIO Buffer Size: 512 [samples]
これは、ASIOドライバのレイテンシーを決める重要なパラメータです。
このパラメータは、PCの性能や処理の負荷によって変更する必要があり、
パラメータが大き過ぎると、音が遅れてしまって、演奏録音がやりにくくなります。
パラメータが小さ過ぎると、音が途切れたり、再生が不安定になります。
[参考]ウチのいい加減なONKYOのUSBオーディオの場合、大体
Cubaseで 256 [samples] (=5.8ms), Latency=11ms
VSTHostで 96 [samples]
くらいまで設定を追い込んでいます。
Buffers:
こっちのBufferは、上のASIO Bufferとは別物で、
ASIO4ALLが、Kernel Streaming Deviceにデータを受け渡す時に使うBufferの数を指定します。
通常、2つで充分との事です。
(たぶんI/O各々のステレオ片ch分、書き込み用と読み出し用で最低2buffer、とかいう意味w)
Input Delay, Output Delay:
これも、ASIOのレイテンシーに影響を与える重要なパラメータらしいのですが、
使いこなし方がよく判っていません・・・
(たぶん、DAW(Cubase等)側の処理遅れ(レイテンシー)に起因する録音/再生のズレを補正するとかなんとかw)
トータルのレイテンシーは
ASIO レイテンシー + DAW側処理遅れ + InputまたはOutput Delay
となるようですので、とりあえず他に支障がないようであれば、
小さめの値(0, 16, 32あたり)を適当に指定すれば充分かと。
714 :
711:2006/07/19(水) 03:44:32 ID:bUhUqm1V
3. その他: ASIO4ALLを快適に動作させるには:
ASIO4ALL、いつでもどこでもタダで使えてとっても便利なんだけど、実は
なんちゃってASIOデバイス
です。( ここで「なんちゃって」 とは 「(通常のASIOドライバのように) ハードを直接叩かず、
Windows標準のKernel Streamingドライバを下請けに使って、
低レイテンシーなASIO IFを提供する、ユーザモード・デバイス」という意味です)
この「なんちゃって」には、大きな弱点があります。それは
(1)動作が重い事
(2)バックグラウンド・サービスや常駐プログラムの負荷が高まると、
すぐに音が途切れる事
(3)レイテンシーを下げにくい事
です。
715 :
711:2006/07/19(水) 03:45:31 ID:bUhUqm1V
そしてこの弱点を克服するには、次のような対策が必要でした、ウチの場合はw
【対策】
1. 不必要なサービスやプログラムは、片っ端から停止しておく
ウィルス検出ソフト、インデックスサービス、Windows Audio、
時々動作が糞重くなる某ブラウザw、
その他、時々妙な振る舞いをする.NET/Java系プログラムw
ぜーんぶASIO4ALLの敵なんで、Stopしていますw
2. DAW (CuBase)のプロセス基本優先度を、高〜リアルタイム に設定
ASIO4ALLの音途切れをなくし、レイテンシーを下げるには、
ASIO4ALLのスレッド優先度を上げる必要があります。
しかしASIO4ALLは(通常のASIOデバイスとは異なり)、
DAWのプロセスの一部として動作している(っぽい)ので、
スレッド優先度を変更するのはメンドウです。
(DAWの設定ダイアログで、ある程度は変更できるようですが)
そこで!私は「どうも音途切れが多いな」と感じたら、即!
DAW全体の優先度をタスクマネージャ経由で
高〜リアルタイムへ変更しています。
ただし!OS自体多少不安定になるみたいで、
ときどきWindowsのログアウト/停止に失敗しますがw
以上、ご参考になればよろしいのですが