pdn-soundmodem-windows 0.84.0

dotnet add package pdn-soundmodem-windows --version 0.84.0
                    
NuGet\Install-Package pdn-soundmodem-windows -Version 0.84.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="pdn-soundmodem-windows" Version="0.84.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="pdn-soundmodem-windows" Version="0.84.0" />
                    
Directory.Packages.props
<PackageReference Include="pdn-soundmodem-windows" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add pdn-soundmodem-windows --version 0.84.0
                    
#r "nuget: pdn-soundmodem-windows, 0.84.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package pdn-soundmodem-windows@0.84.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=pdn-soundmodem-windows&version=0.84.0
                    
Install as a Cake Addin
#tool nuget:?package=pdn-soundmodem-windows&version=0.84.0
                    
Install as a Cake Tool

pdn-soundmodem-windows

Windows backends for the pdn-soundmodem core, so that a Windows application can run the modem in its own process over a USB radio interface. Published to NuGet as pdn-soundmodem-windows by the same release as the core, on the same version, depending on the core at exactly that version. The Linux daemon does not use or reference this library; the core knows nothing about it.

What is here

  • WasapiAudioInput / WasapiAudioOutput: WASAPI capture and render as the core's IAudioInput and IAudioOutput. Shared mode, mono float at 48 kHz, with Windows doing any conversion from the endpoint's mix format. All COM runs on one dedicated MTA thread per stream. The output plays silence between transmissions and its Drain returns once the last real sample has left the audio engine, which is what the transmitter unkeys on.
  • HidPtt: PTT through a CM108-compatible HID GPIO pin (CM108/CM119 dongles, Digirig-style interfaces, and the AIOC from firmware 1.2.0). The same report bytes as the core's Linux Cm108Ptt. Serial PTT needs nothing Windows-specific: the core's SerialPtt works as it is with a COMn port.
  • RadioInterfaces.Discover(): every audio device, with the HID collection and COM port that belong to the same physical device (by Windows container ID), so an application can offer "AIOC Audio (HID PTT, COM8)" rather than three unrelated lists.
  • EndpointLevel: the endpoint's own level in dB, capped at 0 dB.
  • EndpointHygiene: checks, and puts right, the Windows settings that damage a radio interface's audio: level above 0 dB, mute, audio enhancements, hardware AGC, hardware gain above 0 dB, an open CM108 mic-to-speaker monitor path, and "Listen to this device". Spatial sound is reported but cannot be switched off programmatically.

The endpoint rules and the undocumented IPolicyConfig and topology interop come from M0LTE/altmixer, where they were measured against real CM108 and AIOC devices; see its docs/windows-audio.md.

Licence

AGPL-3.0-or-later, unlike the GPL-3.0-or-later core. It is new code written for a Windows application and derived from nothing in QtSoundModem or Dire Wolf; GPLv3 section 13 permits the combination, on the same footing as the AGPL M0LTE.Flex and Packet.Ax25 dependencies the core already has.

Builds everywhere, runs on Windows

The project targets plain net10.0 and marks its Windows-only types with [SupportedOSPlatform("windows")], so the solution still builds on the Linux CI runners without Windows targeting packs. Its tests (tests/Packet.SoundModem.Windows.Tests) cover only the device-free logic and run on any platform; the WASAPI and HID paths need a Windows machine with an interface attached.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.84.0 0 10/5/2026
0.83.0 87 9/27/2026
0.82.0 86 9/27/2026
0.81.0 76 9/27/2026