AetherSDR Third-Party Software Licenses
========================================

AetherSDR incorporates or links against the following third-party software.
Each component retains its original license. Full license texts are included
in the corresponding third_party/ subdirectories where the source is bundled.


Protocol References
-------------------
AetherSDR implements the SmartSDR protocol to communicate with FlexRadio
transceivers. The protocol behavior was determined by consulting the FlexLib
API source code, which is Copyright FlexRadio Systems and All Rights Reserved.
No FlexLib code is incorporated into AetherSDR — the protocol implementation
is entirely original. SmartSDR is a trademark of FlexRadio Systems.

  FlexLib:   Copyright (c) 2012-2025 FlexRadio Systems
  Reference: https://www.flexradio.com/

The KiwiSDR receive integration includes source-attributed protocol facts
derived from the public KiwiSDR server source. No KiwiSDR code is incorporated,
vendored, translated, or linked into AetherSDR; the referenced source is
consulted only to verify wire-protocol facts, which are then expressed in
original AetherSDR code. The consulted facts are:
  - server MSG keys and numeric badp denial codes (error handling); and
  - the accepted `SET squelch=<offset> param=<float>` and
    `SET agc=… thresh=… decay=… manGain=…` command shapes, plus their numeric
    ranges, for KiwiSDR replacement-receiver squelch/AGC control; and
  - waterfall wire/display facts including W/F row framing, `wf_cal`,
    `maxdb`/`mindb` messages, `SET maxdb=... mindb=...`, default waterfall
    min/max dB values, zoom-related floor correction, and the supported
    square-root weak-signal color-index option.
See docs/kiwisdr-cleanroom-design.md for the per-file, per-fact provenance.

  KiwiSDR source: Copyright (c) 2014-2026 John Seamons and contributors
  License:        LGPL-2.0-or-later for the consulted rx/* server files;
                  GPL-3.0-or-later for the consulted OpenWebRX browser file
                  used only as a behavioral reference
  Source:         https://github.com/jks-prv/Beagle_SDR_GPS
                  https://github.com/jks-prv/KiwiSDR
  References:     commits efb38e2b25137029cb37a96a94e03366f8d2871e
                  and e48e74bce3e323e47fe2de3228ae7d43604238b0

The AGC/squelch numeric ranges (threshold -160..0 dB, manual gain 0..100 dB,
decay 20..5000 ms, and NBFM squelch behavior) were verified against the CuteSDR
DSP component bundled in that repository, which is separately licensed. Only the
documented numeric ranges/behavior were used; no CuteSDR code is incorporated.

  CuteSDR source: Copyright (c) Moe Wheatley (AE4JY), per consulted file headers
  License:        BSD-2-Clause (Simplified BSD)
  Source:         https://github.com/jks-prv/Beagle_SDR_GPS  (rx/CuteSDR/)

The Hermes-Lite 2 radio backend implements HPSDR Protocol 1 ("Metis") — UDP
discovery, the EP2/EP6 IQ frame layout, and the Command & Control register map
(sample-rate/receiver config, the CONFIG_MERCURY ADC-source-select bit, RX NCO
frequency, and the AD9866 extended-range LNA gain register). These wire-protocol
facts were consulted clean-room and are expressed in original AetherSDR code
(prototypes/hl2/ and, subsequently, the in-tree Hl2Backend). No openHPSDR,
Hermes-Lite 2, or pihpsdr code is incorporated, vendored, translated, or linked
into AetherSDR; the referenced sources are consulted only to verify protocol
facts. The consulted facts are:
  - the Metis discovery handshake and EP2/EP6 1032-byte frame framing;
  - the C0 register-address encoding ((addr<<1)|MOX) and the config/RX-freq/
    gain register semantics; and
  - the minimal round-robin C&C init a receiver requires (config incl.
    CONFIG_MERCURY, RX1 frequency, LNA gain), verified against the pihpsdr
    reference client's C&C construction.

  openHPSDR Protocol 1 (Programmer's guide) — HPSDR project, hosted by TAPR
  License:  GPL-2.0-or-later (consulted as a protocol specification only)
  Source:   https://github.com/TAPR/OpenHPSDR-Protocol1-Programmers

  Hermes-Lite 2:  Copyright (c) Steve Haynal (KF7O) and Hermes-Lite 2 contributors
  Reference:      https://github.com/softerhardware/Hermes-Lite2  (wiki + gateware)

  pihpsdr:   Copyright (c) Christoph van Wüllen (DL1YCF) and contributors
  License:   GPL-3.0-or-later (consulted as a behavioral reference only)
  Source:    https://github.com/dl1ycf/pihpsdr  (src/old_protocol.c)


1. WDSP — Spectral Noise Reduction (NR2)
-----------------------------------------
The SpectralNR module (src/core/SpectralNR.h, SpectralNR.cpp) is derived from
the WDSP library's emnr.c, implementing the Ephraim-Malah MMSE-LSA noise
reduction algorithm with OSMS noise floor tracking.

  Copyright (C) 2015, 2025 Warren Pratt, NR0V
  License: GPL-2.0-or-later
  Source:  https://github.com/TAPR/OpenHPSDR-wdsp


2. RNNoise — Neural Network Noise Suppression (RN2)
----------------------------------------------------
Bundled at third_party/rnnoise/

  Copyright (c) 2007-2017, 2024 Jean-Marc Valin
  Copyright (c) 2023 Amazon
  Copyright (c) 2017, Mozilla
  Copyright (c) 2005-2017, Xiph.Org Foundation
  Copyright (c) 2003-2004, Mark Borgerding
  License: BSD-3-Clause
  Source:  https://github.com/xiph/rnnoise


3. libspecbleach — Spectral Noise Reduction (NR4)
-------------------------------------------------
Bundled at third_party/libspecbleach/

  Copyright (C) 2022 Luciano Dato <lucianodato@gmail.com>
  License: LGPL-2.1-or-later
  Source:  https://github.com/lucianodato/libspecbleach


4. r8brain-free-src — Sample Rate Converter
--------------------------------------------
Bundled at third_party/r8brain/

  Copyright (c) 2013-2025 Aleksey Vaneev
  License: MIT
  Source:  https://github.com/avaneev/r8brain-free-src


5. RtMidi — MIDI I/O
---------------------
Bundled at third_party/rtmidi/

  Copyright (c) 2003-2023 Gary P. Scavone
  License: MIT (with non-binding request to share modifications)
  Source:  https://github.com/thestk/rtmidi


6. ggmorse — Morse Code Decoder
--------------------------------
Bundled at third_party/ggmorse/

  Copyright (c) 2021 Georgi Gerganov
  License: MIT
  Source:  https://github.com/ggerganov/ggmorse


7. Eclipse Mosquitto — MQTT Client Library
-------------------------------------------
Bundled at third_party/mosquitto/

  Copyright (c) 2010-2021 Roger Light <roger@atchoo.org>
  License: EPL-2.0 OR BSD-3-Clause (dual-licensed)
  Source:  https://github.com/eclipse/mosquitto


8. RADAE — Radio Autoencoder
-----------------------------
Bundled at third_party/radae/

  Copyright (c) 2026 Peter B Marks
  License: BSD-2-Clause
  Source:  https://github.com/drowe67/radae


9. opus-rade — Opus Codec (RADE variant)
-----------------------------------------
Bundled at third_party/opus-rade/

  Copyright 2001-2023 Xiph.Org, Skype Limited, Octasic,
                      Jean-Marc Valin, Timothy B. Terriberry,
                      CSIRO, Gregory Maxwell, Mark Borgerding,
                      Erik de Castro Lopo, Mozilla, Amazon
  License: BSD-3-Clause
  Source:  https://github.com/nicoboss/opus-rade


10. DeepFilterNet — Deep Noise Suppression
-------------------------------------------
Bundled at third_party/deepfilter/

  Copyright (c) DeepFilterNet Contributors
  License: Apache-2.0 OR MIT (dual-licensed)
  Source:  https://github.com/Rikorose/DeepFilterNet


11. ONNX Runtime — Neural Network Inference Engine (optional)
--------------------------------------------------------------
Pre-built binaries at third_party/onnxruntime/ (Windows only; optional feature).
Loaded at runtime for the S-History CNN signal classifier (S_History_v2-AI).
Only present when setup-onnxruntime.ps1 has been run.

  Copyright (c) Microsoft Corporation. All rights reserved.
  License: MIT
  Source:  https://github.com/microsoft/onnxruntime

  Note: the tools/train_classifier.py training script requires PyTorch
  (BSD-3-Clause, https://pytorch.org/) as a separate installation.
  PyTorch is a build tool only — it is not linked into or distributed
  with AetherSDR.  The trained .onnx model file produced by the script
  is entirely the user's own work.


12. FFTW3 — Fast Fourier Transform Library
--------------------------------------------
Pre-built binaries at third_party/fftw3/ (Windows only; Linux uses system pkg)

  Copyright (c) 2003, 2007-2014 Matteo Frigo
  Copyright (c) 2003, 2007-2014 Massachusetts Institute of Technology
  License: GPL-2.0-or-later
  Source:  https://www.fftw.org/


12. TCI Protocol Specification — Transceiver Control Interface
---------------------------------------------------------------
The TCI server (src/core/TciProtocol.cpp, TciServer.cpp) implements the
TCI v2.0 protocol specification published by Expert Electronics. The binary
audio frame header follows the spec's Stream struct definition. No code was
copied from ExpertSDR3; this is an independent implementation of the published
protocol.

  Copyright (c) 2021 Expert Electronics (EE)
  License: MIT
  Spec:    https://github.com/ExpertSDR3/TCI


13. zlib — Compression Library
-------------------------------
Bundled at third_party/zlib/ (v1.3.1) for raw-deflate decompression of
.ssdr_cfg profile import/export ZIP packages.  Vendored from the upstream
GitHub release (sha256
9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23) so the
version is identical on Linux, macOS, and Windows.  Previously, Linux/macOS
linked the system zlib and Windows pulled it via vcpkg; bundling unifies the
three paths per the constitution's Technology Constraint preferring bundled
libraries.  See #2651.

  Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler
  License: zlib license (permissive, similar to MIT)
  Source:  https://github.com/madler/zlib


14. liquid-dsp — Comprehensive DSP Toolkit (disabled by default)
----------------------------------------------------------------
Bundled at third_party/liquid-dsp/ (commit 4df6fc2ba99b3a584e9f1ad9888094013ae07b2f).
Comprehensive DSP library covering modems (PSK/QAM/FSK/GMSK/OFDM), forward
error correction (Hamming/Golay/Reed-Solomon/convolutional), adaptive filters
(LMS/RLS), AGC, NCO, polyphase resampling, and equalizers.  Vendored
proactively under #3043 as foundation infrastructure for future digital-mode
work — no AetherSDR module currently consumes liquid-dsp symbols; standard
builds therefore leave it disabled on every platform.  Opt-in builds use
`-DENABLE_LIQUID_DSP=ON`; the static linker extracts only symbols used by a
future consumer.  Upstream dev infrastructure (autotests, benchmarks, sandbox,
docs, autotools wiring) was trimmed before vendoring; the upstream
CMakeLists.txt drives opt-in builds via add_subdirectory.

Linux + macOS only — liquid-dsp upstream targets GCC/Clang/MinGW; its
include/liquid.h uses C99 `float _Complex` typedefs which MSVC's C compiler
doesn't accept.  Skipped on MSVC; future consumers needing liquid-dsp on
Windows will need to land MSVC support first.

  Copyright (c) 2007-2016 Joseph Gaeddert
  License: MIT
  Source:  https://github.com/jgaeddert/liquid-dsp


15. Dire Wolf — AFSK Demodulator (algorithmic derivation)
----------------------------------------------------------
Bundled at third_party/direwolf_afsk/ as an algorithmic derivation of the
Dire Wolf "profile A" AFSK demodulator. Rewritten in C++20 for AetherSDR.
Referenced source files: src/demod_afsk.c, src/dsp.c from Dire Wolf 1.7.
Used unconditionally for the VHF 1200 baud AX.25 receive path.

  Copyright (C) 2011-2020 John Langner WB2OSZ
  License: GPL-2.0-or-later (compatible into AetherSDR's GPL-3.0-or-later)
  Source:  https://github.com/wb2osz/direwolf


16. QGeoView — Qt Map Widget (OSM/TMS slippy-map engine)
--------------------------------------------------------
Bundled at third_party/QGeoView/ (upstream tag 1.1.0) and compiled as a
separately-linked static library. Provides the QGraphicsView-based OpenStreetMap
tile/scene engine behind the reusable MapView widget (PSK Reporter reception map;
future AetherModem APRS map). Demo/sample/CI trees dropped; AetherSDR
modifications — static-lib build, app-identifying tile User-Agent, restored TLS
peer verification (upstream shipped a VerifyNone bypass), and HTTPS OSM tile
URLs — are documented in third_party/QGeoView/AETHERSDR-PATCHES.md.

  Copyright (C) 2018-2025 Andrey Yaroshenko
  License: LGPL-3.0-or-later
  Source:  https://github.com/AmonRaNet/QGeoView


17. NVIDIA Maxine Audio Effects (AFX) — BNR GPU denoiser (download-on-demand)
----------------------------------------------------------------------------
NOT bundled in the source tree or the shipped binary. The optional BNR feature
downloads an NVIDIA runtime "pack" on demand at first use (see
src/core/NvidiaAfxPack.cpp and docs/nvidia-bnr.md) and caches it under the app
data dir. AetherSDR redistributes a subset of these NVIDIA binaries as GitHub
release assets (the afx-bits-2.1.0 release); CUDA runtime libraries are pulled
directly from NVIDIA's PyPI wheels at install time (not redistributed by us).

Redistributed / downloaded components:
  - Maxine Audio Effects runtime (libnv_audiofx.so / NVAudioEffects.dll + the
    denoiser feature library)
  - NVIDIA TensorRT inference runtime (nvinfer)
  - NVIDIA CUDA runtime libraries (cuda-runtime, cuBLAS, cuFFT, nvRTC) — from
    NVIDIA's PyPI wheels
  - Per-GPU denoiser model (denoiser_48k.trtpkg)

  Copyright (C) NVIDIA Corporation
  Licenses: NVIDIA Software License Agreement; Product-Specific Terms for
            NVIDIA AI Products; NVIDIA Community Model License (denoiser model).
            The full license texts ship inside the downloaded pack
            (licenses/ + NOTICE.txt) and the user must accept them on first use.
  Source:   https://developer.nvidia.com/maxine  (NGC: nvidia/maxine)


18. SmartSDR-DSP ThumbDV Waveform Helper
-----------------------------------------
Bundled at third_party/smartsdr-dsp/ as a local helper executable for D-Star
waveform operation with a ThumbDV/DV3000U attached to the user's computer. The
import is trimmed to the ThumbDV waveform runtime sources from the public
`thumbDV_support` branch. The historical FTDI D2XX header, static library,
Windows GUI, IDE files, and packaged `.ssdr_waveform` binary are not bundled.
AetherSDR replaces the D2XX calls used by the helper with a POSIX termios serial
compatibility shim and starts the helper as a separate process. The imported
OpenDV-derived D-STAR framing/state code and its GPL-2.0-only definitions are
not distributed; they were replaced by the independently implemented `crdv`
component described below.

The retained Flex GPLv3 GMSK stream modem uses the 15-tap BT 0.35 Gaussian
interpolator published by MMDVM. MMDVM is GPL-2.0-or-later, which is compatible
with this GPL-3.0-or-later work. The attribution and local changes are recorded
in third_party/smartsdr-dsp/AETHERSDR-PATCHES.md.

  Copyright (C) 2014 FlexRadio Systems
  License: GPL-3.0-or-later
  Source:  https://github.com/n5ac/smartsdr-dsp
  Import:  thumbDV_support commit 762297a7d56f9e37c661c550e4b1cbd8b78091f1
  Patches: third_party/smartsdr-dsp/AETHERSDR-PATCHES.md

  MMDVM modem: Copyright (C) MMDVM contributors
  License:     GPL-2.0-or-later
  Source:      https://github.com/g4klx/MMDVM


19. crdv - Clean-Room D-STAR and DV3000 Protocol Core
------------------------------------------------------
Bundled at third_party/crdv/ and linked into the local waveform helper. This
portable C17 library independently implements the non-AMBE D-STAR air framing,
header protection, slow data, bounded receive parser, parameterized modem
helpers, DV3000 packet framing, and transport parsers. ThumbDV hardware remains
responsible for AMBE encode/decode. The library does not key a radio or perform
I/O.

The implementation team was isolated from AetherSDR and the removed code. Its
sole project-specific input was a sanitized, public-source-backed functional
specification. The access log, source citations, attestation, integration
contract, deterministic test results, and content hash manifest are retained
inside third_party/crdv/.

  Copyright (C) 2026 AetherSDR contributors
  License: GPL-3.0-or-later
  Provenance: third_party/crdv/CLEANROOM_PROVENANCE.md
  Manifest:   third_party/crdv/CONTENT_SHA256.txt
