Commit Graph

5846 Commits (ms-rade-rx-features)

Author SHA1 Message Date
Mooneer Salem f1a66f0e7f Revert all samplerate changes. These will go in another PR. 2024-12-03 23:23:45 -08:00
Mooneer Salem 7b2e79d52b ctests should now be fixed. 2024-12-03 22:41:07 -08:00
Mooneer Salem a390463c6c Ensure we're flushing out our output FIFO if we stop receiving input. 2024-12-03 08:04:41 -08:00
Mooneer Salem 04504b72ce Fix build errors. 2024-12-03 07:15:09 -08:00
Mooneer Salem 4c20eba91c Smooth out gaps in audio caused by how soxr works. 2024-12-03 00:14:38 -08:00
Mooneer Salem dc37633328 Enable SIMD for aarch64. 2024-12-02 02:14:12 -08:00
Mooneer Salem 22a49fe684 Disable ctests for soxr. 2024-12-01 09:15:13 -08:00
Mooneer Salem a13103a09f Fix Windows packaging failures. 2024-11-30 23:49:06 -08:00
Mooneer Salem 592136973c Fix failing ctests. 2024-11-30 23:13:28 -08:00
Mooneer Salem 0d9fce6938
Go back to default settings. 2024-11-30 17:52:30 -08:00
Mooneer Salem dea68ad23c
Another experiment to decrease latency. 2024-11-30 16:43:28 -08:00
Mooneer Salem 49705309e9
Try to reduce latency. 2024-11-30 13:57:05 -08:00
Mooneer Salem c245394dd8
Update main.cpp 2024-11-30 12:28:07 -08:00
Mooneer Salem 22c25869ee
Remove missed code that's no longer needed. 2024-11-30 12:15:28 -08:00
Mooneer Salem 16bfed4951
Update paCallbackData.h 2024-11-30 11:37:03 -08:00
Mooneer Salem b5f436e00b Fix additional compiler error. 2024-11-30 11:02:10 -08:00
Mooneer Salem 8d5648a7e2 Update Linux build instructions. 2024-11-30 10:44:29 -08:00
Mooneer Salem 560ec7cd49 Forgot change to have Windows build work. 2024-11-30 10:40:20 -08:00
Mooneer Salem 4aba48f0dd Switch over to soxr for further experimentation. 2024-11-29 01:45:46 -08:00
Mooneer Salem ce8c1efd6b We don't actually need to add additional attenuation anymore. 2024-11-28 00:56:20 -08:00
Mooneer Salem 60406831ca Opt for improved resampling audio quality. 2024-11-28 00:22:21 -08:00
Mooneer Salem 2c486ee13e Adjust scaling to match PR example. 2024-11-28 00:04:58 -08:00
Mooneer Salem 60bb5e1816 Add -txfile command line argument to feed in WAV file through TX pipeline. 2024-11-27 23:47:11 -08:00
Mooneer Salem d3cd11a3ae Add command line option for TX feature capture. 2024-11-27 01:45:00 -08:00
Mooneer Salem 747ce6345f Fix compilation error after upgrading MacPorts. 2024-11-27 01:44:12 -08:00
Mooneer Salem 169a673e4b Allow path to feature file to be specified at the command line. 2024-11-24 23:42:10 -08:00
Mooneer Salem 1fa572edc9 Initial implementation of RX feature capture. 2024-11-24 23:29:46 -08:00
Mooneer Salem 44b33f84ec
Adopt C port of core RADE code (#774)
* WIP checkin so we can build in Windows environment.

* Use version of opus built by RADE to avoid Linux compiler errors.

* Bring back fargan_config.h generation.
2024-11-24 08:32:25 -08:00
Mooneer Salem 8f6f6cae4e latest user manual PDF 2024-11-24 02:56:08 +00:00
Mooneer Salem 8b8755332b
Clean up how logging works. (#773)
* Begin cleanup of logging.

* Fix Windows build failure.

* Bump up minimum macOS version to 10.13 to make compiler happy about fmemopen().

* Switch printf/fprintf to log_* calls.

* Remove spurious newlines from log messages.

* Remove g_verbose from codebase.

* Ensure Hamlib logs via ulog.

* Convert cerr/cout to ulog.

* Fix unit test and Linux compiler errors.

* Strip newlines from end of hamlib log messages.

* It would help if we actually printed the non-newline version of the log message.

* Actually fix Windows compiler errors.

* Replace additional printfs with log_* after merge from main.

* Add locking around logging to make sure we don't lose any.

* Try disabling color to get Windows tests working again.

* Use regular wine instead of wine-staging.

* Revert "Use regular wine instead of wine-staging."

This reverts commit 88bf4ef7c2.

* Add missed changelog entries.

* Poll for xvfb to come up.

* Try framebuffer dir instead.

* Fix typo.

* Try 24 bit color.

* Try xvfb-run instead.

* Fix xvfb-run command.

* Try the screen arguments again.

* Try wine-devel instead as it might be more stable.

* Update cmake-windows.yml

* Lock log mutex before running RADE RX.

This is to avoid test output loss on Windows.

* Log to stderr and not stdout.

* Update RADEReceiveStep.cpp
2024-11-23 18:54:21 -08:00
Mooneer Salem 0d40130f2e
Add tests to verify lack of sync loss in RX (#761)
* Add logic for automatically running RX/TX tests.

* Add GH action to load loopback audio driver.

* Add ctest configuration file.

* Try loading modules after installing packages.

* Add additional required packages.

* Add automated test script.

* Temporarily disable GH action changes.

* Have RX take 60 seconds as well.

* Ubuntu upgrade broke /bin/sh.

* Fix issue preventing no zero message from printing.

* Print sync status once per second and validate no resyncs.

* Fix spelling error.

* Switch to RADE main.

* Another attempt at enabling aloop in the GH action.

* Use _ instead of - for module name.

* Use pacmd to create virtual sound devices instead.

* Check sync state every 100ms instead of every 1s.

* Fix issue preventing sync changes from making it to the log.

* Add full duplex test.

* Add full duplex tests to CMakeLists.

* Generate sine wave for TX.

* Update GH action to allow new ctests to run.

* Add debugging for UT.

* pipewire-pulse is needed to actually use PipeWire.

* Install suggested packages to get additional required commands.

* Can't use --install-suggests, so explicitly mention packages.

* Enable pipewire service.

* Fix call to helper Python script.

* Show status of pipewire prior to running tests.

* Remove status display from GH action.

* Use module-loopback to simulate TX plugged into RX.

* Try explicitly starting pipewire.

* Use strict 20ms cadence for TX/RX thread instead of relying on the audio subsystem.

* Need to install wireplumber as well.

* Update regular expression in ctest as sync change message isn't printed unless there's a problem.

* Add RADE to ctests.

* RADE ctest pass wasn't actually a pass.

* Need to explicitly check for LINUX for PulseAudio based ctests.

* Reenable PortAudio build.

* Invert test criteria.

* Show pipewire status just before thye test run.

* List sink info prior to each test.

* Make sure virtual devices aren't suspended.

* Need to have the suspension disable code in another file.

* Actually, installing pulseaudio isn't a good idea.

* Need a window manager for things to refresh properly.

* Display wireplumber info after FDV start.

* Add additional sleep to guarantee that FreeDV is listening when wireplumber status is printed.

* Add pw-top for additional info.

* dbus needs to be running for pipewire to work.

* Need to wait a bit for Xvfb to become available.

* Get additional pipewire logs prior to UT run.

* Install/run rtkit too.

* Attempt to get pipewire logs after test execution.

* Looks like we still need to start pipewire manually.

* Further increase pipewire debugging.

* Too much debugging output before.

* Upgrade packages first before installing new ones.

* We weren't actually running 24.04 on GH.

* Adjust packages due to using 24.04.

* Suppress spellcheck issue.

* Disable pipewire debugging.

* Test changes to PulseAudioDevice to improve dropouts.

* Update tests to reflect 1 resync per 120s proposed threshold.

* Disable additional debugging output.

* Allow override of test audio devices from the command line.

* Enable ctests on macOS.

* getSync() isn't thread safe, causing false UT failures.

* Install virtual audio devices in CI environment for macOS.

* Use script to build drivers instead.

* Oops, forgot to remove some code first.

* Adjust permissions of script.

* Make tests work on Linux again with loopback devices.

* Attempt change to make virtual audio devices actually build.

* Try building on x86 macOS.

* Fix quote escape issues.

* More quote escape issues.

* Forgot missed folder change.

* Enable mirrored virtual audio devices.

* Fix incorrect device names in ctest execution.

* Need to append '2ch' to the other device names too.

* Clear sync when transmitting.

* Grant microphone access to FreeDV.

* Need to back out one of the changes due to voice keyer problems.

* Attempt to fix CI failures.

* Take screenshot of macOS CI environment for debugging.

* Let's try running the script separately to get a screenshot.

* Screenshot was in the wrong place.

* Need to grant access to provisioner for microphone.

* Alternate way of granting permissions.

* Oops, remove call to tccutil.

* Per PLT meeting, we shouldn't drop sync at all.

* Shorten test time to 60s.

* More tweaks to make sure that the devices are correct on Linux.

* Disable screen capture.

* Additional fixes to resolve script problems on macOS.

* I don't think previous PulseAudio changes made anything better.

* Improve dropouts when using PulseAudio/pipewire.

* Revert "Improve dropouts when using PulseAudio/pipewire."

This reverts commit f16c27f4d3.

* Have stream write callback get audio data from higher level code.

* Add PowerShell script for Windows testing.

* Move ctest files into a separate location for organization purposes.

* Add parameters for PowerShell test script.

* Add help text for the script.

* Update conf file path due to previous commits.

* Fix syntax errors in script.

* Experiment: Test Windows installer on GH action.

* Try actually running full duplex test inside Windows.

* Add 5 seconds to allow Xvfb to fully come up.

* Update other actions to use latest checkout.

* Need VS command prompt.

* Add additional debugging.

* Maybe we need to throw an exception to make the GH action fail.

* List devices another way.

* Add yet more debugging.

* Fix audio devices.

* Try with 700D to at least make sure we're on the right track.

* Fix GH action.

* Fix syntax errors.

* Try installing VAC instead as FreeDV is crashing with Scream.

* Fix syntax error.

* Try different hardware ID.

* Ignore error code that actually means success.

* Oops, fix syntax error.

* Try earlier version of VAC.

* Fix archive commands.

* Fix path.

* Probably need to start AudioEndpointBuilder too.

* Stop services first.

* Print out any errors that might be getting thrown.

* Revert "Print out any errors that might be getting thrown."

This reverts commit 15e3908c80.

* Disable test GH action for Windows and investigate failure later.

* Reenable Windows testing with new way of debugging.

* Add logging based on clues from Windows event log.

* Revert "Add logging based on clues from Windows event log."

This reverts commit de4f11362e.

* Use procdump to get a crash dump.

* Full dump seems to take a while.

* Run procdump in the background.

* Log audio errors.

* Print device name in error message.

* Make sure message box doesn't display.

* Enable additional PortAudio debugging.

* Add yet more logging.

* Add additional Registry key to ensure FreeDV has microphone permissions.

* Need to add Registry key.

* Add more keys to try to force microphone permission.

* Clean up debugging, add tests for RADE/700E/1600.

* More cleanup.
2024-11-23 08:08:40 -08:00
Mooneer Salem 36566a7f22
Install Visual Studio Redistributable. (#771)
* Install Visual Studio Redistributable.

* Fix errors in initial commit.
2024-11-18 23:16:28 -08:00
Mooneer Salem 8dd540c7b2
Merge pull request #769 from drowe67/ms-report-rade
Report RX of RADE signals without callsign or SNR.
2024-11-12 08:51:51 -08:00
Mooneer Salem a19f5e7a67 Add git hash to reported version number. 2024-11-12 07:48:18 -08:00
Mooneer Salem 31efc56bb0 Only report RADE RX once a second to the server. 2024-11-11 00:02:47 -08:00
Mooneer Salem f62345538e Report RX of RADE signals without callsign or SNR. 2024-11-10 23:45:55 -08:00
Mooneer Salem 706d60249e
Merge pull request #767 from drowe67/ms-rade-warning-cleanup
Suppress spurious warnings from Opus/RADE compilation.
2024-10-28 02:42:17 -07:00
Mooneer Salem 8751a56fb9 Forgot to generate fargan_config.h for non-Apple platforms. 2024-10-28 02:12:40 -07:00
Mooneer Salem bcd58e48a1 Suppress spurious warnings from Opus/RADE compilation. 2024-10-28 02:04:08 -07:00
Mooneer Salem 84ac1ddfe7
Merge pull request #766 from drowe67/ms-rade-startup-time
Precompile Python files to improve startup time.
2024-10-28 01:34:05 -07:00
Mooneer Salem 5620de226b Test precompiling Python files to improve startup time. 2024-10-28 00:37:19 -07:00
Mooneer Salem 74f44f96a4
Merge pull request #758 from drowe67/ms-linux-docs
Update README with Linux instructions for RADE.
2024-10-26 08:34:03 -07:00
Mooneer Salem de93b833f2 Merge branch 'v2.0-dev' into ms-linux-docs 2024-10-22 07:46:05 -07:00
Mooneer Salem a96029f4dc Merge branch 'master' into v2.0-dev 2024-10-22 07:45:44 -07:00
Mooneer Salem df4cc6fb68
Merge pull request #745 from drowe67/ms-hamlib-timeout
Set timeout for Hamlib comms to avoid GUI getting stuck.
2024-10-22 07:41:45 -07:00
Mooneer Salem 6e8db3fe8b
Merge pull request #754 from drowe67/ms-rade-sync-indicator
Fix bug preventing sync indicator from turning green with RADE.
2024-10-21 23:48:47 -07:00
Mooneer Salem ef33d48262 $PWD -> $(pwd) 2024-10-21 17:05:24 -07:00
Mooneer Salem 08c84e5633 Additional updates per PR feedback. 2024-10-21 17:04:22 -07:00
Mooneer Salem 29b275b239 Use $PWD instead of backticks. 2024-10-21 13:02:26 -07:00
Mooneer Salem 8887b22ab9 Manually specify Python packages to ensure GPU accelerated ones aren't unnecessarily downloaded. 2024-10-21 12:58:47 -07:00