hfmodem
Copyright (C) 2026 Saul St John (W9SSJ)

The code is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License as published by the Free Software
Foundation, version 3. See LICENSE for the full text.

The documentation, the images and the project site are under the Creative
Commons Attribution 4.0 International licence instead -- everything under docs/
and site/, the protocol descriptions in docs/protocols/ included. See
LICENSE-CC-BY-4.0 for the full text and
https://creativecommons.org/licenses/by/4.0/ for the deed. Attribution is the
whole of what it asks.

That licence reaches this project's expression of the protocols it describes and
not the facts of them, which are nobody's to license: an implementation written
from these descriptions owes it nothing. See docs/protocols/LICENSE.md.


ATTRIBUTION

besra, the ARDOP modem here, is not an independent implementation throughout. It
is written against the published ARDOP specification, but several of its parts
are derived line-for-line from ardopcf and reproduce that project's constants,
tables and formulas so the two agree on the wire:

  besra/fec/rs.py          the Reed-Solomon codec, transliterated from Simon
                           Rockliff's C listing as ardopcf carries it
                           (lib/rockliff/rrs.c)
  besra/phy/quality.py     the frame-quality formulas Update4FSKConstellation
                           and UpdatePhaseConstellation, the RS-clean floor, and
                           the gearshift thresholds (SoundInput.c, ARQ.c)
  besra/phy/modulator.py   the transmit filter coefficients, the per-carrier
                           scaling, the soft clip, and the PSK symbol packing
                           (Modulate.c)
  besra/dsp/templates.py   the sample templates, reproduced bit-exact from
                           ardopSampleArrays.c by way of CalcTemplates.c
  besra/frame/callsign.py  the SSID packing of StationId.c
  besra/host/protocol.py   the eight state names of ARDOPStates[] (ARDOPC.c)

ARDOP is Rick Muething KN6KB's protocol. ardopc, the C implementation, is John
Wiseman G8BPQ's. ardopcf is Peter LaRue AI7YN's fork of ardopc, at
https://github.com/pflarue/ardop, and is what besra was written against. It
carries:

    MIT License

    Copyright (c) 2014-2024 Rick Muething, John Wiseman, Peter LaRue

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

That licence covers ardopcf's own source and says expressly that it does not
cover the libraries under its lib/ directory. The Reed-Solomon codec is one of
those. It was written by Simon Rockliff (University of Adelaide) in 1989 and
1991, and modified by Peter LaRue in 2024 for use in ardopcf. It carries its
author's own terms, whose condition is that his name travel with the code:

    Notice
    --------
    This program may be freely modified and/or given to whoever wants it.
    A condition of such distribution is that the author's contribution be
    acknowledged by his name being left in the comments heading the program,
    however no responsibility is accepted for any financial or other loss which
    may result from some unforseen errors or malfunctioning of the program
    during use.
            Simon Rockliff, 26th June 1991

Both sets of terms are compatible with AGPL-3.0-only, under which besra is
distributed. Retaining the notices above is what each asks in return.



NON-AFFILIATION

hfmodem is an independent open project. It is not affiliated with, endorsed by,
or sponsored by any of the products or organisations named in this file.
Where this project takes code from another, the attribution section above names it.


NAMES OF OTHER PRODUCTS

Other HF data products are referred to in this project's code and documentation.
The names identify protocols, products and interoperability targets.

  VARA        A commercial HF modem developed by others. Named to describe
              interoperability: which waveforms and which host dialect a given
              modem here can speak, and which it cannot.

  PACTOR      A family of HF modes developed by others. PACTOR-III's waveform is
              published in ITU-R Recommendation M.1798.

  ARDOP       The Amateur Radio Digital Open Protocol: an open, published
              protocol, named to identify what besra implements.

  Winlink,    Named as applications that can drive a modem here through one of
  Pat, VarAC  the host dialects it offers. Naming them is a statement of what
              works with what, not a claim of association or endorsement.

  SCS         The developer of the PACTOR controllers whose host command set is
              named descriptively where a modem here emulates it.

The tests and the documents also name the software they were measured against or
run beside -- ardopcf, M0LTE.Ardop, PMON, Hamlib, Winlink Express, RMS Trimode --
in order to say what was compared with what. None of it is redistributed here.

Please report inaccurate product references through the project issue tracker.

The project repository is at:

    https://github.com/sstjohn/hfmodem
