[webftr-js8-lab] command=real-wav-full-chain-regression [webftr-js8-lab] root=/decoders/js8_decoder [webftr-js8-lab] log=/decoders/js8_decoder/logs/20260528T031839Z_real-wav-full-chain-regression.log [webftr-js8-lab] manifest=/decoders/js8_decoder/logs/20260528T031839Z_real-wav-full-chain-regression_manifest.json [webftr-js8-lab] utc=20260528T031839Z [webftr-js8-lab] rx-only guard: no TX / no PTT / no Tune / no Send [webftr-js8-lab] Step82 real WAV full-chain regression [webftr-js8-lab] requested path: /decoders/js8_test.wav [webftr-js8-lab] This default run really reads the JS8 WAV again: input-check + quick-window-scan + bounded sync-probe + Step82 summary. [webftr-js8-lab] RX-only guard: no TX / no PTT / no Tune / no Send / no JS8Call runtime control. [webftr-js8-lab] resolved WAV: /decoders/js8_test.wav ========== STEP82 1/4: REAL WAV INPUT CHECK ========== [webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260528T031839Z_step82_input_check_output.json [webftr-js8-lab] JSON timeout guard: 180s { "ok": true, "mode": "JS8", "tool": "webftr-js8-input-check", "tool_version": "step63-source-exact-interleaver-whitening-index-extract", "input_wav": "/decoders/js8_test.wav", "rx_only": true, "safety": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false }, "decodes": [], "warnings": [], "wav": { "path": "/decoders/js8_test.wav", "channels": 1, "sample_rate": 12000, "sample_width_bytes": 2, "frames": 2304199, "duration_seconds": 192.016583, "rms_dbfs": -9.16, "peak_dbfs": -0.72, "clipped": false }, "next_action": "Run profile-scan, then auto-ldpc-probe on this WAV." } [webftr-js8-lab] step82 input-check exit_code=0 ========== STEP82 2/4: REAL WAV QUICK WINDOW SCAN ========== [webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260528T031839Z_step82_quick_window_scan_output.json [webftr-js8-lab] JSON timeout guard: 180s [webftr-js8-lab] stderr log: /decoders/js8_decoder/logs/20260528T031839Z_step82_quick_window_scan_output.stderr.log /decoders/js8_decoder/src/webftr_js8_lab/js8_quick_window_scan.py:4: DeprecationWarning: 'audioop' is deprecated and slated for removal in Python 3.13 import audioop { "ok": true, "mode": "JS8", "tool": "webftr-js8-quick-window-scan", "tool_version": "step63-source-exact-interleaver-whitening-index-extract", "input_wav": "/decoders/js8_test.wav", "rx_only": true, "safety": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false }, "wav": { "sample_rate": 12000, "duration_seconds": 192.016583, "frames": 2304199, "rms_dbfs": -9.417419601662104, "peak_dbfs": -0.7246929351669301, "clipped": false }, "scan_params": { "window_seconds": 60.0, "hop_seconds": 6.0, "max_seconds": 240.0, "output_dir": "/decoders/js8_decoder/runtime/step82_quick_windows" }, "selected_window": { "start_seconds": 18.0, "end_seconds": 78.0, "duration_seconds": 60.0, "avg_activity_score": -6.286, "active_chunks": 10, "chunk_count": 10, "selection_score": 18.714, "window_wav": "/decoders/js8_decoder/runtime/step82_quick_windows/js8_quick_selected_window.wav", "tone_candidates": [ { "freq_hz": 1000.0, "relative_db": 0.0, "power": 15.76347305 }, { "freq_hz": 1025.0, "relative_db": -0.8, "power": 13.10923242 }, { "freq_hz": 2025.0, "relative_db": -14.3, "power": 0.58516574 }, { "freq_hz": 975.0, "relative_db": -16.4, "power": 0.3608126 }, { "freq_hz": 1050.0, "relative_db": -29.42, "power": 0.01801849 }, { "freq_hz": 1525.0, "relative_db": -32.35, "power": 0.00916685 }, { "freq_hz": 1825.0, "relative_db": -32.46, "power": 0.00893784 }, { "freq_hz": 1925.0, "relative_db": -34.06, "power": 0.00619164 }, { "freq_hz": 1650.0, "relative_db": -34.23, "power": 0.0059545 }, { "freq_hz": 2575.0, "relative_db": -34.47, "power": 0.00562689 }, { "freq_hz": 1625.0, "relative_db": -34.8, "power": 0.00521457 }, { "freq_hz": 950.0, "relative_db": -35.04, "power": 0.00494236 } ] }, "selected_window_wav": "/decoders/js8_decoder/runtime/step82_quick_windows/js8_quick_selected_window.wav", "top_windows": [ { "start_seconds": 18.0, "end_seconds": 78.0, "duration_seconds": 60.0, "avg_activity_score": -6.286, "active_chunks": 10, "chunk_count": 10, "selection_score": 18.714, "window_wav": "/decoders/js8_decoder/runtime/step82_quick_windows/js8_quick_selected_window.wav", "tone_candidates": [ { "freq_hz": 1000.0, "relative_db": 0.0, "power": 15.76347305 }, { "freq_hz": 1025.0, "relative_db": -0.8, "power": 13.10923242 }, { "freq_hz": 2025.0, "relative_db": -14.3, "power": 0.58516574 }, { "freq_hz": 975.0, "relative_db": -16.4, "power": 0.3608126 }, { "freq_hz": 1050.0, "relative_db": -29.42, "power": 0.01801849 }, { "freq_hz": 1525.0, "relative_db": -32.35, "power": 0.00916685 }, { "freq_hz": 1825.0, "relative_db": -32.46, "power": 0.00893784 }, { "freq_hz": 1925.0, "relative_db": -34.06, "power": 0.00619164 }, { "freq_hz": 1650.0, "relative_db": -34.23, "power": 0.0059545 }, { "freq_hz": 2575.0, "relative_db": -34.47, "power": 0.00562689 }, { "freq_hz": 1625.0, "relative_db": -34.8, "power": 0.00521457 }, { "freq_hz": 950.0, "relative_db": -35.04, "power": 0.00494236 } ] }, { "start_seconds": 24.0, "end_seconds": 84.0, "duration_seconds": 60.0, "avg_activity_score": -6.288, "active_chunks": 10, "chunk_count": 10, "selection_score": 18.712 }, { "start_seconds": 12.0, "end_seconds": 72.0, "duration_seconds": 60.0, "avg_activity_score": -6.2893, "active_chunks": 10, "chunk_count": 10, "selection_score": 18.7107 }, { "start_seconds": 6.0, "end_seconds": 66.0, "duration_seconds": 60.0, "avg_activity_score": -6.2897, "active_chunks": 10, "chunk_count": 10, "selection_score": 18.7103 }, { "start_seconds": 30.0, "end_seconds": 90.0, "duration_seconds": 60.0, "avg_activity_score": -6.2905, "active_chunks": 10, "chunk_count": 10, "selection_score": 18.7095 }, { "start_seconds": 36.0, "end_seconds": 96.0, "duration_seconds": 60.0, "avg_activity_score": -6.2973, "active_chunks": 10, "chunk_count": 10, "selection_score": 18.7027 }, { "start_seconds": 42.0, "end_seconds": 102.0, "duration_seconds": 60.0, "avg_activity_score": -6.3015, "active_chunks": 10, "chunk_count": 10, "selection_score": 18.6985 }, { "start_seconds": 0.0, "end_seconds": 60.0, "duration_seconds": 60.0, "avg_activity_score": -6.3078, "active_chunks": 10, "chunk_count": 10, "selection_score": 18.6922 } ], "chunk_preview": [ { "chunk_index": 0, "start_seconds": 0.0, "end_seconds": 6.0, "rms_dbfs": -9.55, "peak_dbfs": -3.23, "activity_score": -6.7075 }, { "chunk_index": 1, "start_seconds": 6.0, "end_seconds": 12.0, "rms_dbfs": -8.65, "peak_dbfs": -3.22, "activity_score": -5.8087 }, { "chunk_index": 2, "start_seconds": 12.0, "end_seconds": 18.0, "rms_dbfs": -10.06, "peak_dbfs": -3.01, "activity_score": -7.2095 }, { "chunk_index": 3, "start_seconds": 18.0, "end_seconds": 24.0, "rms_dbfs": -8.61, "peak_dbfs": -3.44, "activity_score": -5.7779 }, { "chunk_index": 4, "start_seconds": 24.0, "end_seconds": 30.0, "rms_dbfs": -9.13, "peak_dbfs": -3.01, "activity_score": -6.2812 }, { "chunk_index": 5, "start_seconds": 30.0, "end_seconds": 36.0, "rms_dbfs": -9.35, "peak_dbfs": -2.73, "activity_score": -6.4889 }, { "chunk_index": 6, "start_seconds": 36.0, "end_seconds": 42.0, "rms_dbfs": -8.61, "peak_dbfs": -2.39, "activity_score": -5.7277 }, { "chunk_index": 7, "start_seconds": 42.0, "end_seconds": 48.0, "rms_dbfs": -9.99, "peak_dbfs": -2.6, "activity_score": -7.1176 } ], "chunk_tail_preview": [ { "chunk_index": 25, "start_seconds": 150.0, "end_seconds": 156.0, "rms_dbfs": -9.46, "peak_dbfs": -2.8, "activity_score": -6.5977 }, { "chunk_index": 26, "start_seconds": 156.0, "end_seconds": 162.0, "rms_dbfs": -8.7, "peak_dbfs": -3.5, "activity_score": -5.8709 }, { "chunk_index": 27, "start_seconds": 162.0, "end_seconds": 168.0, "rms_dbfs": -10.09, "peak_dbfs": -0.89, "activity_score": -7.133 }, { "chunk_index": 28, "start_seconds": 168.0, "end_seconds": 174.0, "rms_dbfs": -8.69, "peak_dbfs": -3.67, "activity_score": -5.8733 }, { "chunk_index": 29, "start_seconds": 174.0, "end_seconds": 180.0, "rms_dbfs": -9.32, "peak_dbfs": -3.03, "activity_score": -6.4728 }, { "chunk_index": 30, "start_seconds": 180.0, "end_seconds": 186.0, "rms_dbfs": -17.31, "peak_dbfs": -2.41, "activity_score": -14.429 }, { "chunk_index": 31, "start_seconds": 186.0, "end_seconds": 192.0, "rms_dbfs": -22.78, "peak_dbfs": -10.06, "activity_score": -20.2802 }, { "chunk_index": 32, "start_seconds": 192.0, "end_seconds": 192.017, "rms_dbfs": -23.23, "peak_dbfs": -14.09, "activity_score": -20.9354 } ], "decodes": [], "warnings": [ "Quick-window-scan only selects a likely analysis window; it is not a JS8 text decoder." ], "next_action": "Run sync/soft-symbol/FEC probes on selected_window_wav. Message unpack is not implemented in Step 54." } [webftr-js8-lab] step82 quick-window-scan exit_code=0 [webftr-js8-lab] selected analysis WAV: /decoders/js8_decoder/runtime/step82_quick_windows/js8_quick_selected_window.wav ========== STEP82 3/4: BOUNDED SYNC PROBE ON SELECTED WAV ========== [webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260528T031839Z_step82_sync_probe_output.json [webftr-js8-lab] JSON timeout guard: 180s { "ok": true, "mode": "JS8", "tool": "webftr-js8-sync-probe", "tool_version": "step63-source-exact-interleaver-whitening-index-extract", "input_wav": "/decoders/js8_decoder/runtime/step82_quick_windows/js8_quick_selected_window.wav", "rx_only": true, "safety": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false }, "implementation_stage": "step43_sync_candidates_with_ldpc_probe_followup_no_final_decode", "wav": { "path": "/decoders/js8_decoder/runtime/step82_quick_windows/js8_quick_selected_window.wav", "channels": 1, "sample_rate": 12000, "sample_width_bytes": 2, "frames": 720000, "duration_seconds": 60.0, "rms_dbfs": -9.13, "peak_dbfs": -0.72, "clipped": false }, "js8_reference": { "source": "JS8Call-Improved source-map orientation plus FT8-like Costas7 hypothesis", "sample_rate_hz": 12000, "default_nsps": 6192, "default_symbol_duration_seconds": 0.516, "costas7_candidate": [ 3, 1, 4, 0, 6, 5, 2 ], "tone_count_candidate": 8, "note": "This is a sync/symbol candidate extractor only. It estimates frame/symbol candidates for lab work and does not perform LDPC/FEC decode or JS8 message unpacking." }, "scan": { "nsps": 6192, "tone_spacing_hz": 1.937984, "freq_min_hz": 300.0, "freq_max_hz": 3000.0, "max_seconds_analyzed": 45.0, "start_candidates_scanned": 4, "base_candidates_scanned": 4, "base_candidates_hz": [ 1000.0, 997.5, 995.0, 992.5 ], "coarse_tone_candidates": [ { "freq_hz": 1000.0, "relative_db": 0.0, "power": 15.76347305 }, { "freq_hz": 1025.0, "relative_db": -0.8, "power": 13.10923242 }, { "freq_hz": 2025.0, "relative_db": -14.3, "power": 0.58516574 }, { "freq_hz": 975.0, "relative_db": -16.4, "power": 0.3608126 }, { "freq_hz": 1050.0, "relative_db": -29.42, "power": 0.01801849 }, { "freq_hz": 1525.0, "relative_db": -32.35, "power": 0.00916685 }, { "freq_hz": 1825.0, "relative_db": -32.46, "power": 0.00893784 }, { "freq_hz": 1925.0, "relative_db": -34.06, "power": 0.00619164 }, { "freq_hz": 1650.0, "relative_db": -34.23, "power": 0.0059545 }, { "freq_hz": 2575.0, "relative_db": -34.47, "power": 0.00562689 }, { "freq_hz": 1625.0, "relative_db": -34.8, "power": 0.00521457 }, { "freq_hz": 950.0, "relative_db": -35.04, "power": 0.00494236 } ] }, "sync_candidates": [ { "ok": true, "start_sample": 376164, "start_seconds": 31.347, "base_freq_hz": 1000.0, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 2, "costas_symbols": 7, "avg_margin_db": 2.4, "energy_score_db": 5.26, "candidate_score": 27.66, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 3, "expected_is_strongest": true, "expected_power": 173.3098525436, "median_other_power": 4.0136394344, "margin_db": 16.35, "tone_powers": [ 15.9425535414, 16.7064438607, 3.6144531567, 173.3098525436, 95.4717245231, 2.9193626913, 4.0136394344, 0.1693303583 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 3, "expected_is_strongest": false, "expected_power": 28.1803520794, "median_other_power": 18.8050880779, "margin_db": 1.76, "tone_powers": [ 20.9762208024, 28.1803520794, 5.7419781066, 71.0558343619, 24.7557112336, 18.8050880779, 2.0989356467, 0.2430214014 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 2, "expected_is_strongest": false, "expected_power": 71.6248687943, "median_other_power": 38.8187957059, "margin_db": 2.66, "tone_powers": [ 38.8187957059, 45.4486252133, 72.3087962275, 34.7312575895, 71.6248687943, 1.77870258, 40.2071552171, 29.3427085469 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 0.2622539501, "median_other_power": 6.4065684994, "margin_db": -13.88, "tone_powers": [ 0.2622539501, 5.3123464342, 6.4065684994, 0.0185561141, 4.0123103831, 16.6485585208, 30.7318605032, 45.2413496556 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 2, "expected_is_strongest": false, "expected_power": 5.0109164476, "median_other_power": 4.7646757363, "margin_db": 0.22, "tone_powers": [ 4.0082543216, 2.6972288443, 7.2574165131, 5.6821055182, 4.7646757363, 6.2751230304, 5.0109164476, 3.9892771877 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 6, "expected_is_strongest": false, "expected_power": 16.3535460217, "median_other_power": 3.8125993628, "margin_db": 6.32, "tone_powers": [ 3.255794393, 3.8125993628, 0.106178069, 3.3903884596, 10.6058363401, 16.3535460217, 21.3440985425, 20.457437264 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 2, "expected_is_strongest": true, "expected_power": 69.0973179158, "median_other_power": 31.8068413839, "margin_db": 3.37, "tone_powers": [ 46.9814165652, 31.8068413839, 69.0973179158, 32.7987510886, 39.5558795637, 8.4831093131, 1.3130524868, 0.2201954402 ] } ], "symbol_preview": [ { "symbol": 0, "tone_index": 3, "confidence_db": 2.59, "powers": [ 15.9425535414, 16.7064438607, 3.6144531567, 173.3098525436, 95.4717245231, 2.9193626913, 4.0136394344, 0.1693303583 ] }, { "symbol": 1, "tone_index": 3, "confidence_db": 4.02, "powers": [ 20.9762208024, 28.1803520794, 5.7419781066, 71.0558343619, 24.7557112336, 18.8050880779, 2.0989356467, 0.2430214014 ] }, { "symbol": 2, "tone_index": 2, "confidence_db": 0.04, "powers": [ 38.8187957059, 45.4486252133, 72.3087962275, 34.7312575895, 71.6248687943, 1.77870258, 40.2071552171, 29.3427085469 ] }, { "symbol": 3, "tone_index": 7, "confidence_db": 1.68, "powers": [ 0.2622539501, 5.3123464342, 6.4065684994, 0.0185561141, 4.0123103831, 16.6485585208, 30.7318605032, 45.2413496556 ] }, { "symbol": 4, "tone_index": 2, "confidence_db": 0.63, "powers": [ 4.0082543216, 2.6972288443, 7.2574165131, 5.6821055182, 4.7646757363, 6.2751230304, 5.0109164476, 3.9892771877 ] }, { "symbol": 5, "tone_index": 6, "confidence_db": 0.18, "powers": [ 3.255794393, 3.8125993628, 0.106178069, 3.3903884596, 10.6058363401, 16.3535460217, 21.3440985425, 20.457437264 ] }, { "symbol": 6, "tone_index": 2, "confidence_db": 1.68, "powers": [ 46.9814165652, 31.8068413839, 69.0973179158, 32.7987510886, 39.5558795637, 8.4831093131, 1.3130524868, 0.2201954402 ] }, { "symbol": 7, "tone_index": 6, "confidence_db": 0.36, "powers": [ 0.0629283536, 3.0124650248, 2.468160732, 0.2225482449, 4.4643187524, 18.5556593714, 38.6239050934, 35.5384115811 ] }, { "symbol": 8, "tone_index": 0, "confidence_db": 3.58, "powers": [ 51.7003137421, 22.6654786526, 10.2647749623, 0.7338068813, 0.5959166114, 1.0856570407, 0.5900548002, 0.2839134732 ] }, { "symbol": 9, "tone_index": 3, "confidence_db": 1.07, "powers": [ 1.4796655515, 12.1054506125, 33.4390522719, 42.7952693524, 29.2713114212, 13.1339502314, 0.838227994, 0.3977469966 ] }, { "symbol": 10, "tone_index": 0, "confidence_db": 7.05, "powers": [ 3.8021340128, 0.7507762707, 0.2978649112, 0.0865288349, 0.4188550056, 0.3510137616, 0.3321666239, 0.0771960487 ] }, { "symbol": 11, "tone_index": 6, "confidence_db": 0.3, "powers": [ 0.0210093782, 1.5143422975, 3.7724887739, 0.4083904831, 3.7523006972, 24.1449148934, 40.0439871543, 37.3772424523 ] }, { "symbol": 12, "tone_index": 6, "confidence_db": 0.41, "powers": [ 0.0109343582, 1.9233440029, 2.579563716, 0.2904271254, 4.0535156863, 21.1102304339, 41.820006292, 38.0891239855 ] }, { "symbol": 13, "tone_index": 5, "confidence_db": 1.02, "powers": [ 0.172114006, 0.1445949201, 0.1822446788, 0.1639477524, 0.157369185, 0.2304836028, 0.149017709, 0.1303750464 ] }, { "symbol": 14, "tone_index": 1, "confidence_db": 2.25, "powers": [ 0.158294336, 0.8024176986, 0.4774565415, 0.171771953, 0.3435910183, 0.2150891283, 0.0664453529, 0.0117068462 ] }, { "symbol": 15, "tone_index": 0, "confidence_db": 2.82, "powers": [ 0.9429973402, 0.2194876093, 0.4927987108, 0.296484266, 0.2724135549, 0.3059153636, 0.1171919035, 0.2277210294 ] }, { "symbol": 16, "tone_index": 2, "confidence_db": 1.05, "powers": [ 0.9886947642, 15.2533994562, 46.4017479022, 36.4288409122, 33.5023068387, 4.1614953364, 1.6047486967, 1.5781366508 ] }, { "symbol": 17, "tone_index": 2, "confidence_db": 0.29, "powers": [ 38.0082486891, 50.2272680621, 53.7458997861, 39.5879636035, 28.3147057357, 5.5691491742, 0.8237785114, 0.9557250636 ] }, { "symbol": 18, "tone_index": 1, "confidence_db": 1.57, "powers": [ 0.0918783675, 0.307797933, 0.1050100761, 0.0141874336, 0.1515434304, 0.2145300217, 0.1105823567, 0.0880243845 ] }, { "symbol": 19, "tone_index": 6, "confidence_db": 0.74, "powers": [ 0.0868825702, 0.0397866232, 0.1686785232, 0.0927654971, 0.0154835097, 0.1791772439, 0.2125035654, 0.0792307676 ] }, { "symbol": 20, "tone_index": 6, "confidence_db": 0.24, "powers": [ 0.0086936555, 0.0628387052, 0.0498876206, 0.0421193635, 0.1264136464, 0.1308918823, 0.1449241888, 0.1370848814 ] }, { "symbol": 21, "tone_index": 5, "confidence_db": 0.26, "powers": [ 0.0039904011, 0.0008005547, 0.0273221681, 0.0195367608, 0.0129234533, 0.0325339455, 0.0306277596, 0.0214755839 ] }, { "symbol": 22, "tone_index": 6, "confidence_db": 2.65, "powers": [ 0.1788142554, 0.4853471741, 0.2694809704, 0.4544718388, 0.6492196999, 0.3152692631, 1.1938135494, 0.4456102593 ] }, { "symbol": 23, "tone_index": 1, "confidence_db": 5.18, "powers": [ 0.181050027, 1.6778984579, 0.4701928836, 0.307478218, 0.1431618802, 0.5094538581, 0.0631630623, 0.0575143534 ] }, { "symbol": 24, "tone_index": 1, "confidence_db": 1.35, "powers": [ 33.2015442878, 62.2968777169, 43.8426328549, 45.6891069921, 19.6205599411, 5.8107647037, 0.0185971127, 0.6717585263 ] }, { "symbol": 25, "tone_index": 4, "confidence_db": 0.16, "powers": [ 2.5571353043, 3.8143679082, 2.4766498838, 3.4608756257, 3.9561522002, 2.7219017493, 2.8968871756, 2.4777395482 ] } ] }, { "ok": true, "start_sample": 250776, "start_seconds": 20.898, "base_freq_hz": 997.5, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 2, "costas_symbols": 7, "avg_margin_db": 2.39, "energy_score_db": 3.14, "candidate_score": 25.53, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 2.0099620294, "median_other_power": 0.2788866517, "margin_db": 8.58, "tone_powers": [ 17.3551789548, 0.2788866517, 0.2606551069, 2.0099620294, 0.1907707349, 0.1295233783, 0.4946689798, 0.360813412 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 5, "expected_is_strongest": false, "expected_power": 6.2638361311, "median_other_power": 13.520584932, "margin_db": -3.34, "tone_powers": [ 1.8734055393, 6.2638361311, 0.020639422, 13.520584932, 45.4736841345, 48.5937612809, 24.2343097348, 4.3193087601 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 2.540167934, "median_other_power": 2.8509630491, "margin_db": -0.5, "tone_powers": [ 2.4969572348, 2.8509630491, 0.5390735443, 0.9612630144, 2.540167934, 5.7061275511, 6.0962895699, 7.8206392109 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 2, "expected_is_strongest": false, "expected_power": 4.0874524178, "median_other_power": 32.1616725856, "margin_db": -8.96, "tone_powers": [ 4.0874524178, 32.1616725856, 44.6136044848, 41.0325222561, 13.4502870359, 4.8651378609, 30.6400715571, 35.2854444349 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 3, "expected_is_strongest": false, "expected_power": 17.8887101311, "median_other_power": 40.7117944681, "margin_db": -3.57, "tone_powers": [ 13.9402852372, 43.1955003843, 26.1423381113, 64.765274533, 40.7117944681, 49.5993923963, 17.8887101311, 5.3220412455 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 5, "expected_is_strongest": true, "expected_power": 44.9799996221, "median_other_power": 6.0320823406, "margin_db": 8.73, "tone_powers": [ 2.4803269275, 3.2385551794, 0.2449743819, 12.719347219, 38.7758272706, 44.9799996221, 26.2882711205, 6.0320823406 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 2, "expected_is_strongest": true, "expected_power": 126.0183328645, "median_other_power": 3.3286183908, "margin_db": 15.78, "tone_powers": [ 60.3614562484, 3.3286183908, 126.0183328645, 68.385473982, 0.6968460511, 2.4586207907, 5.7049765024, 1.2567956192 ] } ] }, { "ok": true, "start_sample": 0, "start_seconds": 0.0, "base_freq_hz": 997.5, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 2, "costas_symbols": 7, "avg_margin_db": -1.75, "energy_score_db": 5.13, "candidate_score": 23.38, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 0.7574373093, "median_other_power": 3.6848101144, "margin_db": -6.87, "tone_powers": [ 5.2940811328, 1.3800646024, 3.6848101144, 0.7574373093, 1.0479827933, 1.1579306381, 6.8520932338, 23.2089986335 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 1, "expected_is_strongest": true, "expected_power": 4.4150129262, "median_other_power": 2.2349919074, "margin_db": 2.96, "tone_powers": [ 2.4249643734, 4.4150129262, 2.8917449041, 2.2349919074, 2.9106606707, 1.9480730155, 1.6877580385, 1.8284629203 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 5.6899530958, "median_other_power": 5.3042659785, "margin_db": 0.3, "tone_powers": [ 15.8538278997, 5.3042659785, 0.6419070956, 4.8888118467, 5.6899530958, 1.0789692007, 18.5359898007, 57.3933384231 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 4, "expected_is_strongest": false, "expected_power": 1.982842124, "median_other_power": 14.3592545945, "margin_db": -8.6, "tone_powers": [ 1.982842124, 16.9390971729, 8.4046160641, 14.3592545945, 34.1053962645, 22.2019008793, 0.7317198846, 9.6546958133 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 5, "expected_is_strongest": false, "expected_power": 4.189465331, "median_other_power": 3.7380904378, "margin_db": 0.5, "tone_powers": [ 3.5751962248, 3.4396744617, 3.6692699661, 4.0841583982, 4.3368622204, 4.4416916764, 4.189465331, 3.7380904378 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 0.6379810253, "median_other_power": 4.8852330357, "margin_db": -8.84, "tone_powers": [ 4.8852330357, 0.3620484095, 0.2372321291, 6.3783278345, 1.143869349, 0.6379810253, 14.0101056471, 24.2385161486 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 2, "expected_is_strongest": true, "expected_power": 180.7288680109, "median_other_power": 26.6839920559, "margin_db": 8.31, "tone_powers": [ 5.8806784937, 87.22956415, 180.7288680109, 15.5519339928, 43.2069107445, 45.0843840383, 26.6839920559, 8.4173389117 ] } ] }, { "ok": true, "start_sample": 376164, "start_seconds": 31.347, "base_freq_hz": 995.0, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 2, "costas_symbols": 7, "avg_margin_db": -0.31, "energy_score_db": 1.7, "candidate_score": 21.39, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 6, "expected_is_strongest": false, "expected_power": 2.81979192, "median_other_power": 24.0333402743, "margin_db": -9.31, "tone_powers": [ 1.025815957, 6.6169502873, 3.6879677814, 2.81979192, 24.0333402743, 32.9225518804, 206.2142734354, 29.2876166512 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 4, "expected_is_strongest": false, "expected_power": 28.2041058547, "median_other_power": 34.8142319772, "margin_db": -0.91, "tone_powers": [ 5.0370097836, 28.2041058547, 5.6868269274, 15.3951888938, 46.8968973127, 34.8142319772, 39.4956758174, 36.6638051837 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 4, "expected_is_strongest": true, "expected_power": 75.2204824776, "median_other_power": 33.5710537852, "margin_db": 3.5, "tone_powers": [ 6.383243379, 2.9399313029, 42.9179556818, 29.0858489984, 75.2204824776, 44.707426521, 33.5710537852, 56.9697627559 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 0, "expected_is_strongest": true, "expected_power": 49.2676861461, "median_other_power": 10.7350655023, "margin_db": 6.62, "tone_powers": [ 49.2676861461, 13.005893829, 10.7350655023, 2.5351177928, 4.2813717799, 11.5490095989, 2.1483278716, 10.7431751106 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 2.4250816112, "median_other_power": 2.0147927621, "margin_db": 0.8, "tone_powers": [ 42.0192683523, 23.385956237, 0.7814725504, 1.4140393548, 2.0147927621, 0.8804405098, 2.4250816112, 2.6067633255 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 0.9503542065, "median_other_power": 2.7761998626, "margin_db": -4.66, "tone_powers": [ 128.6520076517, 1.6054083107, 8.121298331, 2.7761998626, 1.6741059101, 0.9503542065, 2.5048894511, 12.2281590669 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 5, "expected_is_strongest": false, "expected_power": 50.2990306106, "median_other_power": 33.4562344869, "margin_db": 1.77, "tone_powers": [ 2.7888397578, 5.3954250241, 50.2990306106, 33.4562344869, 51.4912523107, 52.6627540486, 39.543155091, 22.9804114425 ] } ] }, { "ok": true, "start_sample": 125388, "start_seconds": 10.449, "base_freq_hz": 1000.0, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 2, "costas_symbols": 7, "avg_margin_db": -4.2, "energy_score_db": 5.42, "candidate_score": 21.22, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 3, "expected_is_strongest": true, "expected_power": 37.8753344797, "median_other_power": 4.0965167205, "margin_db": 9.66, "tone_powers": [ 0.3232782572, 4.0965167205, 16.0771445733, 37.8753344797, 35.9327809811, 20.0314855449, 3.7427238267, 0.0048488155 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 0.0124918913, "median_other_power": 0.0668083804, "margin_db": -7.28, "tone_powers": [ 0.0063229791, 0.0124918913, 0.0664451838, 0.070160255, 0.0668083804, 0.0129826636, 0.0801796397, 0.2368191094 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 5, "expected_is_strongest": false, "expected_power": 0.0632435667, "median_other_power": 0.1197367165, "margin_db": -2.77, "tone_powers": [ 0.0149520635, 0.0208516816, 0.4197801692, 0.028886112, 0.0632435667, 0.4305684371, 0.3674876549, 0.1197367165 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 0.0079585499, "median_other_power": 0.1546571804, "margin_db": -12.89, "tone_powers": [ 0.0079585499, 0.1365850307, 0.0598217765, 0.0764652302, 0.1689483201, 0.1546571804, 0.3291600579, 0.3878154861 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 0.0026623688, "median_other_power": 0.119148369, "margin_db": -16.51, "tone_powers": [ 0.119148369, 0.1004390265, 0.059667885, 0.1929030321, 0.0244484713, 0.2846466745, 0.0026623688, 0.5255379252 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 0.3292050737, "median_other_power": 0.836728941, "margin_db": -4.05, "tone_powers": [ 7.0749661163, 0.836728941, 0.2095795037, 1.3045028942, 1.2965676902, 0.3292050737, 0.0142987085, 0.2985705451 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 2, "expected_is_strongest": true, "expected_power": 77.8987343811, "median_other_power": 27.988169379, "margin_db": 4.45, "tone_powers": [ 60.3765396914, 27.988169379, 77.8987343811, 28.0474560802, 31.8587133514, 12.5417092553, 5.0721570797, 0.1350199811 ] } ] }, { "ok": true, "start_sample": 0, "start_seconds": 0.0, "base_freq_hz": 995.0, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 1, "costas_symbols": 7, "avg_margin_db": 0.84, "energy_score_db": 4.07, "candidate_score": 14.9, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 1.476497274, "median_other_power": 3.567830601, "margin_db": -3.83, "tone_powers": [ 66.2933250685, 20.3824063795, 5.9193548947, 1.476497274, 2.0148004151, 3.567830601, 1.3811529992, 3.4944246557 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 2, "expected_is_strongest": false, "expected_power": 1.9552982051, "median_other_power": 1.3988307494, "margin_db": 1.45, "tone_powers": [ 1.8157271597, 1.9552982051, 2.3945949063, 0.813503833, 1.4729452863, 1.3426781194, 0.8760349061, 1.3988307494 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 10.2563094361, "median_other_power": 6.7648799497, "margin_db": 1.81, "tone_powers": [ 53.5265292887, 22.6369365934, 6.7648799497, 1.1517669926, 10.2563094361, 3.8745150379, 6.0877335413, 27.2430726081 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 0, "expected_is_strongest": true, "expected_power": 169.4304725886, "median_other_power": 16.4818166333, "margin_db": 10.12, "tone_powers": [ 169.4304725886, 19.0123833642, 13.7215718112, 2.0611952234, 18.4028690939, 19.6629641747, 3.9333310126, 16.4818166333 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 5, "expected_is_strongest": false, "expected_power": 7.0669436491, "median_other_power": 5.158672289, "margin_db": 1.37, "tone_powers": [ 0.6438482864, 1.7748719323, 3.4751619415, 5.158672289, 6.4283782673, 7.0721907724, 7.0669436491, 6.4360667391 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 1.6304671809, "median_other_power": 2.1994478418, "margin_db": -1.3, "tone_powers": [ 1.5361871939, 7.7995101296, 0.9377623632, 1.7060720857, 6.5658798151, 1.6304671809, 2.1994478418, 8.379212324 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 3, "expected_is_strongest": false, "expected_power": 19.9079661067, "median_other_power": 47.3988037749, "margin_db": -3.77, "tone_powers": [ 0.1112577276, 4.2314313295, 19.9079661067, 205.7372299517, 59.312141364, 63.9419912641, 47.3988037749, 23.3269469294 ] } ] }, { "ok": true, "start_sample": 250776, "start_seconds": 20.898, "base_freq_hz": 992.5, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 1, "costas_symbols": 7, "avg_margin_db": 1.2, "energy_score_db": 2.32, "candidate_score": 13.53, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 1, "expected_is_strongest": false, "expected_power": 8.4219366147, "median_other_power": 0.6964989695, "margin_db": 10.82, "tone_powers": [ 34.0196919234, 54.2884207154, 17.9466739847, 8.4219366147, 0.370044387, 0.2522660779, 0.6964989695, 0.2491226716 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 1.5744113586, "median_other_power": 5.047102772, "margin_db": -5.06, "tone_powers": [ 7.5471379218, 1.5744113586, 3.3165669219, 5.047102772, 2.6269770557, 4.1094083617, 25.3798454972, 50.9773372047 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 1, "expected_is_strongest": false, "expected_power": 6.081538531, "median_other_power": 5.339422681, "margin_db": 0.57, "tone_powers": [ 70.996369596, 140.4356214139, 37.3616526085, 1.6219575929, 6.081538531, 5.1367679612, 3.4767649797, 5.339422681 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 4, "expected_is_strongest": false, "expected_power": 9.7575515899, "median_other_power": 11.931697173, "margin_db": -0.87, "tone_powers": [ 9.7575515899, 4.3310426774, 2.9603238406, 11.931697173, 53.908387283, 29.2074619404, 38.7961974768, 2.6819277714 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 6, "expected_is_strongest": true, "expected_power": 70.0594075869, "median_other_power": 23.9153887373, "margin_db": 4.67, "tone_powers": [ 7.9189060001, 2.7317202489, 15.3011108606, 23.9153887373, 47.4377438761, 26.8378695213, 70.0594075869, 33.2159495851 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 2.0855040469, "median_other_power": 1.4936444325, "margin_db": 1.45, "tone_powers": [ 1.2088707793, 0.8477181481, 0.6843246867, 2.1742844423, 1.4936444325, 2.0855040469, 19.2955625917, 46.7173789347 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 4, "expected_is_strongest": false, "expected_power": 6.066154915, "median_other_power": 12.5070127579, "margin_db": -3.14, "tone_powers": [ 1.5498049772, 0.221606051, 6.066154915, 52.5755796674, 94.0663001995, 12.5070127579, 71.074529466, 8.7079946781 ] } ] }, { "ok": true, "start_sample": 250776, "start_seconds": 20.898, "base_freq_hz": 1000.0, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 1, "costas_symbols": 7, "avg_margin_db": 0.63, "energy_score_db": 2.4, "candidate_score": 13.03, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 2, "expected_is_strongest": false, "expected_power": 0.2741113123, "median_other_power": 0.1988943681, "margin_db": 1.39, "tone_powers": [ 0.1988943681, 0.0254139281, 1.2123354536, 0.2741113123, 0.0426919398, 0.2014837457, 0.2567580187, 0.0547473981 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 3, "expected_is_strongest": false, "expected_power": 2.0347386101, "median_other_power": 17.5387837191, "margin_db": -9.35, "tone_powers": [ 3.4518786962, 2.0347386101, 20.6265660446, 49.7452518074, 40.9761031033, 17.5387837191, 1.9233989023, 0.1656888592 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 3.8023139097, "median_other_power": 3.820733236, "margin_db": -0.02, "tone_powers": [ 5.8638376215, 3.502186383, 1.7833135809, 3.3342989656, 3.8023139097, 3.820733236, 5.2881691077, 5.1536530696 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 48.0485666905, "median_other_power": 31.346116733, "margin_db": 1.85, "tone_powers": [ 48.0485666905, 31.346116733, 41.5405168803, 4.0714730048, 2.7656743586, 61.2559276385, 6.6975146985, 108.3187370367 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 2, "expected_is_strongest": false, "expected_power": 3.1347490638, "median_other_power": 32.7315981729, "margin_db": -10.19, "tone_powers": [ 48.2719996902, 23.0183136427, 72.1559010462, 32.7315981729, 48.0322210489, 11.2491535848, 3.1347490638, 0.1818576146 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 3, "expected_is_strongest": false, "expected_power": 21.7092753891, "median_other_power": 2.3402072506, "margin_db": 9.67, "tone_powers": [ 2.3402072506, 1.1411909288, 17.3200790446, 46.2696611601, 45.468405991, 21.7092753891, 2.1572404918, 0.4688247121 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 2, "expected_is_strongest": true, "expected_power": 85.4441753763, "median_other_power": 6.7004341705, "margin_db": 11.06, "tone_powers": [ 56.9505549638, 40.9180581292, 85.4441753763, 6.7004341705, 6.5231966008, 13.1342728842, 2.5320565535, 3.2077667666 ] } ] }, { "ok": true, "start_sample": 125388, "start_seconds": 10.449, "base_freq_hz": 997.5, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 1, "costas_symbols": 7, "avg_margin_db": 0.94, "energy_score_db": 1.01, "candidate_score": 11.95, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 5, "expected_is_strongest": false, "expected_power": 11.7779991611, "median_other_power": 8.9233981958, "margin_db": 1.21, "tone_powers": [ 0.4759871716, 1.37366016, 1.4012642681, 11.7779991611, 32.2061540166, 35.9069069127, 23.5813949532, 8.9233981958 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 0.0885327487, "median_other_power": 0.0296450662, "margin_db": 4.75, "tone_powers": [ 0.1239273516, 0.0885327487, 0.0901408073, 0.0840119645, 0.0075928883, 0.0009484494, 0.0285995634, 0.0296450662 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 3, "expected_is_strongest": false, "expected_power": 0.0400488699, "median_other_power": 0.0600466212, "margin_db": -1.76, "tone_powers": [ 0.0171193712, 0.0771844042, 0.0050984925, 0.1795566811, 0.0400488699, 0.0600466212, 0.1443862092, 0.0106738248 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 2, "expected_is_strongest": false, "expected_power": 0.0044772595, "median_other_power": 0.0171428418, "margin_db": -5.83, "tone_powers": [ 0.0044772595, 0.0482572958, 0.0871027634, 0.0088395573, 0.0011485553, 0.0171428418, 0.0029666595, 0.0393167369 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 6, "expected_is_strongest": true, "expected_power": 0.1530769605, "median_other_power": 0.0366033261, "margin_db": 6.21, "tone_powers": [ 0.0277651538, 0.0357945198, 0.1198887129, 0.0008770742, 0.1282720911, 0.0366033261, 0.1530769605, 0.1115022831 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 1.5072013732, "median_other_power": 1.1912288662, "margin_db": 1.02, "tone_powers": [ 23.0164039395, 9.9980995644, 1.8038756008, 0.0385568715, 1.1912288662, 1.5072013732, 0.5861102551, 0.0386638395 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 3, "expected_is_strongest": false, "expected_power": 41.3171687378, "median_other_power": 33.2362570038, "margin_db": 0.95, "tone_powers": [ 13.8977879412, 35.0357998188, 41.3171687378, 51.1412705837, 33.2362570038, 40.1162872538, 29.8484757654, 8.8877937544 ] } ] }, { "ok": true, "start_sample": 0, "start_seconds": 0.0, "base_freq_hz": 1000.0, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 1, "costas_symbols": 7, "avg_margin_db": 0.04, "energy_score_db": 0.34, "candidate_score": 10.38, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 1.1623795388, "median_other_power": 5.5593681985, "margin_db": -6.8, "tone_powers": [ 0.0201019368, 5.5593681985, 3.560923136, 1.1623795388, 2.5998263188, 15.01057777, 32.7484009657, 35.5933589666 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 1, "expected_is_strongest": true, "expected_power": 3.3817908007, "median_other_power": 2.7674260187, "margin_db": 0.87, "tone_powers": [ 3.0504518597, 3.3817908007, 2.2928213825, 3.1961763447, 3.0745172017, 2.3800602715, 2.7674260187, 2.4222101515 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 5.5063496818, "median_other_power": 5.3310982343, "margin_db": 0.14, "tone_powers": [ 4.3167614488, 5.3310982343, 0.3061995997, 6.6009257961, 5.5063496818, 2.7325221859, 29.5852856164, 60.5778090788 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 4, "expected_is_strongest": false, "expected_power": 10.5475426441, "median_other_power": 16.7774035119, "margin_db": -2.02, "tone_powers": [ 10.5475426441, 16.7774035119, 9.7155367586, 28.5020153211, 46.494309558, 26.9384064007, 4.7378968962, 6.9290504866 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 2.6649876852, "median_other_power": 5.5708074194, "margin_db": -3.2, "tone_powers": [ 7.3991673263, 7.0298584549, 6.4469814956, 5.5708074194, 4.6345601856, 3.609363256, 2.6649876852, 1.8232925044 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 16.5746265044, "median_other_power": 1.3700543323, "margin_db": 10.83, "tone_powers": [ 0.694076994, 1.0194198313, 3.5219439527, 1.3700543323, 0.526114248, 16.5746265044, 32.8492898177, 46.2551679027 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 27.9416741111, "median_other_power": 25.2339675075, "margin_db": 0.44, "tone_powers": [ 169.370708018, 143.8966728927, 27.9416741111, 25.8447907971, 25.2339675075, 16.1115239717, 5.6759474404, 0.8678089007 ] } ] }, { "ok": true, "start_sample": 125388, "start_seconds": 10.449, "base_freq_hz": 995.0, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 1, "costas_symbols": 7, "avg_margin_db": -2.5, "energy_score_db": -4.83, "candidate_score": 2.67, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 6, "expected_is_strongest": false, "expected_power": 0.1927681051, "median_other_power": 8.4818090785, "margin_db": -16.43, "tone_powers": [ 0.4961475068, 2.077049271, 2.9863294972, 0.1927681051, 8.4818090785, 24.6368358047, 37.4273803581, 30.3278776508 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 0.159255154, "median_other_power": 0.0916734139, "margin_db": 2.4, "tone_powers": [ 0.2243235671, 0.159255154, 0.1065117816, 0.0916734139, 0.046007479, 0.0114905471, 0.066668776, 0.1357639224 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 5, "expected_is_strongest": false, "expected_power": 0.0263497219, "median_other_power": 0.010789338, "margin_db": 3.88, "tone_powers": [ 0.010789338, 0.0075453651, 0.1726759429, 0.0011391228, 0.0263497219, 0.2937210418, 0.1007569823, 0.0097323388 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 2, "expected_is_strongest": false, "expected_power": 0.0527502504, "median_other_power": 0.0704481091, "margin_db": -1.26, "tone_powers": [ 0.0527502504, 0.0422205287, 0.1832745055, 0.0704481091, 0.0824316157, 0.0515390835, 0.0494512649, 0.118334226 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 6, "expected_is_strongest": true, "expected_power": 0.1742607888, "median_other_power": 0.0642384041, "margin_db": 4.33, "tone_powers": [ 0.0053825375, 0.0642384041, 0.0026029491, 0.1642932616, 0.0424317759, 0.1324476264, 0.1742607888, 0.121158776 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 0.7565476408, "median_other_power": 3.2792832869, "margin_db": -6.37, "tone_powers": [ 33.0665941371, 25.7191405044, 12.8975864877, 3.2792832869, 0.0409158696, 0.7565476408, 1.3792590385, 0.7663972924 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 5, "expected_is_strongest": false, "expected_power": 15.1038685671, "median_other_power": 38.093952294, "margin_db": -4.02, "tone_powers": [ 2.3564825283, 16.8109271024, 15.1038685671, 60.4387952028, 29.4714864264, 64.8428248401, 46.9652499795, 38.093952294 ] } ] }, { "ok": true, "start_sample": 250776, "start_seconds": 20.898, "base_freq_hz": 995.0, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 0, "costas_symbols": 7, "avg_margin_db": -0.44, "energy_score_db": 0.49, "candidate_score": 0.06, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 0.584352513, "median_other_power": 1.3944873333, "margin_db": -3.78, "tone_powers": [ 44.040653819, 18.0770219371, 2.5500112089, 0.584352513, 1.3944873333, 0.0811627012, 0.199523473, 0.379283633 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 6, "expected_is_strongest": false, "expected_power": 3.8323153477, "median_other_power": 9.1557857812, "margin_db": -3.78, "tone_powers": [ 1.2290873154, 3.8323153477, 7.8625398694, 1.1219459439, 9.1557857812, 37.0642234764, 52.0405583269, 30.2759865678 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 0, "expected_is_strongest": false, "expected_power": 4.7081524304, "median_other_power": 7.6888124478, "margin_db": -2.13, "tone_powers": [ 147.261863721, 10.2118287502, 1.0833312293, 3.0037735138, 4.7081524304, 5.0315046913, 8.3852432699, 7.6888124478 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 3, "expected_is_strongest": false, "expected_power": 6.6076079173, "median_other_power": 19.8467098508, "margin_db": -4.78, "tone_powers": [ 6.6076079173, 1.6346421184, 19.8467098508, 56.7644945213, 33.5404618563, 27.5001352263, 3.9353126718, 8.8419051161 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 5, "expected_is_strongest": false, "expected_power": 41.2205845603, "median_other_power": 33.3635902066, "margin_db": 0.92, "tone_powers": [ 3.3450552348, 12.4179470442, 33.3635902066, 38.4140297861, 44.9478551315, 56.7257090006, 41.2205845603, 29.9131740796 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 6, "expected_is_strongest": false, "expected_power": 26.9658391206, "median_other_power": 2.5084469441, "margin_db": 10.31, "tone_powers": [ 0.2612756002, 1.5487965313, 2.5084469441, 0.1505864245, 6.5381970669, 26.9658391206, 44.7079240369, 34.9120055917 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 3, "expected_is_strongest": false, "expected_power": 13.8331845284, "median_other_power": 13.2803151754, "margin_db": 0.18, "tone_powers": [ 1.3188174641, 30.40621177, 13.8331845284, 153.5759402486, 13.2803151754, 22.3200049092, 4.8156120707, 4.3233125578 ] } ] } ], "decodes": [], "warnings": [ "No JS8 text decode is expected in Step 54. Final real LDPC/FEC and Varicode/message unpack are not implemented yet.", "Costas7 scoring is a lab candidate extractor; real decoder validation requires actual JS8 WAV samples." ], "next_action": "Run sync-probe on real JS8 WAV captures. If stable sync_candidates appear, Step 54 can continue soft-symbol metric extraction for the LDPC/FEC path." } [webftr-js8-lab] step82 sync-probe exit_code=0 ========== STEP82 4/4: REAL WAV REGRESSION SUMMARY ========== [webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260528T031839Z_real_wav_full_chain_regression_output.json [webftr-js8-lab] JSON timeout guard: 180s { "ok": true, "tool": "webftr-js8-real-wav-full-chain-regression", "tool_version": "step82-real-wav-full-chain-regression", "schema": "webftr-js8-real-wav-full-chain-regression-v1", "created_utc": "2026-05-28T03:19:08Z", "rx_only": true, "safety": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false, "webftr_productive_integration": false }, "purpose": "Make the default Step82 run visibly re-read the real JS8 WAV and perform the fast audio path before later source/JSC logic is considered.", "verdict": "step82_real_wav_regression_complete", "input_wav": "/decoders/js8_test.wav", "analysis_wav": "/decoders/js8_decoder/runtime/step82_quick_windows/js8_quick_selected_window.wav", "wav_was_read": true, "wav_duration_seconds": 192.016583, "quick_window_selected": true, "selected_window": { "start_seconds": 18.0, "end_seconds": 78.0, "duration_seconds": 60.0, "avg_activity_score": -6.286, "active_chunks": 10, "chunk_count": 10, "selection_score": 18.714, "window_wav": "/decoders/js8_decoder/runtime/step82_quick_windows/js8_quick_selected_window.wav", "tone_candidates": [ { "freq_hz": 1000.0, "relative_db": 0.0, "power": 15.76347305 }, { "freq_hz": 1025.0, "relative_db": -0.8, "power": 13.10923242 }, { "freq_hz": 2025.0, "relative_db": -14.3, "power": 0.58516574 }, { "freq_hz": 975.0, "relative_db": -16.4, "power": 0.3608126 }, { "freq_hz": 1050.0, "relative_db": -29.42, "power": 0.01801849 }, { "freq_hz": 1525.0, "relative_db": -32.35, "power": 0.00916685 }, { "freq_hz": 1825.0, "relative_db": -32.46, "power": 0.00893784 }, { "freq_hz": 1925.0, "relative_db": -34.06, "power": 0.00619164 }, { "freq_hz": 1650.0, "relative_db": -34.23, "power": 0.0059545 }, { "freq_hz": 2575.0, "relative_db": -34.47, "power": 0.00562689 }, { "freq_hz": 1625.0, "relative_db": -34.8, "power": 0.00521457 }, { "freq_hz": 950.0, "relative_db": -35.04, "power": 0.00494236 } ] }, "selected_window_wav": "/decoders/js8_decoder/runtime/step82_quick_windows/js8_quick_selected_window.wav", "sync_candidate_count": 12, "best_sync_candidate": { "ok": true, "start_sample": 376164, "start_seconds": 31.347, "base_freq_hz": 1000.0, "tone_spacing_hz": 1.937984, "nsps": 6192, "costas_pattern": [ 3, 1, 4, 0, 6, 5, 2 ], "costas_hits": 2, "costas_symbols": 7, "avg_margin_db": 2.4, "energy_score_db": 5.26, "candidate_score": 27.66, "symbols": [ { "symbol": 0, "expected_tone": 3, "strongest_tone": 3, "expected_is_strongest": true, "expected_power": 173.3098525436, "median_other_power": 4.0136394344, "margin_db": 16.35, "tone_powers": [ 15.9425535414, 16.7064438607, 3.6144531567, 173.3098525436, 95.4717245231, 2.9193626913, 4.0136394344, 0.1693303583 ] }, { "symbol": 1, "expected_tone": 1, "strongest_tone": 3, "expected_is_strongest": false, "expected_power": 28.1803520794, "median_other_power": 18.8050880779, "margin_db": 1.76, "tone_powers": [ 20.9762208024, 28.1803520794, 5.7419781066, 71.0558343619, 24.7557112336, 18.8050880779, 2.0989356467, 0.2430214014 ] }, { "symbol": 2, "expected_tone": 4, "strongest_tone": 2, "expected_is_strongest": false, "expected_power": 71.6248687943, "median_other_power": 38.8187957059, "margin_db": 2.66, "tone_powers": [ 38.8187957059, 45.4486252133, 72.3087962275, 34.7312575895, 71.6248687943, 1.77870258, 40.2071552171, 29.3427085469 ] }, { "symbol": 3, "expected_tone": 0, "strongest_tone": 7, "expected_is_strongest": false, "expected_power": 0.2622539501, "median_other_power": 6.4065684994, "margin_db": -13.88, "tone_powers": [ 0.2622539501, 5.3123464342, 6.4065684994, 0.0185561141, 4.0123103831, 16.6485585208, 30.7318605032, 45.2413496556 ] }, { "symbol": 4, "expected_tone": 6, "strongest_tone": 2, "expected_is_strongest": false, "expected_power": 5.0109164476, "median_other_power": 4.7646757363, "margin_db": 0.22, "tone_powers": [ 4.0082543216, 2.6972288443, 7.2574165131, 5.6821055182, 4.7646757363, 6.2751230304, 5.0109164476, 3.9892771877 ] }, { "symbol": 5, "expected_tone": 5, "strongest_tone": 6, "expected_is_strongest": false, "expected_power": 16.3535460217, "median_other_power": 3.8125993628, "margin_db": 6.32, "tone_powers": [ 3.255794393, 3.8125993628, 0.106178069, 3.3903884596, 10.6058363401, 16.3535460217, 21.3440985425, 20.457437264 ] }, { "symbol": 6, "expected_tone": 2, "strongest_tone": 2, "expected_is_strongest": true, "expected_power": 69.0973179158, "median_other_power": 31.8068413839, "margin_db": 3.37, "tone_powers": [ 46.9814165652, 31.8068413839, 69.0973179158, 32.7987510886, 39.5558795637, 8.4831093131, 1.3130524868, 0.2201954402 ] } ], "symbol_preview": [ { "symbol": 0, "tone_index": 3, "confidence_db": 2.59, "powers": [ 15.9425535414, 16.7064438607, 3.6144531567, 173.3098525436, 95.4717245231, 2.9193626913, 4.0136394344, 0.1693303583 ] }, { "symbol": 1, "tone_index": 3, "confidence_db": 4.02, "powers": [ 20.9762208024, 28.1803520794, 5.7419781066, 71.0558343619, 24.7557112336, 18.8050880779, 2.0989356467, 0.2430214014 ] }, { "symbol": 2, "tone_index": 2, "confidence_db": 0.04, "powers": [ 38.8187957059, 45.4486252133, 72.3087962275, 34.7312575895, 71.6248687943, 1.77870258, 40.2071552171, 29.3427085469 ] }, { "symbol": 3, "tone_index": 7, "confidence_db": 1.68, "powers": [ 0.2622539501, 5.3123464342, 6.4065684994, 0.0185561141, 4.0123103831, 16.6485585208, 30.7318605032, 45.2413496556 ] }, { "symbol": 4, "tone_index": 2, "confidence_db": 0.63, "powers": [ 4.0082543216, 2.6972288443, 7.2574165131, 5.6821055182, 4.7646757363, 6.2751230304, 5.0109164476, 3.9892771877 ] }, { "symbol": 5, "tone_index": 6, "confidence_db": 0.18, "powers": [ 3.255794393, 3.8125993628, 0.106178069, 3.3903884596, 10.6058363401, 16.3535460217, 21.3440985425, 20.457437264 ] }, { "symbol": 6, "tone_index": 2, "confidence_db": 1.68, "powers": [ 46.9814165652, 31.8068413839, 69.0973179158, 32.7987510886, 39.5558795637, 8.4831093131, 1.3130524868, 0.2201954402 ] }, { "symbol": 7, "tone_index": 6, "confidence_db": 0.36, "powers": [ 0.0629283536, 3.0124650248, 2.468160732, 0.2225482449, 4.4643187524, 18.5556593714, 38.6239050934, 35.5384115811 ] }, { "symbol": 8, "tone_index": 0, "confidence_db": 3.58, "powers": [ 51.7003137421, 22.6654786526, 10.2647749623, 0.7338068813, 0.5959166114, 1.0856570407, 0.5900548002, 0.2839134732 ] }, { "symbol": 9, "tone_index": 3, "confidence_db": 1.07, "powers": [ 1.4796655515, 12.1054506125, 33.4390522719, 42.7952693524, 29.2713114212, 13.1339502314, 0.838227994, 0.3977469966 ] }, { "symbol": 10, "tone_index": 0, "confidence_db": 7.05, "powers": [ 3.8021340128, 0.7507762707, 0.2978649112, 0.0865288349, 0.4188550056, 0.3510137616, 0.3321666239, 0.0771960487 ] }, { "symbol": 11, "tone_index": 6, "confidence_db": 0.3, "powers": [ 0.0210093782, 1.5143422975, 3.7724887739, 0.4083904831, 3.7523006972, 24.1449148934, 40.0439871543, 37.3772424523 ] }, { "symbol": 12, "tone_index": 6, "confidence_db": 0.41, "powers": [ 0.0109343582, 1.9233440029, 2.579563716, 0.2904271254, 4.0535156863, 21.1102304339, 41.820006292, 38.0891239855 ] }, { "symbol": 13, "tone_index": 5, "confidence_db": 1.02, "powers": [ 0.172114006, 0.1445949201, 0.1822446788, 0.1639477524, 0.157369185, 0.2304836028, 0.149017709, 0.1303750464 ] }, { "symbol": 14, "tone_index": 1, "confidence_db": 2.25, "powers": [ 0.158294336, 0.8024176986, 0.4774565415, 0.171771953, 0.3435910183, 0.2150891283, 0.0664453529, 0.0117068462 ] }, { "symbol": 15, "tone_index": 0, "confidence_db": 2.82, "powers": [ 0.9429973402, 0.2194876093, 0.4927987108, 0.296484266, 0.2724135549, 0.3059153636, 0.1171919035, 0.2277210294 ] }, { "symbol": 16, "tone_index": 2, "confidence_db": 1.05, "powers": [ 0.9886947642, 15.2533994562, 46.4017479022, 36.4288409122, 33.5023068387, 4.1614953364, 1.6047486967, 1.5781366508 ] }, { "symbol": 17, "tone_index": 2, "confidence_db": 0.29, "powers": [ 38.0082486891, 50.2272680621, 53.7458997861, 39.5879636035, 28.3147057357, 5.5691491742, 0.8237785114, 0.9557250636 ] }, { "symbol": 18, "tone_index": 1, "confidence_db": 1.57, "powers": [ 0.0918783675, 0.307797933, 0.1050100761, 0.0141874336, 0.1515434304, 0.2145300217, 0.1105823567, 0.0880243845 ] }, { "symbol": 19, "tone_index": 6, "confidence_db": 0.74, "powers": [ 0.0868825702, 0.0397866232, 0.1686785232, 0.0927654971, 0.0154835097, 0.1791772439, 0.2125035654, 0.0792307676 ] }, { "symbol": 20, "tone_index": 6, "confidence_db": 0.24, "powers": [ 0.0086936555, 0.0628387052, 0.0498876206, 0.0421193635, 0.1264136464, 0.1308918823, 0.1449241888, 0.1370848814 ] }, { "symbol": 21, "tone_index": 5, "confidence_db": 0.26, "powers": [ 0.0039904011, 0.0008005547, 0.0273221681, 0.0195367608, 0.0129234533, 0.0325339455, 0.0306277596, 0.0214755839 ] }, { "symbol": 22, "tone_index": 6, "confidence_db": 2.65, "powers": [ 0.1788142554, 0.4853471741, 0.2694809704, 0.4544718388, 0.6492196999, 0.3152692631, 1.1938135494, 0.4456102593 ] }, { "symbol": 23, "tone_index": 1, "confidence_db": 5.18, "powers": [ 0.181050027, 1.6778984579, 0.4701928836, 0.307478218, 0.1431618802, 0.5094538581, 0.0631630623, 0.0575143534 ] }, { "symbol": 24, "tone_index": 1, "confidence_db": 1.35, "powers": [ 33.2015442878, 62.2968777169, 43.8426328549, 45.6891069921, 19.6205599411, 5.8107647037, 0.0185971127, 0.6717585263 ] }, { "symbol": 25, "tone_index": 4, "confidence_db": 0.16, "powers": [ 2.5571353043, 3.8143679082, 2.4766498838, 3.4608756257, 3.9561522002, 2.7219017493, 2.8968871756, 2.4777395482 ] } ] }, "exit_codes": { "input_check": 0, "quick_window_scan": 0, "sync_probe": 0 }, "outputs": { "input_check_json": "/decoders/js8_decoder/logs/20260528T031839Z_step82_input_check_output.json", "quick_window_scan_json": "/decoders/js8_decoder/logs/20260528T031839Z_step82_quick_window_scan_output.json", "sync_probe_json": "/decoders/js8_decoder/logs/20260528T031839Z_step82_sync_probe_output.json" }, "output_stats": { "input_check_json": { "path": "/decoders/js8_decoder/logs/20260528T031839Z_step82_input_check_output.json", "exists": true, "is_file": true, "size": 698, "mtime_utc": "2026-05-28T03:18:39Z" }, "quick_window_scan_json": { "path": "/decoders/js8_decoder/logs/20260528T031839Z_step82_quick_window_scan_output.json", "exists": true, "is_file": true, "size": 8839, "mtime_utc": "2026-05-28T03:18:52Z" }, "sync_probe_json": { "path": "/decoders/js8_decoder/logs/20260528T031839Z_step82_sync_probe_output.json", "exists": true, "is_file": true, "size": 60947, "mtime_utc": "2026-05-28T03:19:07Z" }, "selected_window_wav": { "path": "/decoders/js8_decoder/runtime/step82_quick_windows/js8_quick_selected_window.wav", "exists": true, "is_file": true, "size": 1440044, "mtime_utc": "2026-05-28T03:18:40Z" } }, "latest_previous_contracts": { "step68_webftr_rx_ui_contract": { "path": "/decoders/js8_decoder/logs/js8_webftr_rx_ui_contract_latest.json", "stat": { "path": "/decoders/js8_decoder/logs/js8_webftr_rx_ui_contract_latest.json", "exists": true, "is_file": true, "size": 5935, "mtime_utc": "2026-05-27T18:16:44Z" }, "preview": { "ok": true, "tool": "webftr-js8-webftr-rx-ui-contract-export", "tool_version": "step69-jsc-decompress-source-audit-probe", "schema": "webftr-js8-rx-ui-contract-v1", "rx_only_guard": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false, "webftr_productive_integration": false }, "no_gui_runtime_started": true, "root": "/decoders/js8_decoder", "log_dir": "/decoders/js8_decoder/logs", "input_reports": [ { "path": "/decoders/js8_decoder/logs/20260527T180708Z_source_confirmed_control_frame_rx_release_output.json", "exists": true, "selected_latest_step67": true, "webftr_display_count": 2 } ], "source_step67_version": "step67-source-confirmed-control-frame-rx-release", "source_webftr_display_count": 2, "source_hidden_candidate_count": 0, "webftr_rx_ui_count": 2, "webftr_rx_rows": [ { "id": "js8-ui68-80c34aaa298675", "source_row_id": "js8-rx67-de15d3110b0d", "mode": "JS8", "protocol": "JS8", "decoder": "JS8Lab Step68 guarded control-frame contract", "row_type": "control_frame", "frame_type": "FrameHeartbeat", "status": "HB", "from": "004REY/0V4", "to": "@HB", "grid": "OJ16", "command": "HB", "message": "HB 004REY/0V4 OJ16", "text": "HB 004REY/0V4 OJ16", "display_text": "HB 004REY/0V4 OJ16", "raw_message174": "001XqOA2iDZ0", "valid_message174_crc12": true, "crc12_distance": 0, "received_crc12": 2920, "computed_crc12": 2920, "confidence": "high", "confidence_score": 6, "confidence_reasons": [ "valid_heartbeat_callsign", "valid_heartbeat_grid" ], "show_in_rx_list": true, "ui_badge": "HB", "ui_title": "HB 004REY/0V4 OJ16", "ui_subtitle": "004REY/0V4 → @HB OJ16", "sort_index": 0, "rx_only": true, "source": { "source_file": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json", "json_path": "$.best_candidate.candidate_bits", "source_kind": "generic_bit_list", "row_index": 237, "map_name": "raw", "map_source": null }, "release_guard": "step67_source_confirmed_fixed_control_frame_only", "candidate_class": "webftr_control_frame_display_ready" }, { "id": "js8-ui68-50f4e1e7052c17", "source_row_id": "js8-rx67-bd37f68199eb", "mode": "JS8", "protocol": "JS8", "decoder": "JS8Lab Step68 guarded control-frame contract", "row_type": "control_frame", "frame_type": "FrameDirected", "status": "INFO", "from": "9I2TZR/P", "to": "0Z0PMP", "grid": "", "command": "INFO", "message": "INFO 28", "text": "9I2TZR/P 0Z0PMP INFO 28", "display_text": "9I2TZR/P 0Z0PMP INFO 28", "raw_message174": "Q0VsKWqfJ96x", "valid_message174_crc12": true, "crc12_distance": 0, "received_crc12": 980, "computed_crc12": 980, "confidence": "high", "confidence_score": 10, "confidence_reasons": [ "valid_directed_from", "valid_directed_to", "directed_command" ], "show_in_rx_list": true, "ui_badge": "INFO", "ui_title": "9I2TZR/P 0Z0PMP INFO 28", "ui_subtitle": "9I2TZR/P → 0Z0PMP", "sort_index": 1, "rx_only": true, "source": { "source_file": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json", "json_path": "$.top_llr_row_exports[6].hard_bits", "source_kind": "generic_bit_list", "row_index": 82, "map_name": "raw", "map_source": null }, "release_guard": "step67_source_confirmed_fixed_control_frame_only", "candidate_class": "webftr_control_frame_display_ready" } ], "ui_contract": { "polling_target": "logs/js8_webftr_rx_ui_contract_latest.json", "rows_key": "webftr_rx_rows", "display_fields": [ "mode", "status", "from", "to", "grid", "message", "display_text", "confidence" ], "dedupe_key": "id", "sort_key": "sort_index", "current_scope": "source-confirmed fixed JS8 control frames only", "blocked_scope": "FrameData and FrameDataCompressed remain excluded until JSC::decompress and multi-frame assembly are source-ported." }, "webftr_adapter_hint": { "safe_to_poll_read_only": true, "productive_integration": false, "suggested_module": "JS8 RX preview / diagnostics panel", "do_not_merge_as_chat_text_yet": true, "note": "This contract is stable enough for WebFTR display experiments, but it is still diagnostic and control-frame-only." }, "suppressed_candidates": [], "source_release_decisions": [ { "source_candidate_id": "js8-frame66-bf1ce62fdb4a", "raw_message174": "001XqOA2iDZ0", "frame_type": "FrameHeartbeat", "decision": "released_source_confirmed_control_frame", "sort_index": 0, "released_row_id": "js8-rx67-de15d3110b0d" }, { "source_candidate_id": "js8-frame66-66ab29ded46c", "raw_message174": "Q0VsKWqfJ96x", "frame_type": "FrameDirected", "decision": "released_source_confirmed_control_frame", "sort_index": 1, "released_row_id": "js8-rx67-bd37f68199eb" } ], "verdict": "webftr_rx_ui_contract_ready_control_frames_only", "warnings": [ "Step68 remains RX-only and does not start JS8Call GUI/Qt.", "Only Step67 source-confirmed fixed control frames are exported for UI display.", "Normal JS8 free text still needs JSC::decompress and multi-frame assembly before productive display." ], "next_action": "Use this contract as a read-only WebFTR JS8 RX preview source; next research step is source-porting JSC::decompress/multi-frame assembly for free text." } }, "step79_compressed_text_release_gate": { "path": "/decoders/js8_decoder/logs/js8_compressed_text_release_gate_latest.json", "stat": { "path": "/decoders/js8_decoder/logs/js8_compressed_text_release_gate_latest.json", "exists": true, "is_file": true, "size": 3100, "mtime_utc": "2026-05-28T02:49:01Z" }, "preview": { "ok": true, "tool": "webftr-js8-real-compressed-text-release-gate", "tool_version": "step79-real-compressed-text-release-gate", "schema": "webftr-js8-real-compressed-text-release-gate-v1", "created_utc": "2026-05-28T02:49:00Z", "rx_only_guard": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false, "webftr_productive_integration": false }, "no_gui_runtime_started": true, "root": "/decoders/js8_decoder", "log_dir": "/decoders/js8_decoder/logs", "state": "waiting_for_real_external_compressed_fixture", "step78_state": "operator_commands_ready_waiting_for_real_fixture", "step74_verdict": "fixture_gate_selftest_ready_waiting_for_real_compressed_frame_fixture", "external_fixture_count": 0, "external_fixture_pass_count": 0, "external_source_comparison_pass_count": 0, "synthetic_selftest_all_passed": true, "jsc_entry_count": 200000, "allow_experimental_lab_display": false, "release_candidate_count": 0, "release_candidate_rows": [], "webftr_rx_rows": [], "webftr_display_count": 0, "webftr_adapter_hint": { "safe_to_poll_read_only": true, "productive_integration": false, "step68_contract_remains_current_stable_ui_source": true, "compressed_text_latest": "/logs/js8_compressed_text_release_gate_latest.json", "do_not_merge_as_productive_chat_text_yet": true, "lab_display_requires_flag": "JS8LAB_ALLOW_EXPERIMENTAL_COMPRESSED_TEXT_RELEASE=1" }, "release_gate_policy": { "requires_external_source_comparison": true, "requires_expected_text_match": true, "requires_jsc_complete": true, "releases_only_single_frame_FrameDataCompressed": true, "multi_frame_assembly_validated": false, "productive_webftr_integration_allowed": false, "tx_ptt_tune_send_allowed": false }, "helper_files": { "step78_readme": "/decoders/js8_decoder/runtime/fixtures/README_STEP78_REAL_FIXTURE_COMMAND_EXPORT.md", "step78_print_helper": "/decoders/js8_decoder/runtime/fixtures/step78_print_fixture_commands.sh", "target_fixture_file": "/decoders/js8_decoder/runtime/fixtures/js8_compressed_frame_fixtures.json", "step74_gate_latest": "/decoders/js8_decoder/logs/js8_compressed_frame_fixture_gate_latest.json", "step78_command_latest": "/decoders/js8_decoder/logs/js8_real_fixture_command_export_latest.json" }, "warnings": [ "Step79 is a release gate, not productive WebFTR integration.", "Without a real externally confirmed compressed fixture, no compressed JS8 text is released.", "Even with a validated fixture, lab display rows require an explicit flag and multi-frame assembly remains unvalidated.", "RX-only safety remains enforced: no JS8Call runtime control and no TX/PTT/Tune/Send." ], "verdict": "release_gate_ready_but_waiting_for_external_fixture", "next_action": "Import one externally confirmed compressed FrameDataCompressed fixture using the Step78/76 helpers, then rerun Step79.", "stable_latest_written": "/decoders/js8_decoder/logs/js8_compressed_text_release_gate_latest.json" } }, "step81_jsc_cpp_reference_compare": { "path": "/decoders/js8_decoder/logs/js8_jsc_cpp_reference_compare_latest.json", "stat": { "path": "/decoders/js8_decoder/logs/js8_jsc_cpp_reference_compare_latest.json", "exists": true, "is_file": true, "size": 14399, "mtime_utc": "2026-05-28T03:07:38Z" }, "preview": { "ok": true, "tool": "webftr-js8-jsc-cpp-reference-map-transport-fix", "tool_version": "step81-jsc-cpp-reference-map-transport-fix", "schema": "webftr-js8-jsc-cpp-reference-map-transport-fix-v1", "created_utc": "2026-05-28T03:07:38Z", "rx_only_guard": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false, "webftr_productive_integration": false }, "no_gui_runtime_started": true, "root": "/decoders/js8_decoder", "log_dir": "/decoders/js8_decoder/logs", "state": "cpp_reference_compare_passed_waiting_for_real_fixture", "source_resolution": { "source_dir": "/decoders/js8_decoder/runtime/src/JS8Call-improved", "source_found": true, "checked": [ { "path": "/decoders/js8_decoder/runtime/src/JS8Call-improved", "exists": true, "is_dir": true } ] }, "jsc_map": { "ok": true, "source_file": "JS8_JSC/JSC_map.cpp", "entry_count": 200000, "declared_size": 262144, "declared_size_matches": false, "map_fingerprint_sha256": "edbc4c529a809c0e900f2ad443aefe6cca271f1f6df52f6e651b4997b3d4d949", "sample_entries": [ "E", "T", "A", "O", "I", "N", "S", "H", "R", "D", "L", "C", "U", "M", "W", "F", "G", "Y", "P", "B" ], "attempts": [ { "path": "JS8_JSC/JSC_map.cpp", "bytes": 7082880, "sha256": "ab2bd62ef594f4629a2c93b6de43f5469b1fd6fe67ebf4d24f915bd11ccef813", "declared_size": 262144, "parsed_entry_count": 200000, "sample": [ "E", "T", "A", "O", "I", "N", "S", "H", "R", "D", "L", "C" ] } ] }, "cpp_reference_harness": { "work_dir": "/decoders/js8_decoder/runtime/jsc_cpp_reference_step81", "map_transport": "hex-lines-utf8-v1", "available": true, "compiled": true, "ran": true, "reason": null, "returncode": 0, "stderr_tail": "" }, "comparison": { "fixture_count": 36, "pass_count": 36, "all_passed": true, "rows": [ { "index": 121, "word": "CQ", "separate": false, "bits": "0111111000100", "python_text": "CQ", "cpp_text": "CQ", "expected_text": "CQ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 121, "word": "CQ", "separate": true, "bits": "0111111000101", "python_text": "CQ ", "cpp_text": "CQ ", "expected_text": "CQ ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 240, "word": "TEST", "separate": false, "bits": "1001110100100", "python_text": "TEST", "cpp_text": "TEST", "expected_text": "TEST", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 240, "word": "TEST", "separate": true, "bits": "1001110100101", "python_text": "TEST ", "cpp_text": "TEST ", "expected_text": "TEST ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 6571, "word": "HELLO", "separate": false, "bits": "011110001011100001010", "python_text": "HELLO", "cpp_text": "HELLO", "expected_text": "HELLO", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 6571, "word": "HELLO", "separate": true, "bits": "011110001011100001011", "python_text": "HELLO ", "cpp_text": "HELLO ", "expected_text": "HELLO ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 125, "word": "DE", "separate": false, "bits": "0111111001100", "python_text": "DE", "cpp_text": "DE", "expected_text": "DE", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 125, "word": "DE", "separate": true, "bits": "0111111001101", "python_text": "DE ", "cpp_text": "DE ", "expected_text": "DE ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 0, "word": "E", "separate": false, "bits": "00000", "python_text": "E", "cpp_text": "E", "expected_text": "E", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 0, "word": "E", "separate": true, "bits": "00001", "python_text": "E ", "cpp_text": "E ", "expected_text": "E ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 1, "word": "T", "separate": false, "bits": "00010", "python_text": "T", "cpp_text": "T", "expected_text": "T", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 1, "word": "T", "separate": true, "bits": "00011", "python_text": "T ", "cpp_text": "T ", "expected_text": "T ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 2, "word": "A", "separate": false, "bits": "00100", "python_text": "A", "cpp_text": "A", "expected_text": "A", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 2, "word": "A", "separate": true, "bits": "00101", "python_text": "A ", "cpp_text": "A ", "expected_text": "A ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 67, "word": " ", "separate": false, "bits": "111101000", "python_text": " ", "cpp_text": " ", "expected_text": " ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 67, "word": " ", "separate": true, "bits": "111101001", "python_text": " ", "cpp_text": " ", "expected_text": " ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 3, "word": "O", "separate": false, "bits": "00110", "python_text": "O", "cpp_text": "O", "expected_text": "O", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 3, "word": "O", "separate": true, "bits": "00111", "python_text": "O ", "cpp_text": "O ", "expected_text": "O ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 6, "word": "S", "separate": false, "bits": "01100", "python_text": "S", "cpp_text": "S", "expected_text": "S", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 6, "word": "S", "separate": true, "bits": "01101", "python_text": "S ", "cpp_text": "S ", "expected_text": "S ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 7, "word": "H", "separate": false, "bits": "011100000", "python_text": "H", "cpp_text": "H", "expected_text": "H", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 7, "word": "H", "separate": true, "bits": "011100001", "python_text": "H ", "cpp_text": "H ", "expected_text": "H ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 8, "word": "R", "separate": false, "bits": "011100010", "python_text": "R", "cpp_text": "R", "expected_text": "R", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 8, "word": "R", "separate": true, "bits": "011100011", "python_text": "R ", "cpp_text": "R ", "expected_text": "R ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 15, "word": "F", "separate": false, "bits": "100000010", "python_text": "F", "cpp_text": "F", "expected_text": "F", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 15, "word": "F", "separate": true, "bits": "100000011", "python_text": "F ", "cpp_text": "F ", "expected_text": "F ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 31, "word": ")", "separate": false, "bits": "101000110", "python_text": ")", "cpp_text": ")", "expected_text": ")", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 31, "word": ")", "separate": true, "bits": "101000111", "python_text": ") ", "cpp_text": ") ", "expected_text": ") ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 100, "word": "BD", "separate": false, "bits": "0111101100100", "python_text": "BD", "cpp_text": "BD", "expected_text": "BD", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 100, "word": "BD", "separate": true, "bits": "0111101100101", "python_text": "BD ", "cpp_text": "BD ", "expected_text": "BD ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 1000, "word": "TNU", "separate": false, "bits": "01111100110101100", "python_text": "TNU", "cpp_text": "TNU", "expected_text": "TNU", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 1000, "word": "TNU", "separate": true, "bits": "01111100110101101", "python_text": "TNU ", "cpp_text": "TNU ", "expected_text": "TNU ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 12345, "word": "EB33", "separate": false, "bits": "100010011100111001000", "python_text": "EB33", "cpp_text": "EB33", "expected_text": "EB33", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 12345, "word": "EB33", "separate": true, "bits": "100010011100111001001", "python_text": "EB33 ", "cpp_text": "EB33 ", "expected_text": "EB33 ", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 199999, "word": "LSYR", "separate": false, "bits": "1010100101111100101100100", "python_text": "LSYR", "cpp_text": "LSYR", "expected_text": "LSYR", "python_complete": true, "cpp_complete": true, "passes": true }, { "index": 199999, "word": "LSYR", "separate": true, "bits": "1010100101111100101100101", "python_text": "LSYR ", "cpp_text": "LSYR ", "expected_text": "LSYR ", "python_complete": true, "cpp_complete": true, "passes": true } ] }, "release_gate_status": { "compressed_text_release_allowed": false, "productive_webftr_integration_allowed": false, "step79_release_gate_still_required": true, "external_fixture_still_required": true, "multi_frame_assembly_validated": false }, "webftr_adapter_hint": { "safe_to_poll_read_only": true, "productive_integration": false, "step68_contract_remains_current_stable_ui_source": true, "cpp_reference_latest": "/logs/js8_jsc_cpp_reference_compare_latest.json", "do_not_merge_as_productive_chat_text_yet": true }, "warnings": [ "Step81 compares the Python JSC decompressor against an independent C++ harness using the source-extracted JSC map with a hex length-safe map transport.", "It still does not prove a real RF/JS8Call FrameDataCompressed text fixture.", "Compressed JS8 free-text release remains blocked until Step79 sees an externally confirmed fixture.", "RX-only safety remains enforced: no JS8Call runtime control and no TX/PTT/Tune/Send." ], "map_transport_fix": { "previous_step80_issue": "line-delimited-map-transport-corrupted-words-with-embedded-newlines-or-control-bytes", "current_transport": "hex-lines-utf8-v1", "purpose": "keep Python and C++ harness map indices byte-identical" }, "verdict": "step81_cpp_reference_compare_passed_waiting_for_real_external_fixture", "next_action": "Import one externally confirmed compressed FrameDataCompressed fixture, then rerun Step79/Step81 before any lab text release.", "stable_latest_written": "/decoders/js8_decoder/logs/js8_jsc_cpp_reference_compare_latest.json" } } }, "source_chain_mode": "not_run", "warnings": [ "Quick-window-scan only selects a likely analysis window; it is not a JS8 text decoder.", "No JS8 text decode is expected in Step 54. Final real LDPC/FEC and Varicode/message unpack are not implemented yet.", "Costas7 scoring is a lab candidate extractor; real decoder validation requires actual JS8 WAV samples." ], "decodes": [], "webftr_display_count": 0, "notes": [ "Step82 is a real-WAV regression gate, not a chat text release.", "A fast run is expected because only input-check, quick-window-scan and bounded sync-probe are mandatory by default.", "For deeper audio-to-LDPC regeneration use server-deep-run or real-run manually; Step82 keeps the normal ./start.sh cycle lightweight." ], "next_action": "If Step82 confirms the WAV path and sync candidates, continue with a bounded full audio-to-message174 regeneration step before any new Freitext release work." } [webftr-js8-lab] step82 summary exit_code=0 [webftr-js8-lab] OK [webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260528T031839Z_real-wav-full-chain-regression.log [webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260528T031839Z_real-wav-full-chain-regression_manifest.json