mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
fix(tx): чистый openHPSDR TX-тракт — задержка DUP, всплески TUN, фриз PTT-off
Диагностика временным TXLog (снят) вскрыла цепочку проблем TX-тракта: - Задержка ~200мс своего сигнала в DUP: за время приёма ринг PortAudio- микрофона наполнялся до упора (9600 сэмплов) и на старте TX бёрстом оседал стоячим запасом в DUC-очереди. Фикс: TAudioInput.Flush на RX→TX (заодно убрана передача в эфир аудио, записанного до нажатия PTT). - Всплески на TUN: (1) старт — радио начинало с пустого DUC-FIFO; (2) по ходу — пейсинг со строгой каденцией держал запас FIFO у нуля, джиттер 3-6мс давал underrun; (3) клип: голос из бэклога складывался с PostGen- тоном (стоит после ALC) поверх шкалы, а сам тон при mag=1.0 давал выброс Гиббса x1.18 на старте. Фиксы: pre-roll PrimeDUCIQ (THROTTLE + 3 блока подушки в очереди — sender метрит непрерывно, FIFO радио прижат 2000..2400), анти-старв доливка нулями до REANCHOR при просадке, TUN_TONE_MAG=0.83, мьют mic-входа TXA при активном тоне. - Огрызок TUN-тона в эфир на первом блоке следующего TX: стоп канала dmode=1 ждал фейд, который некому прокрутить (продюсер уже остановлен) — канал стопился по таймауту Sleep(1)x100 с недобранным сигналом в буферах. Это же было и «остаточным фризом ~106мс» GUI на отпускании PTT: чистый таймаут, фейд никогда не исполнялся. Фикс: dmode=0 + синхронный слив/продувка канала 4 нулевыми fexchange0 на стопе и старте (<1мс, штатные down-slew и flush). - Дисплей: ResetPixelBuffers(TX_DISP_ID) на старте TX — усредняющая история TX-анализатора показывала спектр тона прошлой сессии. - StopRunning при активном TUN не чистил DUC-очередь и не сбрасывал FTuning/тон — закрыто. Латентность тракта mic→радио теперь ~43мс (WDSP 11 + подушка 21 + FIFO 10.4). Проверено на эфире: q=0..30, fill/drops/underrun=0, clip=0, клоки радио/ПК без дрейфа (micRx 48000/с). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,9 +17,9 @@
|
||||
<UseVersionInfo Value="True"/>
|
||||
<AutoIncrementBuild Value="True"/>
|
||||
<MinorVersionNr Value="9"/>
|
||||
<BuildNr Value="246"/>
|
||||
<BuildNr Value="256"/>
|
||||
</VersionInfo>
|
||||
<MacroValues Count="64">
|
||||
<MacroValues Count="74">
|
||||
<Macro1 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro2 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro3 Name="LCLWidgetType" Value="qt6"/>
|
||||
@@ -84,6 +84,16 @@
|
||||
<Macro62 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro63 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro64 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro65 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro66 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro67 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro68 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro69 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro70 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro71 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro72 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro73 Name="LCLWidgetType" Value="qt6"/>
|
||||
<Macro74 Name="LCLWidgetType" Value="qt6"/>
|
||||
</MacroValues>
|
||||
<BuildModes>
|
||||
<Item Name="Debug" Default="True"/>
|
||||
|
||||
Reference in New Issue
Block a user