Table of Contents

Namespace NAudio.Wave

Classes

AdpcmWaveFormat

Microsoft ADPCM See http://icculus.org/SDL_sound/downloads/external_documentation/wavecomp.htm

AiffFileReader

A read-only stream of AIFF data based on an aiff file with an associated WaveFormat originally contributed to NAudio by Giawa

AiffFileWriter

This class writes audio data to a .aif file on disk

BextChunkInfo

https://tech.ebu.ch/docs/tech/tech3285.pdf

BlockAlignReductionStream

Helper stream that lets us read from compressed audio files with large block alignment as though we could read any amount and reposition anywhere

BufferedWaveProvider

Provides a buffered store of samples Read method will return queued samples or fill buffer with zeroes Now backed by a circular buffer

BwfWriter

Broadcast WAVE File Writer

Cue

Holds information on a cue: a labeled position within a Wave file

CueList

Holds a list of cues

CueWaveFileReader

A wave file reader supporting cue reading

CueWaveFileWriter

A wave file writer that adds cue support

DirectSoundDeviceInfo

Class for enumerating DirectSound devices

DirectSoundOut

NativeDirectSoundOut using DirectSound COM interop. Contact author: Alexandre Mutel - alexandre_mutel at yahoo.fr Modified by: Graham "Gee" Plumb

Gsm610WaveFormat

GSM 610

Id3v2Tag

An ID3v2 Tag

ImaAdpcmWaveFormat

IMA/DVI ADPCM Wave Format Work in progress

MixingWaveProvider32

WaveProvider that can mix together multiple 32 bit floating point input provider All channels must have the same number of inputs and same sample rate n.b. Work in Progress - not tested yet

MonoToStereoProvider16

Converts from mono to stereo, allowing freedom to route all, some, or none of the incoming signal to left or right channels

Mp3FileReaderBase

Class for reading from MP3 files

Mp3Frame

Represents an MP3 Frame

Mp3WaveFormat

MP3 WaveFormat, MPEGLAYER3WAVEFORMAT from mmreg.h

MultiplexingWaveProvider

Allows any number of inputs to be patched to outputs Uses could include swapping left and right channels, turning mono into stereo, feeding different input sources to different soundcard outputs etc

RawSourceWaveStream

WaveStream that simply passes on data from its source stream (e.g. a MemoryStream)

RiffChunk

Holds information about a RIFF file chunk

SampleEventArgs

Sample event arguments

SilenceProvider

Silence producing wave provider Useful for playing silence when doing a WASAPI Loopback Capture

SimpleCompressorEffect

A simple compressor

StereoToMonoProvider16

Takes a stereo 16 bit input and turns it mono, allowing you to select left or right channel only or mix them together

StoppedEventArgs

Stopped Event Args

TrueSpeechWaveFormat

DSP Group TrueSpeech

VolumeWaveProvider16

Helper class allowing us to modify the volume of a 16 bit stream without converting to IEEE float

Wave16ToFloatProvider

Converts 16 bit PCM to IEEE float, optionally adjusting volume along the way

Wave32To16Stream

WaveStream that converts 32 bit audio back down to 16 bit, clipping if necessary

WaveBuffer

WaveBuffer class use to store wave datas. Data can be manipulated with arrays (ByteBuffer,FloatBuffer,ShortBuffer,IntBuffer ) that are pointing to the same memory buffer. Use the associated Count property based on the type of buffer to get the number of data in the buffer. Implicit casting is now supported to float[], byte[], int[], short[]. You must not use Length on returned arrays.

n.b. FieldOffset is 8 now to allow it to work natively on 64 bit

WaveChannel32

Represents Channel for the WaveMixerStream 32 bit output and 16 bit input It's output is always stereo The input stream can be panned

WaveExtensionMethods

Useful extension methods to make switching between WaveAndSampleProvider easier

WaveFileReader

This class supports the reading of WAV files, providing a repositionable WaveStream that returns the raw data contained in the WAV file

WaveFileWriter

This class writes WAV data to a .wav file on disk

WaveFloatTo16Provider

Converts IEEE float to 16 bit PCM, optionally clipping and adjusting volume along the way

WaveFormat

Represents a Wave file format

WaveFormatCustomMarshaler

Custom marshaller for WaveFormat structures

WaveFormatExtensible

WaveFormatExtensible http://www.microsoft.com/whdc/device/audio/multichaud.mspx

WaveFormatExtraData

This class used for marshalling from unmanaged code

WaveInEventArgs

Event Args for WaveInStream event

WaveInProvider

Buffered WaveProvider taking source data from WaveIn

WaveMixerStream32

WaveStream that can mix together multiple 32 bit input streams (Normally used with stereo input channels) All channels must have the same number of inputs

WaveOffsetStream

Simply shifts the input stream in time, optionally clipping its start and end. (n.b. may include looping in the future)

WaveProvider16

Base class for creating a 16 bit wave provider

WaveProvider32

Base class for creating a 32 bit floating point wave provider Can also be used as a base class for an ISampleProvider that can be plugged straight into anything requiring an IWaveProvider

WaveRecorder

Utility class to intercept audio from an IWaveProvider and save it to disk

WaveStream

Base class for all WaveStream classes. Derives from stream.

XingHeader

Represents a Xing VBR header

Structs

AiffFileReader.AiffChunk

AIFF Chunk

Interfaces

IMp3FrameDecompressor

Interface for MP3 frame by frame decoder

ISampleNotifier

An interface for WaveStreams which can report notification of individual samples

ISampleProvider

Like IWaveProvider, but makes it much simpler to put together a 32 bit floating point mixing engine

IWaveBuffer

IWaveBuffer interface use to store wave datas. Data can be manipulated with arrays (ByteBuffer,FloatBuffer, ShortBuffer,IntBuffer ) that are pointing to the same memory buffer. This is a requirement for all subclasses.

Use the associated Count property based on the type of buffer to get the number of data in the buffer.

WaveBuffer for the standard implementation using C# unions.

IWaveIn

Generic interface for wave recording

IWavePlayer

Represents the interface to a device that can play a WaveFile

IWavePosition

Interface for IWavePlayers that can report position

IWaveProvider

Generic interface for all WaveProviders.

Enums

ChannelMode

Channel Mode

Mp3WaveFormatFlags

Wave Format Padding Flags

Mp3WaveFormatId

Wave Format ID

MpegLayer

MPEG Layer flags

MpegVersion

MPEG Version Flags

PlaybackState

Playback State

WaveFormatEncoding

Summary description for WaveFormatEncoding.

Delegates

Mp3FileReaderBase.FrameDecompressorBuilder

Function that can create an MP3 Frame decompressor