Class WaveExtensionMethods
Useful extension methods to make switching between WaveAndSampleProvider easier
public static class WaveExtensionMethods
- Inheritance
-
WaveExtensionMethods
- Inherited Members
Methods
AsStandardWaveFormat(WaveFormat)
Turns a WAVE_FORMAT_EXTENSIBLE into a standard waveformat if possible. Copes with both WaveFormatExtensible (e.g. one you constructed) and WaveFormatExtraData (how an extensible format read from a file or stream is materialised), unpacking the SubFormat GUID from the raw extra data in the latter case.
public static WaveFormat AsStandardWaveFormat(this WaveFormat waveFormat)
Parameters
waveFormatWaveFormatInput wave format
Returns
- WaveFormat
A standard PCM or IEEE waveformat, or the original waveformat
FollowedBy(ISampleProvider, TimeSpan, ISampleProvider)
Concatenates one sample source on the end of another with silence inserted
public static ISampleProvider FollowedBy(this ISampleProvider sampleProvider, TimeSpan silenceDuration, ISampleProvider next)
Parameters
sampleProviderISampleProvidersilenceDurationTimeSpannextISampleProvider
Returns
Init(IWavePlayer, ISampleProvider)
Allows sending an ISampleProvider directly to an IWavePlayer by wrapping it in a SampleToWaveProvider.
public static void Init(this IWavePlayer wavePlayer, ISampleProvider sampleProvider)
Parameters
wavePlayerIWavePlayersampleProviderISampleProvider
Skip(ISampleProvider, TimeSpan)
Skips over a specified amount of time (by consuming source stream)
public static ISampleProvider Skip(this ISampleProvider sampleProvider, TimeSpan skipDuration)
Parameters
sampleProviderISampleProviderskipDurationTimeSpan
Returns
Take(ISampleProvider, TimeSpan)
Takes a specified amount of time from the source stream
public static ISampleProvider Take(this ISampleProvider sampleProvider, TimeSpan takeDuration)
Parameters
sampleProviderISampleProvidertakeDurationTimeSpan
Returns
ToMono(ISampleProvider, float, float)
Converts a stereo ISampleProvider to mono
public static ISampleProvider ToMono(this ISampleProvider source, float leftVol = 0.5, float rightVol = 0.5)
Parameters
sourceISampleProviderleftVolfloatrightVolfloat
Returns
ToSampleProvider(IWaveProvider)
Converts a WaveProvider into a SampleProvider (only works for PCM)
public static ISampleProvider ToSampleProvider(this IWaveProvider waveProvider)
Parameters
waveProviderIWaveProviderWaveProvider to convert
Returns
ToStereo(ISampleProvider, float, float)
Converts a mono ISampleProvider to stereo
public static ISampleProvider ToStereo(this ISampleProvider source, float leftVol = 1, float rightVol = 1)
Parameters
sourceISampleProviderleftVolfloatrightVolfloat
Returns
ToWaveProvider(ISampleProvider)
Converts a ISampleProvider to a IWaveProvider but still 32 bit float
public static IWaveProvider ToWaveProvider(this ISampleProvider sampleProvider)
Parameters
sampleProviderISampleProviderSampleProvider to convert
Returns
- IWaveProvider
An IWaveProvider
ToWaveProvider16(ISampleProvider)
Converts a ISampleProvider to a IWaveProvider and convert to 16 bit
public static IWaveProvider ToWaveProvider16(this ISampleProvider sampleProvider)
Parameters
sampleProviderISampleProviderSampleProvider to convert
Returns
- IWaveProvider
A 16 bit IWaveProvider