neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
翻譯準備中
Windows desktop SDR transceiver (C++23 / Qt6) for the Hermes Lite 2 / 2+. Full RX and on-air TX (SSB / CW / AM / FM) with a native TX DSP rack - parametric EQ, multiband Combinator, plate reverb, speech processing. DSP via WDSP. No Python, no GIL. GPL v3+. (Linux/macOS planned, not yet buildable.)
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Lyra — C++23 / Qt 6 Rebuild
🌐 Website & download → · Releases · Discord
Native rebuild of Lyra (the Python+Qt6 desktop SDR transceiver
for the Hermes Lite 2 / 2+). The Python tree is preserved in ../lyra/
as the protocol research + doc archive reference; this is a clean ground-
up rewrite using the architecture the project should have started with.檢視完整 README ↗🌐 Website & download → · Releases · Discord
Native rebuild of Lyra (the Python+Qt6 desktop SDR transceiver
for the Hermes Lite 2 / 2+). The Python tree is preserved in ../lyra/
as the protocol research + doc archive reference; this is a clean ground-
up rewrite using the architecture the project should have started with.
Acknowledgments at a glance: Lyra-cpp incorporates code ported from two GPL-compatible open-source projects: WDSP (Dr. Warren Pratt, NR0V) for DSP algorithms, and the MI0BOT openHPSDR-Thetis fork (Reid MI0BOT/GI8TME, building on Richie Samphire ramdor's upstream maintained at https://github.com/ramdor/Thetis) for the TX baseline ChannelMaster architecture. Both upstream projects are GPL v3+; per-file copyright headers are preserved in every ported file. See NOTICE.md and CREDITS.md for full attribution (including testers and development assistance from Cursor Grok 4.6).
⚠️ Platform support — Windows only (for now)
Lyra builds and runs on Windows only at this time. Linux and macOS support is planned but not yet implemented — the source will not build or run cleanly on those platforms today. The bundled DSP engine ships as Windows binaries (
wdsp.dll+ FFTW/RNNoise/SpecBleach DLLs) and the wire layer still uses Windows-specific socket/timer code, so a Linux/macOS build will fail. Please don't try to build or run Lyra on Linux or macOS yet — the errors you'll hit are expected, not bugs to report. There is also no sound-device selection on those platforms because the audio path isn't wired for them. The native Windows installer (see the Releases page) is the only supported way to run Lyra right now.Linux and macOS will come after RX/TX is stable on Windows — the porting plan is captured in docs/CROSS_PLATFORM.md.
| Layer | Choice |
|---|---|
| Language | C++23 |
| UI framework | Qt 6 (Qt Quick / QML) — Lyra-native |
| Graphics | Qt RHI — Direct3D 12 / Vulkan / OpenGL fallback on Windows (Metal/macOS auto-selects once the port lands) |
| RX DSP | WDSP DSP engine (Warren Pratt NR0V, GPL v3+) — loaded natively |
| RX architecture | Lyra-native (no Python, no GIL) + Lyra-native flair (NPE modes, AEPF, captured-profile IQ-domain NR, per-band bounds memory, EiBi overlay, NCDXF beacon follow, ...) |
| TX baseline | Ported from openHPSDR Thetis (MI0BOT fork) ChannelMaster (cmaster, aamix, ilv, supporting modules) — GPL v3+, attributed per file |
| TX DSP additions | Lyra-native (Combinator multiband compressor, Plate Reverb, parametric EQ, formant boost, sibilance enhance, DX cut-through, de-esser, auto-AGC — sit BEFORE the ported TXA chain) |
| FFT | FFTW3 (per-host wisdom-cached on first launch) |
| Wire I/O | Native UDP (QUdpSocket) on dedicated OS threads — no GIL |
| Threading | std::jthread + Qt thread pools, OS-priority + MMCSS later |
| Build | CMake 3.21+ |
| Compiler | MSVC v143 (VS 2022/2026), Windows only today — Linux clang/gcc + macOS Apple Clang are planned, not yet buildable (see docs/CROSS_PLATFORM.md) |
| License | GPL v3+ (matches both upstream projects) |
No Python. No GIL. No cffi-on-the-wire-path. No in-process bottleneck.
A full receive and transmit SDR transceiver for HPSDR radios — the Hermes Lite 2 / 2+ (Protocol 1) and the BrickSDR2 (Protocol 2) — native C++ end to end. Lyra transmits every voice mode (SSB / AM / DSB / SAM / FM) plus CW and digital via TCI, and ships a complete native TX audio processing rack. Dual receive (SUB / RX2) and SPLIT pile-up (VFO B TX, independent of SUB) are live on Hermes Lite 2 (Protocol 1) and BrickSDR2 (Protocol 2) — one ADC; N2ADR follows RX1 (cross-band SUB is much weaker). Still on the roadmap: PureSignal — see below.
{tokens} (contact + your own personal tokens) with a click-to-insert
palette, and a Repeat caller. QSK / semi / manual break-in, adjustable
sidetone. The meter shows forward power and the VFO goes red on-air
while you send CW — console keyer and a paddle / key into the radio.
An external keyer / Winkeyer works too (its KEY line into the HL2 jack,
Iambic off), plus an optional serial CW-key input for a key wired to a
COM-port pin.Every feature landed gated by an operator HL2 bench test.
Just want to operate? You don't need to build anything.
Lyra-Setup-X.Y.Z.exe installer and run it.Requires Windows 10 (1809+) or 11, 64-bit — see System requirements below. The build-from-source instructions further down are only needed if you want to develop or build it yourself.
Lyra is a native 64-bit Windows app. Its panadapter and waterfall render on the GPU, so graphics capability matters more here than in a typical desktop app — but it runs comfortably on modest hardware, and integrated graphics are fine.
| Component | Minimum | Recommended | Maxed+ |
|---|---|---|---|
| OS | Windows 10 64-bit, v1809 (build 17763)+; or Windows 11 | Windows 11 / Win10 22H2 | Windows 11, current |
| CPU — Intel | 4th-gen Core (Haswell) or newer, e.g. i3-4000 | Core i5 / i7, 10th-gen+ | Core i7 / i9, 12th-gen+ |
| CPU — AMD | Any Ryzen, or AVX-capable FX/A-series | Ryzen 5 / 7, 3000-series+ | Ryzen 7 / 9, 5000-series+ |
| Cores | Dual (quad preferred) | Quad+ with AVX2 | High-core-count, AVX2 |
| RAM | 4 GB (8 GB comfortable) | 16 GB | 32 GB |
| GPU | DirectX 11 / OpenGL 3.3 (integrated OK) | Vulkan 1.1-capable | Vulkan 1.3-capable dedicated, ample VRAM |
| NVIDIA | GeForce GT 700-series+ | GTX 10-series / RTX+ | RTX 30/40-series |
| AMD | Radeon HD 7000 (GCN)+, incl. iGPU | RX 400/500 / Vega / RX 5000–9000 | RX 6000/7000/9000 (RDNA 2/3/4) |
| Intel | HD 4000 (Ivy Bridge)+ / UHD / Iris | UHD 620 / Iris Xe / Arc | Arc A-series+ |
| Storage | ~300 MB free (SSD recommended) | SSD, ~500 MB free | NVMe Gen4 SSD |
| Network | 100 Mbit wired to the radio | Gigabit, dedicated NIC ideal | Dedicated 1/2.5 GbE, wired to the radio |
| Display | 1600 × 900 | 1920 × 1080 | Dual/triple; 1440p or 4K |
About the display minimum. Lyra's front panel is a set of dockable panels, and they need real estate. At 1600 × 900 you get the panels you need to operate — Panadapter + waterfall, Tuning, Band, Filters, Audio, Meter and TX — laid out with everything reachable. That's what Lyra ships arranged for at that size, and it's a genuinely usable radio.
The other panels — Solar / Propagation, Display, and Profiles — are closed by default at that size and available any time from the View menu, but opening them will want more screen. Solar / Propagation in particular is a wide strip and needs about 780 px of width on its own. At 1920 × 1080 you can have everything open at once with room to spare.
Height is what actually binds: below about 900 px there isn't room for the panadapter and the operating panels without something being cut off, so 1366 × 768 is not enough — even for the minimal set.
Lyra draws the spectrum and waterfall on the GPU. It works on any DirectX 11 / OpenGL-class card, but the Vulkan path is smoother, lower-CPU, and vendor-neutral (NVIDIA, AMD, and Intel alike) — that's why the higher tiers call for a Vulkan-capable GPU. The extra headroom in Maxed+ isn't about whether it runs (Recommended is plenty) — it's about running everything at once (dual RX, the full TX rack, spots, high-refresh waterfalls on a big screen) with margin to spare.
Two things that matter on any tier: a wired connection to the Hermes Lite is the single biggest factor in glitch-free audio (Wi-Fi in the radio path is the top cause of pops/dropouts), and the one-time first-run FFT optimization finishes quicker on a faster CPU.
Lyra is in active development — testers and bug reports are welcome. See KNOWN_ISSUES.md first for current rough edges and what hasn't been built yet (so you don't report a planned feature as a bug).
C:\Qt\6.11.1\ with the MSVC 2022 64-bit
binding (add via Qt's MaintenanceTool.exe if the curated installer
only pulled MinGW).From an x64 Native Tools Command Prompt for VS 2026:
cd Y:\Claude local\SDRProject\lyra-cpp
cmake -B build -G Ninja ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_PREFIX_PATH=C:/Qt/6.11.1/msvc2022_64
cmake --build build
build\lyra.exe
Or Visual Studio 2026: File -> Open -> CMake -> point at CMakeLists.txt
in this directory. VS auto-configures, then F5 to build + run.
Or Qt Creator: File -> Open File or Project -> pick CMakeLists.txt,
let it configure, hit the green Run button.
GPL v3 or later — matches WDSP, openHPSDR Thetis, and the parent Lyra Python project. See LICENSE for the full license text, NOTICE.md for upstream-project attribution (WDSP + Thetis), and CREDITS.md for the full acknowledgments and contributor list.
Two open-source projects make Lyra-cpp possible without years of ground-up implementation:
WDSP — Dr. Warren Pratt NR0V's DSP engine. RX audio chain (NR, AGC, ANF, LMS, NB, AEPF, bandpass, demod, panel pan), TX audio chain (ALC, leveler, compressor, CFC, PHROT), and the planned PureSignal port (calcc + iqc). Lyra-cpp links the bundled WDSP DLL and calls into it from native C++; the bundled DLL itself carries WDSP's GPL v3+ license and copyright.
openHPSDR Thetis (MI0BOT fork) — the HL2-focused fork of Richie Samphire (ramdor)'s upstream Thetis, maintained by Reid (MI0BOT / GI8TME) with the HL2/HL2+ specific work that makes the Hermes Lite 2 family first-class. Lyra-cpp's TX baseline ports the Thetis ChannelMaster layer (cmaster.c + aamix.c + ilv.c + supporting modules) with full per-file GPL attribution. This brings tested, debugged, multi-radio (HL2/HL2+/ANAN/Orion/...) TX dispatch into Lyra-cpp; Lyra-native TX DSP enhancements layer on top.
See CREDITS.md for testers, upstream authors, and full attribution.
The Python Lyra (../lyra/) and Lyra-cpp are both N8SDR's projects;
Lyra-cpp is the C++23 rebuild that makes hard-realtime audio + wire
I/O practical on Windows / macOS / Linux without Python's GIL.
Cross-platform support (macOS / Linux) is planned once the transmit feature set settles; Qt 6 + modern C++ stdlib handles most of the cross-platform lifting, with platform-shim modules for Win32-specific items (MMCSS thread priority, WSAEventSelect → epoll/kqueue, etc.).
.lyra file, or selectively restore just
the section you broke (Radio / Audio / TX / CW / Display / Layout / … — tick
what to bring back). Lyra also keeps automatic dated snapshots every so
many launches (adjustable), stored on disk so they survive an
uninstall/reinstall — a fresh install can restore your old setup from the
snapshot folder. Machine-specific keys (IP, graphics backend) never travel.
Its Maintenance & recovery tools also rebuild the one-time FFT
optimization (after a CPU change) and, when all else fails, reset every
setting to factory defaults — a safety snapshot is taken first so it's
undoable.