Skip to content

Bump the nuget group with 2 updates - #40

Merged
markovcd merged 2 commits into
mainfrom
dependabot/nuget/nuget-22d3ef058b
Oct 23, 2026
Merged

markovcd merged 2 commits into
mainfrom
dependabot/nuget/nuget-22d3ef058b

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Updated NAudio.Wasapi from 3.1.0 to 3.3.0.

Release notes

Sourced from NAudio.Wasapi's releases.

3.3.0

A packaging and nullability release. The NAudio meta-package is now a single
net9.0 package that brings the Windows backends (WinMM and WASAPI) to plain
netX.0 projects, so a net10.0 console app on Windows gets working MP3
decoding and playback rather than a cross-platform subset that threw
NotSupportedException. In exchange it no longer pulls in NAudio.Asio,
NAudio.Dmo or NAudio.WinForms, which must now be referenced directly if
used. NAudio.WinMM, NAudio.Asio, NAudio.Dmo and NAudio.Vst3 likewise
now target plain net9.0.

Every NAudio package is now compiled with nullable reference types enabled.
This is a source-level change with no binary breaks, but projects with
nullable enabled may see new warnings, and a number of members that used to
throw NullReferenceException now throw ObjectDisposedException or
InvalidOperationException instead.

The fixes centre on WasapiRecorder/WasapiCapture restarting cleanly after
both successful and failed starts, buffer and handle lifetime bugs in the
winmm MIDI backend, and frame-aligned seeking in MediaFoundationReader.

  • Breaking: the NAudio meta-package is now a single net9.0 package that pulls in NAudio.Core, NAudio.Midi, NAudio.WinMM and NAudio.Wasapi on every target framework. A plain netX.0 project on Windows (e.g. a console app on net10.0) now gets Mp3FileReader, WaveOut, WasapiPlayer and an AudioFileReader that reads MP3, where previously it silently got a cross-platform subset that threw NotSupportedException (#​1472). It no longer includes NAudio.Asio, NAudio.Dmo or NAudio.WinForms: add those packages if you use AsioOut/AsioDevice, DirectSoundOut or the DMO effects, or WaveOutWindow/WaveInWindow/the NAudio.Gui controls. AudioFileReader now chooses its Media Foundation/ACM paths at runtime, and off Windows its NotSupportedException messages point to NAudio.SoundFile. NAudio.Extras is now single-target net9.0, with AudioPlaybackEngine marked Windows-only (#​1485)
  • NAudio.WinMM, NAudio.Asio, NAudio.Dmo and NAudio.Vst3 now target plain net9.0 instead of net9.0-windows, matching NAudio.Wasapi. They remain Windows-only, enforced by [SupportedOSPlatform("windows")], but can now be referenced directly from a plain netX.0 project (calls show CA1416 warnings unless guarded or the project is marked Windows-only) and built on Linux/macOS without EnableWindowsTargeting. No change for projects targeting netX.0-windows (#​1482)
  • Nullable reference types in NAudio.Core - NAudio.Core is now compiled with nullable reference types enabled, so its public API carries nullability annotations (e.g. WaveFileReader.ReadNextSampleFrame and Mp3Frame.LoadFromStream return nullable types, and Mp3Frame.RawData is byte[]? when a frame is read without its data). This is a source-level change only: there are no binary breaks, but projects with nullable enabled may see new warnings, and overrides of NAudio.Core virtual members may need matching annotations. XingHeader.LoadXingHeader now returns null for a frame read without its data instead of throwing. Thanks to @​Seb-stian (#​1452)
  • Nullable reference types in NAudio.Midi - NAudio.Midi is now also compiled with nullable reference types enabled (e.g. MidiInMessageEventArgs.MidiEvent and NoteOnEvent.OffEvent are nullable). Source-level change only; projects with nullable enabled may see new warnings. MidiEvent.ReadNextEvent now throws FormatException instead of NullReferenceException for running status with no previous event, and RawMetaEvent treats null data as empty (#​825)
  • Nullable reference types in NAudio.WinMM - NAudio.WinMM is now compiled with nullable reference types enabled (e.g. AcmDriver.FindByShortName and WaveCapabilitiesHelpers.GetNameFromGuid return nullable types, and AcmDriver.ShowFormatChooseDialog has nullable out parameters). Source-level change only; projects with nullable enabled may see new warnings. WaveOut.OutputWaveFormat before Init now throws InvalidOperationException, AcmStream members throw ObjectDisposedException after dispose, and GetNameFromGuid returns null instead of throwing when the registry key is missing, where each previously threw NullReferenceException (#​825)
  • Nullable reference types in NAudio.SoundFile and NAudio.Sampler - both packages are now compiled with nullable reference types enabled (e.g. the SoundFileTags fields, SoundFileWriterOptions.Tags and SoundFileException.Function are nullable, and the TryLoad methods on WaveSampleLoader / ISfzSampleLoader mark left as non-null on success and right as null for mono). Source-level change only; projects with nullable enabled may see new warnings, and custom ISfzSampleLoader implementations may need matching annotations (#​825)
  • Nullable reference types in NAudio.WinForms, NAudio.Alsa and NAudio.Extras - these packages are now compiled with nullable reference types enabled (e.g. WaveViewer.WaveStream, AlsaException.Function and the control/device events are nullable). Source-level change only; projects with nullable enabled may see new warnings. AlsaOut.OutputWaveFormat and WaveOutWindow.OutputWaveFormat now throw InvalidOperationException before Init (previously null and NullReferenceException respectively), and WaveOutWindow.Play before Init throws InvalidOperationException instead of NullReferenceException (#​825)
  • Nullable reference types in NAudio.Asio - NAudio.Asio is now compiled with nullable reference types enabled (e.g. the optional AsioPlaybackOptions.OutputChannels / AsioDuplexOptions.InputChannels, the AsioDevice/AsioOut events and the AsioDriverExt callbacks are nullable; required option members such as Source and Processor stay non-nullable). Source-level change only; projects with nullable enabled may see new warnings. AsioOut members now throw ObjectDisposedException after Dispose and AsioOut.OutputWaveFormat throws InvalidOperationException when no playback source is initialised, where they previously threw NullReferenceException or returned null (#​825)
  • Nullable reference types in NAudio.Dmo - NAudio.Dmo is now compiled with nullable reference types enabled (e.g. DirectSoundOut.PlaybackStopped and DirectSoundDeviceInfo.ModuleName are nullable). Source-level change only; projects with nullable enabled may see new warnings. DirectSoundOut.OutputWaveFormat now throws InvalidOperationException before Init instead of returning null, and the MediaObject wrappers, DmoResampler.MediaObject, WindowsMediaMp3Decoder.MediaObject and DmoOutputDataBuffer.MediaBuffer throw ObjectDisposedException after Dispose instead of returning null or throwing NullReferenceException (#​825)
  • Nullable reference types in NAudio.Wasapi (CoreAudioApi and MediaFoundation) - the NAudio.CoreAudioApi and NAudio.MediaFoundation types are now annotated for nullable reference types (e.g. AudioClient.TryGetAcousticEchoCancellationControl, MMDeviceEnumerator.TryGetDefaultAudioEndpoint, MfSourceReader.ReadSample, PropertyStoreProperty.Value and Part.AudioVolumeLevel/AudioMute/JackDescription are nullable); WasapiOut, WasapiCapture and the other top-level classes follow in a separate change. Source-level change only; projects with nullable enabled may see new warnings. The CoreAudio and Media Foundation COM wrappers now throw ObjectDisposedException when used after Dispose instead of NullReferenceException, AudioSessionManager.Sessions throws InvalidOperationException instead of returning null when sessions are unavailable, and AudioSessionControl.AudioMeterInformation / SimpleAudioVolume throw NotSupportedException instead of returning null if the session does not expose those interfaces (#​825)
  • Nullable reference types in NAudio.Wasapi (playback, capture and Media Foundation classes) - WasapiOut, WasapiCapture, WasapiPlayer, WasapiRecorder, their builders and MediaFoundationReader/StreamMediaFoundationReader/MediaFoundationEncoder are now annotated too, completing NAudio.Wasapi (e.g. WasapiPlayer/WasapiRecorder.DeviceId and DeviceFriendlyName, LowLatencyUnavailableReason, WasapiRecorder.AcousticEchoCancellationControl, WasapiPlayer.GetSupportedExclusiveFormat, MediaFoundationEncoder.SelectMediaType and the playback/recording events are nullable). Source-level change only; projects with nullable enabled may see new warnings. The WASAPI classes now throw ObjectDisposedException when used after Dispose, and report InvalidOperationException instead of NullReferenceException through PlaybackStopped when playback is started without Init (#​825)
  • Nullable reference types in NAudio.MacOS - NAudio.MacOS is now compiled with nullable reference types enabled (e.g. AudioSystemObject.DefaultInputDevice/DefaultOutputDevice, the ConvertUIDToDevice-style lookups, AudioObject.Owner, AudioDevice.Icon, ExtendedAudioFileReaderSettings.OutputFormat, ExtendedAudioFileWriterSettings.FileType/ProvidingFormat and the player, recorder and property-listener events are nullable). Source-level change only; projects with nullable enabled may see new warnings. Object-list properties such as AudioSystemObject.Devices now skip unknown object IDs instead of returning null entries, the parameterless CoreAudioPlayer/CoreAudioRecorder constructors throw InvalidOperationException instead of ArgumentNullException when there is no default device, and ExtendedAudioFileWriter captures ProvidingFormat when created rather than re-reading the settings object on every write (#​825)
  • Fixed WasapiRecorder and WasapiCapture failing with AUDCLNT_E_ALREADY_INITIALIZED when restarted after a start that failed late in initialization (e.g. no AEC reference control); the original error is now reported again (#​1493)
  • Fixed WasapiRecorder and WasapiCapture being left in the Starting state when initialization throws, so later StartRecording calls failed with "Already recording". (#​1490)
  • Fixed WasapiRecorder not able to re-start after successfully stopping the recorder. (#​1479)
  • Fixed several buffer and handle lifetime bugs in the winmm MIDI backend: MidiOut.SendBuffer no longer frees a sysex buffer while the driver may still own it, MidiIn now stops input before resetting it, and neither class calls into winmm with a handle it never opened. MidiOut.SendBuffer now blocks until the driver releases the buffer and throws MmException if the send fails (#​1478)
  • Fixed MediaFoundationReader reporting a Position that was not a whole number of frames after seeking a compressed file (e.g. MP3 or AAC), up to a frame before the requested position, and a Length that could include a partial frame. Seeks now round down to a frame boundary and land exactly on it (#​1488)

3.2.0

A feature and tidy-up release. Its headline is a first preview of macOS
support: the new NAudio.MacOS package wraps Core Audio for playback and
recording, Extended Audio File Services for reading and writing compressed
formats, and AudioConverter for resampling. It ships pre-release only while its
API settles, alongside the stable versions of the other packages. VB.NET users
also get base classes and a guide that keep the NAudio 2 array-based Read
signature.

Several legacy APIs that have modern replacements are now [Obsolete], to be
removed in the next major version. The
fixes include DirectSoundOut, which failed every playback in 3.1.0, and
WasapiPlayer/WasapiOut getting stuck in the Playing state after a source
error.

  • macOS support (preview) - A new wrappers library is added wrapping macOS native API's for playback/recording, reading/writing files and resampling audio. The NAudio.MacOS package ships pre-release only (X.Y.Z-preview.N) while its API settles, so it stays pre-release alongside stable releases of the other packages. Special thanks to @​mdcdi1315 (#​1325) for the work and the tests. For more information, see the design doc that describes the decisions that helped shape the wrappers. (#​1398)
  • VB.NET support - Added SampleProviderBase and WaveProviderBase, base classes that keep the NAudio 2 Read(buffer, offset, count) signature for languages that cannot name a Span<T> in a method signature, and a Using NAudio from VB.NET guide covering playback, recording and custom providers from VB (#​1426)
  • Deprecated legacy APIs that have modern replacements: Wave16ToFloatProvider, WaveFloatTo16Provider and Wave32To16Stream (use ToSampleProvider() / ToWaveProvider16()), IgnoreDisposeStream (no longer needed), ByteArrayExtensions (use the BCL), MidiMessage (use the typed MIDI events), ResamplerDmoStream/DmoResampler (use MediaFoundationResampler or WdlResamplingSampleProvider), DmoEffectWaveProvider and the Dmo* effects (use NAudio.Effects), AsioOut's recording path (use AsioDevice), WaveFilter, and ProgressLog. Added AsioOut.IsSupported() and deprecated the lowercase isSupported() (#​1466)
  • Deprecated WaveFileReader.ReadNextSampleFrame in favour of ToSampleProvider(), which supports more formats and doesn't allocate an array per sample frame (#​1465)
  • Reduced allocations when reading and writing WAV files, added ReadOnlySpan<byte> overloads of WaveFileWriter.AddChunk and ChunkIdentifier.ChunkIdentifierToInt32, and fixed WaveChunks.GetData leaving the stream position changed when a read fails. ChunkIdentifierToInt32 now throws ArgumentOutOfRangeException for identifiers that aren't four bytes (#​1457)
  • Fixed DirectSoundOut failing every playback with DirectSoundException 0x80004001 (or an ArgumentException for a format with extra data, e.g. one read from a WAV by WaveFileReader): the secondary buffer's WAVEFORMATEX was still a GCHandle-pinned WaveFormat instance — a site missed in the #​1432 marshalling conversion, since WaveFormat no longer carries [StructLayout] — and now marshals via WaveFormat.MarshalToPtr (#​1456)
  • Fixed WasapiPlayer and WasapiOut being stranded in the Playing state, unable to play again, when the source's Read threw or the source ended before the first buffer was filled (#​1442)
  • Fixed WaveFileWriter.WriteSample and WriteSamples(short[]) throwing for plain (non-extensible) 32-bit integer PCM formats (#​1463)
  • WaveFileReader.ReadNextSampleFrame now throws InvalidDataException for a WAV header with an invalid channel count or bit depth (#​1464)
  • Changed the WaveStream.CurrentTime setter to clamp to the bounds of the stream, and corrected the XML documentation for the core audio interfaces (#​1441)
  • Reworked the macOS CoreAudioPlayer and CoreAudioRecorder non-interleaved path, used for devices that expose one mono stream per channel; the recorder now also drains buffered audio when stopped, and non-interleaved streams carrying more than one channel are rejected explicitly (preview) (#​1461)
  • ExtendedAudioFileServicesReader.CurrentTime and TotalTime on macOS now throw ObjectDisposedException after the reader is disposed, rather than a native exception (preview) (#​1451)
  • Refreshed the NuGet package icon, now rendered from the new SVG version of the NAudio logo as a sharper, square 256×256 PNG (#​1467)
  • Fixed the Help and About links in the AudioFileInspector, MidiFileConverter and MixDiff sample apps, which threw on .NET 9 instead of opening the help page or browser, and pointed the links and help pages at GitHub rather than CodePlex (#​1469)

Commits viewable in compare view.

Updated Verify.XunitV3 from 33.3.3 to 33.3.4.

Release notes

Sourced from Verify.XunitV3's releases.

33.3.4

Commits viewable in compare view.

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps NAudio.Wasapi from 3.1.0 to 3.3.0
Bumps Verify.XunitV3 from 33.3.3 to 33.3.4

---
updated-dependencies:
- dependency-name: NAudio.Wasapi
  dependency-version: 3.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget
- dependency-name: Verify.XunitV3
  dependency-version: 33.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Oct 21, 2026
@markovcd
markovcd merged commit d55d242 into main Oct 23, 2026
11 checks passed
@dependabot
dependabot Bot deleted the dependabot/nuget/nuget-22d3ef058b branch October 23, 2026 07:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant