
Description
NAudio is an audio and MIDI library for .NET written by Mark Heath. It is not an application you double-click but a toolkit for people writing code: playback, recording, format conversion, mixing and reading or writing audio files would otherwise mean talking to WASAPI, ASIO and similar low-level interfaces directly, and NAudio wraps those in classes you can just call.
Playing an mp3 takes a handful of lines, and going deeper you can wire up sample streams yourself, chain effects, or handle MIDI messages. For a recorder, a player, a batch audio script, or simply adding a notification sound to a desktop app, it is far less work than facing the platform APIs alone.
Playback and recording: Several audio interfaces including WASAPI and ASIO are wrapped, so picking a device is enough to get sound out or in without hand-managing buffers and callbacks.
File reading, writing and conversion: Read and write WAV and decode common formats such as MP3 and AIFF, with ready-made classes for converting between sample rates, bit depths and channel counts.
Sample stream pipeline: Audio moves between stages as a stream, so mixing, resampling and applying effects are each just another link you add to the chain.
MIDI support: Send and receive MIDI messages and read or write MIDI files, which gives a sequencer or a hardware keyboard integration something to build on.
Reference only what you need: Recent versions split the old single assembly into focused packages, so a project that only plays audio does not drag MIDI and effects along, and the library runs cross-platform and compiles under Native AOT.
Playing an mp3 takes a handful of lines, and going deeper you can wire up sample streams yourself, chain effects, or handle MIDI messages. For a recorder, a player, a batch audio script, or simply adding a notification sound to a desktop app, it is far less work than facing the platform APIs alone.
Features
Playback and recording: Several audio interfaces including WASAPI and ASIO are wrapped, so picking a device is enough to get sound out or in without hand-managing buffers and callbacks.
File reading, writing and conversion: Read and write WAV and decode common formats such as MP3 and AIFF, with ready-made classes for converting between sample rates, bit depths and channel counts.
Sample stream pipeline: Audio moves between stages as a stream, so mixing, resampling and applying effects are each just another link you add to the chain.
MIDI support: Send and receive MIDI messages and read or write MIDI files, which gives a sequencer or a hardware keyboard integration something to build on.
Reference only what you need: Recent versions split the old single assembly into focused packages, so a project that only plays audio does not drag MIDI and effects along, and the library runs cross-platform and compiles under Native AOT.
