A comprehensive .NET audio library for playback, recording, format conversion, MIDI, and audio manipulation.
NAudio is an open-source audio and MIDI library for .NET, written in C#. It provides a comprehensive set of utility classes for playing, recording, converting, and manipulating audio files and streams. It solves the problem of limited native audio support in .NET by offering extensive format compatibility, multiple audio APIs, and a flexible architecture for building custom audio applications.
.NET developers building applications that require audio playback, recording, format conversion, MIDI handling, or real-time audio processing, such as media players, audio editors, game sound engines, or VoIP tools.
Developers choose NAudio for its extensive feature set covering nearly all common audio tasks in .NET, its permissive MIT license for commercial use, and its mature, well-documented codebase with strong community support and regular updates.
Audio and MIDI library for .NET
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple playback and recording APIs including WaveOut, DirectSound, ASIO, and WASAPI, allowing flexibility for different audio hardware and use cases.
Reads and writes a wide range of audio formats like WAV, AIFF, MP3, AAC, and WMA using Windows ACM and Media Foundation codecs, simplifying file handling.
Base classes are designed for easy inheritance, enabling developers to create custom audio components such as new effects or providers seamlessly.
Includes numerous tutorials, demo applications, and Pluralsight courses, providing thorough guidance for learning and implementation.
Heavily relies on Windows-specific APIs like Media Foundation and ACM codecs, limiting true cross-platform compatibility and locking it to Windows ecosystems.
Requires understanding of digital audio fundamentals and signal chains, as emphasized in the training courses, making it challenging for developers new to audio programming.
.NET performance is noted as unsuitable for very low latency audio work in the FAQ, which can be a barrier for professional-grade real-time applications.