No description
Find a file
Chris-AC9KH 6d158d8a10 Chris:
change project name to JS8Call-improved for release
change name of JS8Call.iconset to JS8Call-improved.iconset

Andreas:
Clearly mark this as a non-official version of JS8Call.
Add our copyright so we can open source our work.
Change copyright notice for project contributors
2025-11-02 13:57:09 -06:00
artwork CMake cleanup and modernization 2025-10-13 18:18:55 -05:00
Audio
CMake Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
contrib CMake cleanup and modernization 2025-10-13 18:18:55 -05:00
Darwin CMake cleanup and modernization 2025-10-13 18:18:55 -05:00
debian
docker Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
docs Update Windows build instructions to include Qt Creator 2025-10-14 20:58:00 -05:00
icons Chris: 2025-11-02 13:57:09 -06:00
lib Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
logbook Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
media/tests Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
Palettes Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
vendor Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
.dockerignore Move docker into subdir 2025-06-27 17:11:02 -04:00
.gitignore add all Xcode and Qt Creator patches to .gitignore 2025-10-13 18:18:55 -05:00
about.cpp Chris: 2025-11-02 13:57:09 -06:00
about.h Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
about.ui Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
APRSISClient.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
APRSISClient.h The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
AttenuationSlider.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
AttenuationSlider.hpp
AudioDevice.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
AudioDevice.hpp
Bands.cpp
Bands.hpp
bsj.mod
CallsignValidator.cpp
CallsignValidator.hpp
CandidateKeyFilter.cpp
CandidateKeyFilter.hpp
CMakeCPackOptions.cmake.in Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
CMakeLists.txt Chris: 2025-11-02 13:57:09 -06:00
CMakeLists.txt.legacy Manual changes to make debug info configurable. 2025-10-13 18:18:55 -05:00
commons.h Remove deprecated <cstdbool> header 2025-10-13 18:18:55 -05:00
Configuration.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
Configuration.hpp CMake cleanup and modernization 2025-10-13 18:18:55 -05:00
Configuration.ui Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
cty.dat Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
decodedtext.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
decodedtext.h Make it clearer how timestamps are coded into ints. 2025-08-18 09:44:00 -04:00
Decoder.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
Decoder.h Manual changes to make debug info configurable. 2025-10-13 18:18:55 -05:00
Detector.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
Detector.hpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
DisplayManual.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
DisplayManual.hpp
DriftingDateTime.cpp
DriftingDateTime.h Document the drifting date time. 2025-10-13 18:18:55 -05:00
DXLabSuiteCommanderTransceiver.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
DXLabSuiteCommanderTransceiver.hpp
eclipse.txt Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
EmulateSplitTransceiver.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
EmulateSplitTransceiver.hpp
EventFilter.hpp
fileutils.cpp
fileutils.h
Flatten.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
Flatten.hpp Provide live() accessor 2024-12-11 05:26:45 -08:00
ForeignKeyDelegate.cpp
ForeignKeyDelegate.hpp
FrequencyLineEdit.cpp
FrequencyLineEdit.hpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
FrequencyList.cpp
FrequencyList.hpp
Geodesic.cpp Use concepts for FP restrictions 2025-02-09 05:52:02 -08:00
Geodesic.hpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
HamlibTransceiver.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
HamlibTransceiver.hpp
HelpTextWindow.cpp
HelpTextWindow.hpp
HRDTransceiver.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
HRDTransceiver.hpp
IARURegions.cpp
IARURegions.hpp
Inbox.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
Inbox.h Adding lookahead message ID to MSG response "%1 MSG %2 FROM %3 NEXT MSG ID %4" 2025-10-13 18:14:11 -05:00
JS8.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
JS8.hpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
js8.mod
js8a.mod
js8call.desktop
js8call.pro Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
js8params.mod
JS8Submode.cpp 3 quick tests for C++20 enablement 2025-02-06 10:01:43 -08:00
JS8Submode.hpp Break out common JS8 encode function 2025-01-22 20:22:29 -08:00
jsc.cpp
jsc.h
jsc_checker.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
jsc_checker.h
jsc_list.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
jsc_map.cpp
LazyFillComboBox.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
LazyFillComboBox.hpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
LICENSE Update license to be in compliance with Qt LGPLv3 licensing for open source projects 2025-10-14 20:58:00 -05:00
logqso.cpp Use QStandardPaths::AppLocalDataLocation 2025-03-02 07:30:50 -08:00
logqso.h
logqso.ui Logging time always needs UTC, fix suggested by Joe K0OG 2025-08-18 09:41:13 -04:00
Maidenhead.hpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
main.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
mainwindow.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
mainwindow.h Adding lookahead message ID to MSG response "%1 MSG %2 FROM %3 NEXT MSG ID %4" 2025-10-13 18:14:11 -05:00
mainwindow.ui Chris: 2025-11-02 13:57:09 -06:00
make_app.sh
Message.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
Message.hpp
message_aggregator.desktop
MessageBox.cpp
MessageBox.hpp
MessageClient.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
MessageClient.hpp
MessageError.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
MessageError.hpp
messagereplydialog.cpp
messagereplydialog.h
messagereplydialog.ui
MessageServer.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
MessageServer.h Correct integreal type of message IDs 2025-08-16 16:06:05 -04:00
messagewindow.cpp Fix issue with signal/slot in message window 2025-06-27 15:46:50 -04:00
messagewindow.h Fix issue with signal/slot in message window 2025-06-27 15:46:50 -04:00
messagewindow.ui
MetaDataRegistry.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
MetaDataRegistry.hpp
Modes.cpp
Modes.hpp
Modulator.cpp Remove unused <cmath> include 2025-10-13 18:18:55 -05:00
Modulator.hpp Make Modulator::bytesAvailable() universal 2025-10-13 18:18:55 -05:00
MultiSettings.cpp
MultiSettings.hpp
NetworkAccessManager.hpp
NetworkServerLookup.cpp Correct integral types 2025-08-16 16:06:05 -04:00
NetworkServerLookup.hpp
NotificationAudio.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
NotificationAudio.h
OmniRigTransceiver.cpp
OmniRigTransceiver.hpp
pimpl_h.hpp
pimpl_impl.hpp
plotter.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
plotter.h Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
PollingTransceiver.cpp
PollingTransceiver.hpp
ProcessThread.cpp
ProcessThread.h
PSKReporter.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
PSKReporter.hpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
qpriorityqueue.h
qt_helpers.cpp
qt_helpers.hpp
Radio.cpp
Radio.hpp
RadioMetaType.cpp
RDP.cpp
RDP.hpp
README.md Manual changes to make debug info configurable. 2025-10-13 18:18:55 -05:00
revision_utils.cpp Chris: 2025-11-02 13:57:09 -06:00
revision_utils.hpp
SelfDestructMessageBox.cpp Add stopTimer function to SelfDestructMessageBox and connect to SelfDestructMessageBox::finished signal 2025-08-18 09:42:55 -04:00
SelfDestructMessageBox.h Add stopTimer function to SelfDestructMessageBox and connect to SelfDestructMessageBox::finished signal 2025-08-18 09:42:55 -04:00
SettingsGroup.hpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
SignalMeter.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
SignalMeter.hpp
sleep.h
soundin.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
soundin.h
soundout.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
soundout.h Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
SpotClient.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
SpotClient.h
ss.bat Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
sss.bat Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
StationList.cpp Band hop tweaks 2025-08-18 09:42:55 -04:00
StationList.hpp
tcp.py Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
TCPClient.cpp
TCPClient.h
TraceFile.cpp
TraceFile.hpp
Transceiver.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
Transceiver.hpp
TransceiverBase.cpp Manual changes to make debug info configurable. 2025-10-13 18:18:55 -05:00
TransceiverBase.hpp Manual changes to make debug info configurable. 2025-10-13 18:18:55 -05:00
TransceiverFactory.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
TransceiverFactory.hpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
TransmitTextEdit.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
TransmitTextEdit.h
udp.py Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
varicode.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
varicode.h
Versions.cmake set version to 2.4.0 2025-10-24 21:12:41 -05:00
WF.cpp The boilerplate changes to make logging configurable at runtime. 2025-10-13 18:18:55 -05:00
WF.hpp Prefix common macros with JS8 2025-01-25 17:20:45 -08:00
wf_palette_design_dialog.ui
widegraph.cpp Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
widegraph.h Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
widegraph.ui Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
wsjtx-valgrind.linux.supp
wsjtx.desktop
wsjtx.pro.user
wsjtx.rc Removing trailing whitespace from each source code line that has it. 2025-10-14 13:12:57 +02:00
wsjtx_config.h.in Manual changes to make debug info configurable. 2025-10-13 18:18:55 -05:00

JS8Call

JS8Call is an experiment in combining the robustness of FT8 (a weak-signal mode by K1JT) with a messaging and network protocol layer for weak signal communication. The open source software is designed for connecting amateur radio operators who are operating under weak signal conditions and offers real-time keyboard-to-keyboard messaging, store-and-forward messaging, and automatic station announcements.

Notice

JS8Call is a derivative of the WSJT-X application, restructured and redesigned for message passing using a custom FSK modulation called JS8. It is not supported by nor endorsed by the WSJT-X development group. While the WSJT-X group maintains copyright over the original work and code, JS8Call is a derivative work licensed under and in accordance with the terms of the GPLv3 license. The source code modifications are public and can be found in this repository: https://github.com/js8call/js8call .

  • Read more on the original design inspiration here: https://github.com/jsherer/js8call

  • For release announcements and discussion, join the JS8Call mailing list here: https://groups.io/g/js8call

  • The latest official build and installers are available at https://github.com/js8call/js8call/releases

    • win64.exe for Windows
    • .dmg for Mac
    • _amd64.deb is the installer for Debian-based Linux systems such as Ubuntu, Mint, or Debian itself for regular PCs (not Raspi)
    • x86_64.rpm is the installer for Linux systems using the rpm package format, such as Fedora, for regular PCs.
    • x86_64.AppImage for Linux systems on regular PCs that face dependency problems with whichever of the previous two installers should be pertinent.
    • There is no installer for Raspi yet. For this and other platforms, or if all of our pre-build installers do not work on your particular system, you can try compiling from source code.
  • Documentation is available here: https://docs.google.com/document/d/159S4wqMUVdMA7qBgaSWmU-iDI4C9wd4CuWnetN68O9U/edit?pli=1#heading=h.kfnyge37yfr

  • Read below for recent updates to Qt6 and the removal of Fortran dependencies.

Building JS8Call From Sourcecode

Instructions can be found in docs in the source tree for building JS8Call on MacOS, Linux and Windows, as well as a contributor's guide.

Debugging JS8Call

You can get a lot of debug output reporting what the program does by setting the environment variable QT_LOGGING_RULES to an appropriate value.

The value *.js8=true gives you all output there is.

Each line starts with a "logging category". These can be used to filter, so fewer lines you are not interested in will be given.

For example, if you are interested in lines starting with mainwindow.js8 and configuration.js8 only, to debug a certain problem, set QT_LOGGING_RULES to mainwindow.js8=true;configuration.js8=true to just see what those two have to say.

You find decoder.js8 a bit too noisy, you may use the value *.js8=true;decoder.js8=false to silence it, but still see all the others.

The official documentation of what we are using here can be found at https://doc.qt.io/qt-6/qloggingcategory.html#checking-category-configuration.

History

  • July 6, 2017 - The initial idea of using a modification to the FT8 protocol to support long-form QSOs was developed by Jordan, KN4CRD, and submitted to the WSJT-X mailing list: https://sourceforge.net/p/wsjt/mailman/message/35931540/
  • August 31, 2017 - Jordan, KN4CRD, did a little development and modified WSJT-X to support long-form QSOs using the existing FT8 protocol: https://sourceforge.net/p/wsjt/mailman/message/36020051/ He sent a video example to the WSJT-X group: https://widefido.wistia.com/medias/7bb1uq62ga
  • January 8, 2018 - Jordan, KN4CRD, started working on the design of a long-form QSO application built on top of FT8 with a redesigned interface.
  • February 9, 2018 - Jordan, KN4CRD, submitted question to the WSJT-X group to see if there was any interest in pursuing the idea: https://sourceforge.net/p/wsjt/mailman/message/36221549/
  • February 10, 2018 - Jordan KN4CRD, Julian OH8STN, John N0JDS, and the Portable Digital QRP group did an experiment using FSQ. The idea of JS8Call, combining FT8, long-form QSOs, and FSQCall like features was born.
  • February 11, 2018 - Jordan, KN4CRD, inquired about the idea of integrating long-form messages into WSJT-X: https://sourceforge.net/p/wsjt/mailman/message/36223372/
  • February 12, 2018 - Joe Taylor, K1JT, wrote back: https://sourceforge.net/p/wsjt/mailman/message/36224507/ saying that “Please don't let my comment discourage you from proceeding as you wish, toward something new.”
  • March 4, 2018 - Jordan, KN4CRD, published a design document for JS8Call: https://github.com/jsherer/js8call
  • July 6, 2018 - Version 0.0.1 of JS8Call released to the development group
  • July 15, 2018 - Version 0.1 released - a dozen testers
  • July 21, 2018 - Version 0.2 released - 75 testers
  • July 27, 2018 - Version 0.3 released - 150 testers
  • August 12, 2018 - Version 0.4 released - (“leaked” on QRZ) - 500 testers
  • September 2, 2018 - Version 0.5 released - 3000 testers
  • September 14, 2018 - Version 0.6 released - 5000 testers
  • October 8, 2018 - Version 0.7 released - 6000 testers, name changed to JS8 & JS8Call
  • October 31, 2018 - Version 0.8 released - ~7000 testers
  • November 15, 2018 - Version 0.9 released - ~7500 testers
  • November 30, 2018 - Version 0.10 released - ~7800 testers
  • December 18, 2018 - Version 0.11 released - ~8200 testers
  • January 1, 2019 - Version 0.12 released - ~9000 testers
  • January 23, 2019 - Version 0.13 released - ~9250 testers
  • February 7, 2019 - Version 0.14 released - ~9600 testers
  • February 21, 2019 - Version 1.0.0-RC1 released - ~10000 testers
  • March 11, 2019 - Version 1.0.0-RC2 released - >10000 testers
  • March 26, 2019 - Version 1.0.0-RC3 released - >11000 testers
  • April 1, 2019 - Version 1.0.0 general availability - Public Release!
  • June 6, 2019 - Version 1.1.0 general availability
  • November 29, 2019 - Version 2.0.0 general availability - Fast and Turbo speeds introduced!
  • December 22, 2019 - Version 2.1.0 general availability - Slow speed introduced!

JS8Call Updates to v2.3.x

This is, in the flavor of WSJTX-improved, an 'improved' version of the original JS8Call, the source code for which can be found at: https://bitbucket.org/widefido/js8call/src/js8call/

I am not the original author, and have no desire to create a fork, add new features, etc. My motivation was to have a native version of JS8Call that would run on my Apple Silicon Mac, using a current version of the Qt and Hamlib libraries. Along the way, I discovered and corrected a few bugs, and made some minor visual improvements to the UI.

Anyway.....that's what this does; that's all this does. It's not intended to be anything but a vehicle by which to provide my changes to the original author.

Notable Changes

  • Use of Fortran has been eliminated; everything that was previously implemented in Fortran has been ported to C++.
  • The requirement for a separate decoder process and use of shared memory has been eliminated.
  • Ported to Qt6, which changed the audio classes in a major way. Fortunately the wsjtx-improved team had been down this road already, and had dealt with most of the changes needed to the audio stuff.
  • Vestiges of the original WSJTX codebase that were are longer relevant have been removed.
  • The variable decode depth settings have been removed, as testing demonstrated that decodes beyond a depth of 2 were largely hope and dreams. The implementation now decodes at a fixed depth of 2 in all cases.
  • Did a bit of work with alignment of data in the tables for better presentation.
  • Improved the performance and appearance of the audio input VU meter.
  • The attenuation slider was designed to look like an audio fader control, and it does a decent job of this in the windows style. However, the underlying QSlider control is not great in terms of styling consistency; it looks ok but not great in the fusion style, and quite bizarre in the macos style. I've attempted to rectify this via implementation of a custom-drawn QSlider implementation that consistently looks like a fader on any platform style, with the added advantage of always displaying the dB attenuation value.
  • Adapted the waterfall scale drawing methodology to accommodate high-DPI displays.
  • Hovering on the waterfall display now shows the frequency as a tooltip.
  • The waterfall spectrum display has been substantially improved. This does mean that you'll have to re-select your preferred spectrum choice on first use, if your choice wasn't the default of 'Cumulative'. 'Linear Average' with a smoothing factor of 3 is particularly useful; either is in general a more helpful choice than the raw data shown by 'Current'.
  • The waterfall display for Cumulative was displaying raw power, uncorrected to dB. Fixed.
  • The waterfall display will now intelligently redraw on resize, rather than clearing.
  • The 200Hz WSPR portion of the 30m band is now displayed more clearly, i.e., we label it as WSPR, and the sub-band indicator is located in a manner consistent with that of the JS8 sub-band indicators.
  • Converted the boost library to an out-of-tree build.
  • Updated the sqlite library.
  • Updated the CRCpp library.
  • Added the Eigen library.
  • Fixed an issue where the message server and APRS client should have been moved to the network thread, but because they had parent objects, the moves failed.
  • Ported the updated PSK reporter from the upstream WSJTX code, which allows for use of a TCP connection, and implements all of the advances in the upstream code, i.e., more efficient spotting to PSK Reporter, omission of redundant spots, and posting of spots is now spread more widely in time. As with WSJTX, temporarily, in support of the HamSCI Festivals of Eclipse Ionospheric Science, spots will be transmitted more frequently during solar eclipses; see https://www.hamsci.org/eclipse for details.
  • Incorporated revised audio device selection methodology from the upstream WSJTX implementation:
    1. Where possible audio devices that disappear are not forgotten until the user selects another device, this should allow temporarily missing devices or forgetting to switch on devices before starting JS8Call to be handled more cleanly.
    2. Enumerating audio devices is expensive and on Linux may take many seconds per device. To avoid lengthy blocking behavior until it is absolutely necessary, audio devices are not enumerated until one of the "Settings->Audio" device drop-down lists is opened. Elsewhere when devices must be discovered the enumeration stops as soon as the configured device is discovered. A status bar message is posted when audio devices are being enumerated as a reminder that the UI may block while this is happening.
  • Status messages couldn't be displayed in the status bar due to the progress widget taking up all available space; for the moment at least, it's restricted to be a defined size.
  • Corrected a display resizing issue in the topmost section; seems to have affected only Linux systems, but in theory was broken on any platform.
  • Updated the UDP reporting API to be multicast-aware.
  • Separated display of distance and azimuth in the Calls table.
  • Hovering over an azimuth in the Calls table will now display the closest cardinal compass direction.
  • Azimuth and distance calculations will now use the 4th Maidenhead pair, i.e., the Extended field, if present.
  • The Configuration dialog would allow invalid grid squares to be input; it will now allow only a valid square.
  • Removed the undocumented and hidden Audio/DisableInputResampling=true configuration option.
  • Windows, and only Windows, required a workaround to the Modulator as a result of changes in Qt 6.4, which presented as no sound being generated; OSX and Linux worked fine. The issue is described in https://bugreports.qt.io/browse/QTBUG-108672, and the workaround seems like a grody hack, but it's what WSJTX uses for the same issue, so we're in fine company here.

Qt6 by default will display using a platform-specific style. As a result, there will be some minor display inconsistencies, e.g., progress bars, as displayed in the bottom of the main window, are particularly platform-specific.

The earliest version of OSX that Qt6 supports is 11.0. It's set up to compile and link to run on 11.0 or later, but I've only tested it on 14.6, 14.7, and 15.3.

Testing on Linux and Windows has been ably provided by Joe Counsil, K0OG, who does the bulk of the grunt work while I largely just type things and drink coffee.

Allan Bazinet, W6BAZ