Free.NET Library for Manipulating Audio File Formats

Play, Record, Encode, Read & Convert Audio files via .NET API.

NAudio is an open source API to manipulate audio files programmatically. The API allows the .NET Developer to read audio from different standards, playback audio, convert audio formats, record system audio and more. The API intends to provide a comprehensive set of useful utility classes by using which you can construct your own audio manipulation application.

Using the API, you can playback audio using Waveout, DirectSound, ASIO & WASAPI and can read audio from WAV, AIFF, MP3, G.711, ADPCM, WMA, AAC, MP4 and more. The API allows encoding audio using and ACM codec installed on your machine, you can mix and manipulate audio streams using 32-bit mixing engine.

Previous Next

Getting Started with NAudio

The best way to install to install NAudio is via NuGet. Run the following command and install NAudio in you application.

Install NAudio from NuGet

 Install-Package NAudio

Play Audio File using Free C# API

NAudio allows .NET programmers play audio files from their own .NET applications. After your file is successfully opened you can use WaveOutEvent as an output device to play audio. You can simply play audio by passing AudioFile to outPutDevice with Init method and call Play() method.

Free C# API to Convert MP3 to WAV file

The API allows the developers to convert MP3 files to other file formats. The developers can add MP4 conversion feature in their own application, if the ACM MP3 codec is present in the application machine. This codec is usually pre installed in most version of Windows. Converting MP3 to WAV is pretty simple you just need to open MP3 file using MP4FileReader and convert it using WaveFileWriter.CreateWaveFile() method.

Concatenate Multiple Audio Files via C#

The API allows the developers to Concatenate multiple audio files into single audio file. The Concatenation process is pretty simple. You can load your multiple audio files using AudioFileReader() method and Concatenate them using ConcatenatingSampleProvider() method.