Namespace NAudio.Wave.SampleProviders
Classes
- AdsrSampleProvider
Applies an ADSR (attack / decay / sustain / release) amplitude envelope to a source sample provider. Wraps EnvelopeGenerator, exposing its stage times in seconds and its sustain level, and multiplies the source by the envelope each sample.
- ChannelMixMatrix
Defines common channel mixing matrices for use with ChannelMixerSampleProvider.
- ChannelMixerSampleProvider
Produces an output stream by mixing together the channels of a single source using an arbitrary mixing matrix, where the number of output channels is determined by the number of columns in the matrix.
- ConcatenatingSampleProvider
Sample Provider to concatenate multiple sample providers together
- FadeInOutSampleProvider
Sample Provider to allow fading in and out
- LinearPanStrategy
Linear Pan
- MeteringSampleProvider
Simple SampleProvider that passes through audio unchanged and raises an event every n samples with the maximum sample value from the period for metering purposes
- MixingSampleProvider
A sample source mixer, allowing inputs to be added and removed
- MonoToStereoSampleProvider
No nonsense mono to stereo provider, no volume adjustment, just copies input to left and right.
- MultiplexingSampleProvider
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
- NotifyingSampleProvider
Simple class that raises an event on every sample
- OffsetSampleProvider
Allows you to:
- insert a pre-delay of silence before the source begins
- skip over a certain amount of the beginning of the source
- only play a set amount from the source
- insert silence at the end after the source is complete
- PanningSampleProvider
Converts a mono sample provider to stereo, with a customisable pan strategy
- Pcm16BitToSampleProvider
Converts an IWaveProvider containing 16 bit PCM to an ISampleProvider
- Pcm24BitToSampleProvider
Converts an IWaveProvider containing 24 bit PCM to an ISampleProvider
- Pcm32BitToSampleProvider
Converts an IWaveProvider containing 32 bit PCM to an ISampleProvider
- Pcm8BitToSampleProvider
Converts an IWaveProvider containing 8 bit PCM to an ISampleProvider
- SampleChannel
Utility class that takes an IWaveProvider input at any bit depth and exposes it as an ISampleProvider. Can turn mono inputs into stereo, and allows adjusting of volume. (The eventual successor to WaveChannel32) This class also serves as an example of how you can link together several simple sample sources to form a more useful class.
- SampleProviderConverterBase
Helper base class for classes converting to ISampleProvider
- SampleProviderEventArgs
SampleProvider event args
- SampleToWaveProvider
Helper class for when you need to convert back to an IWaveProvider from an ISampleProvider. Keeps it as IEEE float
- SampleToWaveProvider16
Converts a sample source to 16 bit PCM, optionally clipping and adjusting volume along the way
- SampleToWaveProvider24
Converts a sample source to 24 bit PCM, optionally clipping and adjusting volume along the way
- SignalGenerator
Signal Generator Sin, Square, Triangle, SawTooth, White Noise, Pink Noise, Sweep.
- SinPanStrategy
Sinus Pan, thanks to Yuval Naveh
- SmbPitchShiftingSampleProvider
Author: Freefall Date: 05.08.16 Based on: the port of Stephan M. Bernsee“s pitch shifting class Port site: https://sites.google.com/site/mikescoderama/pitch-shifting Test application and github site: https://github.com/Freefall63/NAudio-Pitchshifter
NOTE: I strongly advice to add a Limiter for post-processing. For my needs the FastAttackCompressor1175 provides acceptable results: https://github.com/Jiyuu/SkypeFX/blob/master/JSNet/FastAttackCompressor1175.cs
UPDATE: Added a simple Limiter based on the pydirac implementation. https://github.com/echonest/remix/blob/master/external/pydirac225/source/Dirac_LE.cpp
- SquareRootPanStrategy
Square Root Pan, thanks to Yuval Naveh
- StereoBalanceStrategy
Simplistic "balance" control - treating the mono input as if it was stereo In the centre, both channels full volume. Opposite channel decays linearly as balance is turned to to one side
- StereoToMonoSampleProvider
Takes a stereo input and turns it to mono
- StreamVolumeEventArgs
Event args for aggregated stream volume
- VolumeSampleProvider
Very simple sample provider supporting adjustable gain
- WaveToSampleProvider
Helper class turning an already 32 bit floating point IWaveProvider into an ISampleProvider - hopefully not needed for most applications
- WaveToSampleProvider64
Helper class turning an already 64 bit floating point IWaveProvider into an ISampleProvider - hopefully not needed for most applications
- WdlResamplingSampleProvider
Fully managed resampling sample provider, based on the WDL Resampler
Structs
- StereoSamplePair
Pair of floating point values, representing samples or multipliers
Interfaces
- IPanStrategy
Required Interface for a Panning Strategy
Enums
- SignalGeneratorType
Signal Generator type