In simple English
This library lets your C# programs play, record, and edit sound. You can load music files, mix multiple audio streams together, and talk to your soundcard. It handles file formats like MP3, WAV, and FLAC without needing external helper tools. The project is free to use in your own programs under the MIT licence. You need to know C# and be comfortable with the .NET platform to make it work.
What it is
NAudio is a modular audio library for the .NET ecosystem that splits its features into focused NuGet packages. It provides tools for playback, capture, effects, MIDI handling, and cross-platform file input and output.
What it is good for
Solo developers building desktop audio players, recording tools, or games in C# who need direct control over sound streams and hardware devices.
- Split into smaller packages so you only pull in the code you actually need.
- Supports cross-platform file reading and writing via libsndfile.
- Free MIT licence allows use in commercial software without fees.
- Requires .NET 9.0 or later, so older legacy projects cannot update easily.
- Advanced low-latency sound APIs like WASAPI and ASIO remain restricted to Windows.
- Audio programming involves complex concepts like sample rates and buffers that require careful study.
Writing low-level audio stream handling and file decoders from scratch in C#.
Visual Studio or Visual Studio Code for writing .NET code.
- snapcast/snapcast8.0k stars
A server and clients that play one audio stream in several rooms, kept in time with each other.
- MusicPlayerDaemon/MPD2.8k stars
A background music player with no interface of its own, controlled over a network by separate client programs.
- AcademySoftwareFoundation/OpenTimelineIO2.0k stars
An interchange format and library for editing timelines: the order and length of cuts, and references to the media, but not the media.
dotnet add package NAudio