NAudio 3.2.0
NAudio
NAudio is an open source .NET audio library written by Mark Heath and contributors.
This is the main NAudio meta-package. Installing it pulls in everything you need to play, record and manipulate audio on .NET, and adds AudioFileReader — the one-line "just open this audio file" reader that picks the right decoder for you — along with Mp3FileReader.
Requires net9.0 or later. If you need .NET Framework or .NET Standard 2.0, use NAudio 2.x.
What it pulls in
Always, on every target framework:
- NAudio.Core — the format-independent core:
WaveStream,IWaveProvider/ISampleProvider, WAV and AIFF readers and writers, mixing, resampling, DSP, and theNAudio.Effectsframework - NAudio.Midi — the MIDI event model and Standard MIDI File reading and writing
Additionally, on a Windows target framework:
- NAudio.Wasapi — WASAPI playback, capture and loopback (
WasapiPlayer/WasapiRecorder), plus Media Foundation codecs - NAudio.WinMM —
WaveOut/WaveIn, classic MIDI I/O, ACM codecs and mixer controls viawinmm.dll - NAudio.Asio — low-latency multichannel playback and capture through ASIO drivers
- NAudio.Dmo — DMO effects, the DMO MP3 decoder and resampler, and
DirectSoundOut - NAudio.WinForms — Windows Forms controls, and the window-callback
WaveOutWindow/WaveInWindow
On a non-Windows target framework only the cross-platform pieces are referenced. If you only need a subset, reference the individual packages directly rather than this meta-package.
Optional packages
These are not pulled in by the meta-package — add them explicitly if you want them:
| Package | Platform | What it gives you |
|---|---|---|
| NAudio.Sampler | cross-platform | Polyphonic software sampler — SoundFont (.sf2), SFZ and single-sample instruments |
| NAudio.SoundFile | cross-platform | Read and write WAV/AIFF/FLAC/Ogg-Vorbis/Opus/MP3 via libsndfile |
| NAudio.Alsa | Linux | AlsaOut / AlsaIn playback and capture via libasound |
| NAudio.Vst3 | Windows | VST 3 plug-in hosting (preview) — effects and instruments |
| NAudio.Extras | cross-platform (+ Windows extras) | Opinionated helpers — playback engine, capture mixing, ID3 tags |
Getting started
using NAudio.Wave;
using var audioFile = new AudioFileReader("myfile.mp3");
using var player = new WasapiPlayerBuilder().Build();
player.Init(audioFile);
player.Play();
while (player.PlaybackState == PlaybackState.Playing)
{
Thread.Sleep(500);
}
- Documentation site — tutorials and the full API reference
- GitHub repository — source, issues, and the demo applications (
NAudioDemo,NAudioWpfDemo) - Migrating from NAudio 2 to NAudio 3 — every breaking change, with before/after code
License
MIT. See the project site for source, issues, and contribution guidelines.
Showing the top 20 packages that depend on NAudio.
| Packages | Downloads |
|---|---|
|
NDILibDotNetCoreBase
Provides a wrapper to the NDI libraries for Windows, macOS, and Linux.
|
21 |
|
NDILibDotNetCoreBase
Provides a wrapper to the NDI libraries for Windows, macOS, and eventually Linux.
|
21 |
|
NDILibDotNetCoreBase
Provides a wrapper to the NDI libraries for Windows, macOS, and eventually Linux.
|
19 |
|
NDILibDotNetCoreBase
Provides a wrapper to the NDI libraries for Windows, macOS, and Linux.
|
19 |
|
NDILibDotNetCoreBase
Provides a wrapper to the NDI libraries for Windows, macOS, and eventually Linux.
|
16 |
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.MacOSpackage 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
SampleProviderBaseandWaveProviderBase, base classes that keep the NAudio 2Read(buffer, offset, count)signature for languages that cannot name aSpan<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,WaveFloatTo16ProviderandWave32To16Stream(useToSampleProvider()/ToWaveProvider16()),IgnoreDisposeStream(no longer needed),ByteArrayExtensions(use the BCL),MidiMessage(use the typed MIDI events),ResamplerDmoStream/DmoResampler(useMediaFoundationResamplerorWdlResamplingSampleProvider),DmoEffectWaveProviderand theDmo*effects (useNAudio.Effects),AsioOut's recording path (useAsioDevice),WaveFilter, andProgressLog. AddedAsioOut.IsSupported()and deprecated the lowercaseisSupported()(#1466) - Deprecated
WaveFileReader.ReadNextSampleFramein favour ofToSampleProvider(), 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 ofWaveFileWriter.AddChunkandChunkIdentifier.ChunkIdentifierToInt32, and fixedWaveChunks.GetDataleaving the stream position changed when a read fails.ChunkIdentifierToInt32now throwsArgumentOutOfRangeExceptionfor identifiers that aren't four bytes (#1457) - Fixed
DirectSoundOutfailing every playback withDirectSoundException 0x80004001(or anArgumentExceptionfor a format with extra data, e.g. one read from a WAV byWaveFileReader): the secondary buffer'sWAVEFORMATEXwas still a GCHandle-pinnedWaveFormatinstance — a site missed in the #1432 marshalling conversion, sinceWaveFormatno longer carries[StructLayout]— and now marshals viaWaveFormat.MarshalToPtr(#1456) - Fixed
WasapiPlayerandWasapiOutbeing stranded in thePlayingstate, unable to play again, when the source'sReadthrew or the source ended before the first buffer was filled (#1442) - Fixed
WaveFileWriter.WriteSampleandWriteSamples(short[])throwing for plain (non-extensible) 32-bit integer PCM formats (#1463) WaveFileReader.ReadNextSampleFramenow throwsInvalidDataExceptionfor a WAV header with an invalid channel count or bit depth (#1464)- Changed the
WaveStream.CurrentTimesetter to clamp to the bounds of the stream, and corrected the XML documentation for the core audio interfaces (#1441) - Reworked the macOS
CoreAudioPlayerandCoreAudioRecordernon-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.CurrentTimeandTotalTimeon macOS now throwObjectDisposedExceptionafter 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)
.NET 9.0
- NAudio.Core (>= 3.2.0)
- NAudio.Midi (>= 3.2.0)
.NET 9.0
- NAudio.Asio (>= 3.2.0)
- NAudio.Core (>= 3.2.0)
- NAudio.Dmo (>= 3.2.0)
- NAudio.Midi (>= 3.2.0)
- NAudio.Wasapi (>= 3.2.0)
- NAudio.WinForms (>= 3.2.0)
- NAudio.WinMM (>= 3.2.0)
.NET 9.0
- NAudio.Asio (>= 3.2.0)
- NAudio.Core (>= 3.2.0)
- NAudio.Dmo (>= 3.2.0)
- NAudio.Midi (>= 3.2.0)
- NAudio.Wasapi (>= 3.2.0)
- NAudio.WinForms (>= 3.2.0)
- NAudio.WinMM (>= 3.2.0)
| Version | Downloads | Last updated |
|---|---|---|
| 3.3.0-preview.1 | 3 | 10/18/2026 |
| 3.2.0 | 2 | 10/15/2026 |
| 3.2.0-preview.1 | 5 | 10/13/2026 |
| 3.1.1-preview.2 | 12 | 09/22/2026 |
| 3.1.1-preview.1 | 12 | 09/10/2026 |
| 3.1.0 | 9 | 09/07/2026 |
| 3.1.0-preview.2 | 10 | 09/06/2026 |
| 3.1.0-preview.1 | 14 | 09/04/2026 |
| 3.0.2-preview.2 | 10 | 09/03/2026 |
| 3.0.2-preview.1 | 17 | 08/20/2026 |
| 3.0.1 | 15 | 08/18/2026 |
| 3.0.1-preview.1 | 15 | 08/18/2026 |
| 3.0.0 | 15 | 08/16/2026 |
| 3.0.0-preview.20 | 17 | 08/10/2026 |
| 3.0.0-preview.19 | 16 | 07/29/2026 |
| 3.0.0-preview.18 | 15 | 07/18/2026 |
| 3.0.0-preview.17 | 18 | 07/15/2026 |
| 3.0.0-preview.16 | 13 | 07/01/2026 |
| 3.0.0-preview.15 | 3 | 09/25/2026 |
| 3.0.0-preview.14 | 4 | 09/25/2026 |
| 3.0.0-preview.10 | 5 | 09/08/2026 |
| 3.0.0-preview.9 | 3 | 09/25/2026 |
| 3.0.0-preview.8 | 3 | 09/25/2026 |
| 3.0.0-preview.7 | 4 | 09/21/2026 |
| 3.0.0-preview.6 | 7 | 09/19/2026 |
| 3.0.0-preview.5 | 0 | 05/11/2026 |
| 3.0.0-preview.4 | 1 | 09/25/2026 |
| 3.0.0-preview.3 | 2 | 09/18/2026 |
| 3.0.0-preview.2 | 1 | 09/16/2026 |
| 2.4.0 | 12 | 08/28/2026 |
| 2.3.0 | 21 | 05/30/2026 |
| 2.2.1 | 20 | 05/30/2026 |
| 2.2.0 | 23 | 05/30/2026 |
| 2.1.0 | 16 | 05/30/2026 |
| 2.1.0-beta.1 | 17 | 05/30/2026 |
| 2.0.1 | 23 | 05/30/2026 |
| 2.0.0 | 21 | 05/30/2026 |
| 2.0.0-beta2 | 20 | 05/30/2026 |
| 2.0.0-beta1 | 18 | 05/30/2026 |
| 1.10.0 | 22 | 05/29/2026 |
| 1.9.0 | 18 | 05/30/2026 |
| 1.9.0-preview2 | 17 | 05/30/2026 |
| 1.9.0-preview1 | 19 | 05/30/2026 |
| 1.8.5 | 18 | 05/30/2026 |
| 1.8.4 | 20 | 05/30/2026 |
| 1.8.3 | 18 | 05/30/2026 |
| 1.8.2 | 17 | 05/30/2026 |
| 1.8.1 | 20 | 05/30/2026 |
| 1.8.0 | 3 | 09/21/2026 |
| 1.7.3 | 20 | 05/30/2026 |
| 1.7.2 | 19 | 05/30/2026 |
| 1.7.1 | 18 | 05/30/2026 |
| 1.7.0 | 17 | 05/30/2026 |
| 1.7.0-beta01 | 20 | 05/30/2026 |
| 1.7.0-alpha06 | 6 | 09/10/2026 |
| 1.7.0-alpha05 | 5 | 09/19/2026 |
| 1.7.0-alpha04 | 7 | 09/08/2026 |
| 1.7.0-alpha03 | 21 | 05/29/2026 |
| 1.7.0-alpha02 | 3 | 09/08/2026 |
| 1.7.0-alpha01 | 3 | 09/08/2026 |
| 1.6.0 | 21 | 05/30/2026 |
| 1.5.7-beta | 6 | 09/20/2026 |
| 1.5.6-beta | 2 | 09/24/2026 |
| 1.5.5-beta | 3 | 09/24/2026 |
| 1.5.4-beta | 4 | 09/18/2026 |
| 1.5.3-beta | 2 | 09/24/2026 |
| 1.5.2-beta | 2 | 09/24/2026 |
| 1.5.1-beta | 2 | 09/24/2026 |
| 1.5.0 | 5 | 09/10/2026 |