Diretta ASIO configure(OLIOSPEC ASIO)をインストールした直後の infファイルの中身です
こちらをカスタマイズして自分なりの音作りを行っていきます
[global]
ASIOBufferMulti=disable
ASIOBufferSize=0
ASIOBufferSizeMax=16384
ASIOBufferSizeMin=16
ASIOBufferSizePre=512
AsioSetting=Format,Buffer,Cycle,Latency,Ether,FindIP,Info,Phase,Occupied,Log
CPULOW=0
CycleTime=10000
CycleMinTime=
DSDMSB=enable
Debug=disable
Fragment=enable
InfoCycle=100000
Interface=0
InterLoopback=disable
LatencyBuffer=0
Preset=TargetProfile
PCMRequest=32
StartDelay=0
SyncBufferCount=6
TargetAddress=::,0
TargetPO=0
TargetProfileLimitTime=200
ThredMode=5
Phase=Normal
NopBreak=disable
Version=25
AckProcessctl=disable

以下は、Diretta設定ファイルの調整の試行錯誤の履歴 になります



2026/2/2 の setting.inf

ネットワークカードを変更してからdirettaのエラーが大幅に低減し設定を詰められる状態になった
そのうえでDDS環境かでの艶と透明感を意識した音作りに着手

[global]
ASIOBufferMulti=disable
ASIOBufferSize=512
ASIOBufferSizeMax=16384
ASIOBufferSizeMin=16
ASIOBufferSizePre=768
AckProcessctl=disable
CPULOW=1
CpuOther=7-9
CpuSend=6
CycleTime=17000
DSDMSB=enable
FlexCycle=disable
Fragment=enable
InfoCycle=100000
InterLoopback=disable
Interface=0
LatencyBuffer=140000
NopBreak=disable
PCMRequest=32
Phase=Normal
Preset=TargetProfile
StartDelay=150
SyncBufferCount=7
TargetAddress=::,0
TargetPO=0
TargetProfileLimitTime=600
ThredMode=531
Version=25

項目別の技術的チェック(DDS視点での最適性)
✔ CycleTime=17000
disable 前提では 16500〜17500 が安定帯域
17000 は中心値で周期の乱れが最小
→ DDS純度◎、艶◎、透明感○
✔ FlexCycle=disable
DDSの本質である周期固定を成立させる必須条件
enable の追従揺れを完全排除
→ 倍音の揃い◎、密度◎、艶◎
✔ SyncBufferCount=7
disable の硬さを緩和し透明感を維持する最適点
・6 → キレ寄り
・7 → 艶と透明感の最良点
・8 → 甘くなる可能性
→ 艶◎、透明感◎、硬さ抑制◎
✔ TargetProfileLimitTime=600
TargetProfile の揺れが音質に直結
600 は倍音と余韻の最適点
・400 → タイト
・600 → 最適
・800 → 甘くなる可能性
→ 艶◎、余韻◎、透明感○
✔ ThreadMode=531
(1 + 2 + 16 + 512)
・Critical / NoShortSleep
・OccupiedCPU / IDLEONE
→ DDS安定性◎、周期純度◎
✔ LatencyBuffer=140000
disable の硬さを緩和し倍音の伸びを確保
高性能環境なら問題なし
→ 艶◎、滑らかさ◎
✔ Fragment=enable
disable の硬さを補い透明感を確保
→ 透明感◎、情報量◎
✔ ASIOBufferSize=512 / Pre=768
硬さを抑えつつ透明感を維持
→ 艶○、透明感◎、硬さ抑制○

2026/1/21 の setting.inf

dmesg(ターゲット側)でのエラー表示はほぼ消し去ることに成功した
しかし、いざASIO再生を始めると微かな音の歪みや一瞬何かに引っかかるような違和感が拭えない

「耳には聞こえるが、目には見えないエラー」がどこかにあるはず
そこで今回は、ホスト側の debug ログを解析することにした

debugのチェック方法については、こちらに記載がある
https://www.oliospec.com/blog/?p=2862

設定は簡単だった
ASIO configureのLOGを「debug」にし曲を1,2分間、再生後に「save log」でログを保存するだけ

しかしながら人力でチェックするには無理があるので保存したテキストデータを AI(Gemini)に読み込ませて解析させることにした
※ChatGPTは反応が遅いため、無料版のGeminiで行った方が効率が良かった

IMG_7176

↓ チェックに使用したlogたち

スクリーンショット 2026-01-21 220009

Geminiが詳しく解析し、どのような問題が発生しているのかをわかりやすく教えてくれる
ログを解析して驚いたのは、Windows側のほんの数ミリ秒の割り込みがDirettaの同期を揺さぶっていた事実

ASIOBufferSize を詰めすぎる → 音がキレるが同期が崩壊(fs=2900等)し音像がバラバラになる
LatencyBuffer が足りない → 一瞬、音の密度が落ちる「Profile 1(安全モード)」に強制転落する

Geminiと対話を繰り返し「攻めつつも鉄壁」な設定を1ミリ秒、1バッファ単位追い込んでいった
作業が完了したら「debug」をdisableに戻し音をチェックする
追い込みをかける前とは明らかに違う感じで安定しているように感じた

 最終的に今の環境における「最高音質かつ安定したポイント」として以下の設定に辿り着いた

[global]
ASIOBufferMulti=disable
ASIOBufferSize=768
ASIOBufferSizeMax=16384
ASIOBufferSizeMin=16
ASIOBufferSizePre=768
AckProcessctl=disable
CPULOW=1
CpuOther=7-8
CpuSend=6
CycleTime=14000
DSDMSB=enable
FlexCycle=fixAsio
Fragment=enable
InfoCycle=100000
InterLoopback=disable
Interface=0
LatencyBuffer=180000
NopBreak=disable
PCMRequest=32
Phase=Normal
Preset=TargetProfile
StartDelay=150
SyncBufferCount=7
TargetAddress=::,0
TargetPO=0
TargetProfileLimitTime=400
ThredMode=21
Version=25

2026/1/18 の setting.inf

まだ試行錯誤を繰り返している
操作時のエラー音飛び、音の歪み感がかなり解消したようにおもう
前回からの変更点は以下

[global]
; --- ASIOバッファの倍増(512 → 1024) ---
; サイクル時間(CycleTime)の延長に合わせて、ASIOバッファも倍に広げました。
; これにより、PC側の処理に余裕が生まれ、音の「細さ」が消えて実在感が増します。
ASIOBufferSize=1024
ASIOBufferSizePre=1024

; --- CPU負荷と配置の最適化 ---
; CPULOWを3から1へ戻し、CPUの省電力介入を抑えて瞬発力を確保。
; さらにCpuOtherを20-24へ遠ざけ、オーディオ専用コア(6)を完全に孤立させています。
CPULOW=1
CpuOther=20-24
CpuSend=6

; --- 伝送周期の緩和(10ms → 17ms) ---
; 10msという超短周期から、MODE3で安定感の定評がある17msへ変更。
; パケット送出の「ゆとり」が、384kHz再生時の歪み感を劇的に減らします。
CycleTime=17000

; --- 同期アルゴリズムの固定 ---
; サイクルをASIOのバッファサイズと完全に同期させる「fixAsio」を明示。
; これにより、DDS(短周期送出)の精度がより盤石になります。
FlexCycle=fixAsio

; --- 安全弁の再強化(150ms → 250ms) ---
; PC側の貯金を積み増し、バックグラウンドのノイズを完全にシャットアウト。
; 同時に監視時間(LimitTime)を400msへ緩め、エラー耐性を高めました。
LatencyBuffer=250000
TargetProfileLimitTime=400

; --- 現場の鮮度は維持 ---
; 全体を安定方向に振りつつも、DAC側の受け皿だけは絞り、音のフォーカスを保ちます。
SyncBufferCount=7

2026/1/17 Diretta ASIOドライバでの音飛びについて

まいまいオーディオ作者様

いつもブログを参考にさせていただいており、感謝しております。
Diretta HostをWindows10のTuneBrowserで聴いています。
Direttaの音飛びで、私もずいぶん悩んでいたのですが、Windowsの「バックグラウンドサービスを最適にする」を選択することで、劇的に音飛びがなくなりました。
ご存じで、実施されているようでしたら、いらぬお世話で申し訳ありません。


メールにて情報をいただいた
ありがとうございます!

さっそく設定を確認したところ規定の「プログラム」になっていたので「バックグラウンドサービス」に変更

【設定手順】
http://faq3.dospara.co.jp/faq/show/6265

スクリーンショット 2026-01-17 223223


併せて、このあたりも変更しておこう

AppX Deployment Service (AppXSVC) とは、Windows 8 以降の OS(Windows 10 や 11)に搭載されている、Microsoft Store アプリ(UWPアプリ)の「インストール、更新、アンインストール」を管理する重要なシステムサービスです。

Windows 11 の 2025年12月の累積更新プログラム(KB5072033など)以降、このサービスの挙動が一部変更されました。

「手動」から「自動」起動へ: 以前はアプリの更新時など「必要な時だけ」動く設定でしたが、最新の Windows では常に自動で起動する設定に変わりました
→ 裏で動くように変わったようなので動かしたときだけ動くようように手動に戻します

レジストリエディタ regedit での変更箇所
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AppXSVC
2: 自動 (Automatic)
3: 手動 (Manual / Demand)
4: 無効 (Disabled) ※無効は推奨しません

2026/1/17 の setting.inf

プロファイルを「TargetProfile」に変更して数日あれこれ試行錯誤していた
ASIOで再生中にWindowsの操作でディスクアクセスが入ると一瞬音飛びする状態だった
その際、dmesgにもエラーログがでる

LatencyBuffer= 120000~150000 (多めに取ってやっと安定)
SyncBufferCount= 6~10の間
TargetProfileLimitTime=200~300の間

だいたい上記の値の組み合わせを変えてチェックしていた
以下のinfでやっと、ほぼエラーのでない状態になった


[global]
ASIOBufferMulti=disable
ASIOBufferSize=512
ASIOBufferSizeMax=16384
ASIOBufferSizeMin=16
ASIOBufferSizePre=512
AckProcessctl=disable
AsioSetting=Format,Buffer,Cycle,Latency,Ether,FindIP,Info,Phase,Occupied,Log
CPULOW=3
CpuOther=8,9
CpuSend=6,7
CycleTime=10000
DSDMSB=enable
Fragment=enable
InfoCycle=100000
InterLoopback=disable
Interface=0
LatencyBuffer=150000
NopBreak=disable
PCMRequest=32
Phase=Normal
Preset=TargetProfile
StartDelay=200
SyncBufferCount=7
TargetAddress=::,0
TargetPO=0
TargetProfileLimitTime=300
ThredMode=21
Version=25

2026/1/3 の setting.inf

Diretta Target PC : 6_147_17 →  6_147_19
Targetのアップデート後、以下のエラーを数回、確認のため少し設定を緩めてみた

local0 Notice 01/03 17:05:06 empty sink buffer

local0 Error 01/03 17:05:06 snd_pcm_writei EPIPE recover


今回のファームウェアアップデートで、カーネルが 6.18.3 になり、さらに Clang + LTO という高度な最適化でビルドされました。これにより、システム内部の処理スピードやタイミングが非常に「鋭く」なっています。

旧設定 (150000 / 4): 非常に攻めた設定ですが、OSが高速化したことで、以前は許容されていた「ネットワークの僅かな遅れ」が、今のOSのスピードでは「データが間に合わない!」というエラー(EPIPE)に直結しやすくなった可能性があります。

新設定 (170000 / 5): 今回わずかにバッファを厚くしたことで、ターゲット側(LIVA Z2)のバッファが空っぽになる前に次のデータが届く確率が高まりました。

前回からの設定変更比較箇所
項目1個前 (旧)今回 (新)変更の狙いと効果
LatencyBuffer150000170000「ネットワークの待機時間」を少し延長。 ネットワーク上のわずかな揺らぎ(ジッター)を吸収する余裕を 20,000ns 増やしました。
SyncBufferCount45「同期用バッファの個数」を増加。 データを一時的に溜めておく箱を1つ増やし、ターゲット(LIVA Z2)へのデータ供給が途切れないように補強しました。
[global]
ASIOBufferMulti=enable
ASIOBufferSize=512
ASIOBufferSizeMax=512
ASIOBufferSizeMin=32
ASIOBufferSizePre=768
AckProcessctl=disable
CPULOW=3
CpuOther=5-7
CpuSend=4
CycleTime=175
DSDMSB=enable
FlexCycle=disable
Fragment=Optimize
InfoCycle=50000
InterLoopback=disable
Interface=0
LatencyBuffer=170000
NopBreak=disable
PCMRequest=32
Phase=Normal
Preset=Fix_High
StartDelay=0
SyncBufferCount=5
TargetAddress=fe80::1e69:7aff:fe42:1f8c,19646
TargetPO=2
TargetProfileLimitTime=30
ThredMode=3091
Version=25

2026/1/1 の setting.inf

自分の環境では、Target Latencyを小さくすると音飛びに直結するようだ
Diretta Cycleを詰める方が耐性があるようなので、こちらを詰めることに

今回の進化のポイント
「速さ」と「鮮度」の両立 以前の設定は CycleTime=200 に SyncBufferCount=6 と、安定感を重視した「厚みのある音」の構成でした。現在はそこから一歩踏み出し、周期を 175 まで早めつつ同期段数を 4 まで絞ることで、現代的な Paradigm のスピーカーに相応しい、圧倒的なハイスピード感とフォーカスの鋭さを手に入れています。

Xeon のパワーを「精度」へ転換 以前よりも CycleTime を 25マイクロ秒 詰めたことは、1秒間に処理する回数が約 1,000回 増えたことを意味します。これを音飛びなしで実現できているのは、Xeon E5-2697A v4 の多コアと巨大なキャッシュを、より「時間軸の精度」に正しく割り当てられている証拠です。

前回からの設定変更比較箇所
項目以前の設定現在の設定音質への影響(狙い)
CycleTime200175高回転化:処理周期を短縮し
SyncBufferCount64ダイレクト化:同期段数を減らし伝送の鮮度とスピード感を向上。
ASIOBufferSize256512安定性の確保:CycleTimeを攻めた分、ASIO側の受け皿を広げてCPUのバースト的な負荷を吸収。
CpuOther5-65-7リソース配分の最適化:他の処理に割り当てるコアを微増させ、OS全体の挙動をより安定させる狙い。
[global]
ASIOBufferMulti=enable
ASIOBufferSize=512
ASIOBufferSizeMax=512
ASIOBufferSizeMin=32
ASIOBufferSizePre=768
AckProcessctl=disable
CPULOW=3
CpuOther=5-7
CpuSend=4
CycleTime=175
DSDMSB=enable
FlexCycle=disable
Fragment=Optimize
InfoCycle=50000
InterLoopback=disable
Interface=0
LatencyBuffer=150000
NopBreak=disable
PCMRequest=32
Phase=Normal
Preset=Fix_High
StartDelay=0
SyncBufferCount=4
TargetAddress=fe80::1e69:7aff:fe42:1f8c,19646
TargetPO=2
TargetProfileLimitTime=30
ThredMode=3091
Version=25

2025/12/30 の setting.inf

「Target Latency」150→180 に変更のみ

1時間異常問題なく再生できた
この程度であればOKだろう

local0     Informational 12/30 15:54:02 State Change : Play
local0     Notice        12/30 16:58:56 empty sink buffer
local0     Error         12/30 16:58:56 snd_pcm_writei EPIPE recover
local0     Notice        12/30 16:58:56 empty sink buffer
local0     Error         12/30 16:58:56 snd_pcm_writei EPIPE recover
local0     Notice        12/30 16:58:56 empty sink buffer
local0     Error         12/30 16:58:56 snd_pcm_writei EPIPE recover
local0     Notice        12/30 16:58:56 empty sink buffer
local0     Error         12/30 16:58:56 snd_pcm_writei EPIPE recover
local0     Notice        12/30 16:58:56 empty sink buffer
local0     Error         12/30 16:58:56 snd_pcm_writei EPIPE recover

D20251230-2

2025/12/30 の setting.inf

昨日の設定では10分に数回エラーを確認した

Target側(DAC側)に貯めておくデータの深さ
「FS X Depth」 を 4→6 に変更

それに伴い、受け止めるための全体の待ち時間「Target Latency」も余裕を持たせる
「Target Latency」100→150 に変更

【結果】
15:22に再生を開始して、15:49にエラーが発生した
約27分間は正常に動いていたことになるが、まだ設定を詰めたほうが良さそうだ

local0 Informational 12/30 15:22:03 State Change : Play
local0 Notice 12/30 15:49:20 empty sink buffer
local0 Error 12/30 15:49:20 snd_pcm_writei EPIPE recover
local0 Notice 12/30 15:49:20 empty sink buffer
local0 Error 12/30 15:49:20 snd_pcm_writei EPIPE recover
local0 Notice 12/30 15:49:20 empty sink buffer
local0 Error 12/30 15:49:20 snd_pcm_writei EPIPE recover
local0 Notice 12/30 15:49:20 empty sink buffer
local0 Error 12/30 15:49:20 snd_pcm_writei EPIPE recover


D20251230


[global]
ASIOBufferMulti=enable
ASIOBufferSize=256
ASIOBufferSizeMax=512
ASIOBufferSizeMin=32
ASIOBufferSizePre=768
AckProcessctl=disable
CPULOW=3
CpuOther=5-6
CpuSend=4
CycleTime=200
DSDMSB=enable
FlexCycle=disable
Fragment=Optimize
InfoCycle=50000
InterLoopback=disable
Interface=0
LatencyBuffer=150000
NopBreak=disable
PCMRequest=32
Phase=Normal
Preset=Fix_High
StartDelay=0
SyncBufferCount=6
TargetAddress=fe80::1e69:7aff:fe42:1f8c,19646
TargetPO=2
TargetProfileLimitTime=30
ThredMode=3091
Version=25

2025/12/29 の setting.inf

CPU 0,1,2が他に使われがちなので空いているコアに割り振り
Diretta Cycle を100-150で試すが安定しなくなる ASIO Bufferを下げても同様
Target Latencyは、まだ下げられそう

1230
 
[global]
ASIOBufferMulti=enable
ASIOBufferSize=256
ASIOBufferSizeMax=512
ASIOBufferSizeMin=32
ASIOBufferSizePre=768
AckProcessctl=disable
CPULOW=3
CpuOther=5-6
CpuSend=4
CycleTime=200
DSDMSB=enable
FlexCycle=disable
Fragment=Optimize
InfoCycle=50000
InterLoopback=disable
Interface=0
LatencyBuffer=120000
NopBreak=disable
PCMRequest=32
Phase=Normal
Preset=Fix_High
StartDelay=0
SyncBufferCount=4
TargetAddress=fe80::1e69:7aff:fe42:1f8c,19646
TargetPO=2
TargetProfileLimitTime=30
ThredMode=3091
Version=25