v1.5.56 — 送信立ち上がりの二段階を解消 / Gap-free TX + HL2 direct network mode
v1.5.56 — 送信立ち上がりの「二段階」を解消:波形を最初から連続に
いつも決め手になるご報告をありがとうございます。「二段階のスペクトラム」「V1.5.22 から発生(V1.5.21 までは正常)」という2つの情報で、原因がはっきり特定できました。インストールは app-debug.apk をご利用ください。
原因(ご報告と完全に一致します)
送信開始時、アプリはまず 約360ミリ秒ぶんの「無音を符号化した波形」 を先行送出します(プリフィル)。その後はマイクからの音声が符号化されて続く設計ですが、Bluetooth/LC3 経由のマイクは起動に1秒以上かかることがあり、その間に先行分を使い切ると送信波形が途切れていました。
- 一段階目 = プリフィルの約360ms(これが「ザッ」という短い変調音の正体)
- (空白) = マイク起動待ちの無送信区間
- 二段階目 = マイク音声による本来の連続波形
V1.5.21 まで正常だったのは、当時のマイクが起動の速い本体マイクで、360ms のプリフィル内に間に合っていたためです。V1.5.22 で Bluetooth ルーティングが入って以降、マイク起動がプリフィルを超えるようになり、この途切れが発生するようになりました。LC3 はそれを長くしただけで、原因ではありませんでした。
修正
ネイティブ送信エンジンに「無音フィラー」を追加しました。マイクの最初のデータが届くまで、エンコーダーが無音フレームを生成し続けて送信リングを絶やしません。これにより:
- 搬送波は立ち上がった瞬間から途切れず連続 — 二段階スペクトラムと「ザッ」→空白→再開のパターンが消えます
- マイクが遅くても電波は正常(相手局のデコードにも優しくなります)
- USB 送信・ネットワーク送信(IC-705 Wi-Fi)の両経路に適用
あわせて立ち上がり短縮も行いました:
- プリフィルを 360ms → 240ms に短縮(波形はフィラーが守るので安全)
- v1.5.55 で入れたルーティング確認のミュート待ちを最大 500ms → 250ms に短縮
立ち上がり時間について(目標 約1秒)
今回の修正で、搬送波の立ち上がりはマイクの起動を待たなくなり、概算で 1〜1.4 秒程度になる見込みです。さらに詰めるため、今回から TX: first mic frames Xms after startTx というログを追加しました。もしまだ 2 秒近くかかるようでしたら、設定 → 診断 → Capture audio log で送信開始直後のログを一度お送りいただけますか。残りの時間がどこに使われているか(モデム初期化かマイク起動か)が正確に分かり、次の一手(モデムの事前初期化)を判断できます。
Also in this release — Hermes-Lite 2 direct network control (English)
New rig connection mode "HL2 (LAN)": the app now talks openHPSDR
protocol 1 directly to a Hermes-Lite 2 over UDP port 1024 — discovery
(leave Host blank for broadcast auto-discovery), frequency, PTT (MOX),
TX drive, RX LNA gain, and the bidirectional 48 kHz I/Q stream, with SSB
(de)modulation done inside the app. No PC host (Thetis/piHPSDR) needed;
the existing TCP CAT bridge profiles remain available.
Status: implemented and bench-built, but not yet verified against real
HL2 hardware — reports welcome. Known open point: if the received
sideband turns out mirrored (LSB where USB is expected), that is a known
I/Q-order convention ambiguity and a one-line fix; please report what you
see.
English summary of the TX fix
The "two-stage spectrum" / burst-gap noise at TX start (present since
v1.5.22, worse with BT/LC3 mics) was the ~360 ms silence-encoded prefill
playing out, the ring then underrunning while the Bluetooth mic route
spun up, and the waveform resuming — a transmitted burst + gap. A native
silence-filler thread now keeps the TX ring fed with encoder-generated
silence frames until the first real mic frames arrive (USB and network TX
paths), so the carrier is continuous from the moment it appears. Prefill
trimmed 360→240 ms, route-verify mute capped 500→250 ms, and a
"first mic frames after X ms" log was added to quantify any residual
startup latency.
Full Changelog: v1.5.55...v1.5.56