Class WaveExtensionMethods
Useful extension methods to make switching between WaveAndSampleProvider easier
public static class WaveExtensionMethods
- Inheritance
-
WaveExtensionMethods
- Inherited Members
Methods
AsStandardWaveFormat(WaveFormat)
Turns WaveFormatExtensible into a standard waveformat if possible
public static WaveFormat AsStandardWaveFormat(this WaveFormat waveFormat)
Parameters
waveFormat
WaveFormatInput wave format
Returns
- WaveFormat
A standard PCM or IEEE waveformat, or the original waveformat
FollowedBy(ISampleProvider, ISampleProvider)
Concatenates one Sample Provider on the end of another
public static ISampleProvider FollowedBy(this ISampleProvider sampleProvider, ISampleProvider next)
Parameters
sampleProvider
ISampleProviderThe sample provider to play first
next
ISampleProviderThe sample provider to play next
Returns
- ISampleProvider
A single sampleprovider to play one after the other
FollowedBy(ISampleProvider, TimeSpan, ISampleProvider)
Concatenates one Sample Provider on the end of another with silence inserted
public static ISampleProvider FollowedBy(this ISampleProvider sampleProvider, TimeSpan silenceDuration, ISampleProvider next)
Parameters
sampleProvider
ISampleProviderThe sample provider to play first
silenceDuration
TimeSpanSilence duration to insert between the two
next
ISampleProviderThe sample provider to play next
Returns
- ISampleProvider
A single sample provider
Init(IWavePlayer, ISampleProvider, bool)
Allows sending a SampleProvider directly to an IWavePlayer without needing to convert back to an IWaveProvider
public static void Init(this IWavePlayer wavePlayer, ISampleProvider sampleProvider, bool convertTo16Bit = false)
Parameters
wavePlayer
IWavePlayerThe WavePlayer
sampleProvider
ISampleProviderconvertTo16Bit
bool
Skip(ISampleProvider, TimeSpan)
Skips over a specified amount of time (by consuming source stream)
public static ISampleProvider Skip(this ISampleProvider sampleProvider, TimeSpan skipDuration)
Parameters
sampleProvider
ISampleProviderSource sample provider
skipDuration
TimeSpanDuration to skip over
Returns
- ISampleProvider
A sample provider that skips over the specified amount of time
Take(ISampleProvider, TimeSpan)
Takes a specified amount of time from the source stream
public static ISampleProvider Take(this ISampleProvider sampleProvider, TimeSpan takeDuration)
Parameters
sampleProvider
ISampleProviderSource sample provider
takeDuration
TimeSpanDuration to take
Returns
- ISampleProvider
A sample provider that reads up to the specified amount of time
ToMono(ISampleProvider, float, float)
Converts a Stereo Sample Provider to mono, allowing mixing of channel volume
public static ISampleProvider ToMono(this ISampleProvider sourceProvider, float leftVol = 0.5, float rightVol = 0.5)
Parameters
sourceProvider
ISampleProviderStereo Source Provider
leftVol
floatAmount of left channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel)
rightVol
floatAmount of right channel to mix in (0 = mute, 1 = full, 0.5 for mixing half from each channel)
Returns
- ISampleProvider
A mono SampleProvider
ToSampleProvider(IWaveProvider)
Converts a WaveProvider into a SampleProvider (only works for PCM)
public static ISampleProvider ToSampleProvider(this IWaveProvider waveProvider)
Parameters
waveProvider
IWaveProviderWaveProvider to convert
Returns
ToStereo(ISampleProvider, float, float)
Converts a Mono ISampleProvider to stereo
public static ISampleProvider ToStereo(this ISampleProvider sourceProvider, float leftVol = 1, float rightVol = 1)
Parameters
sourceProvider
ISampleProviderMono Source Provider
leftVol
floatAmount to mix to left channel (1.0 is full volume)
rightVol
floatAmount to mix to right channel (1.0 is full volume)
Returns
ToWaveProvider(ISampleProvider)
Converts a ISampleProvider to a IWaveProvider but still 32 bit float
public static IWaveProvider ToWaveProvider(this ISampleProvider sampleProvider)
Parameters
sampleProvider
ISampleProviderSampleProvider to convert
Returns
- IWaveProvider
An IWaveProvider
ToWaveProvider16(ISampleProvider)
Converts a ISampleProvider to a IWaveProvider but and convert to 16 bit
public static IWaveProvider ToWaveProvider16(this ISampleProvider sampleProvider)
Parameters
sampleProvider
ISampleProviderSampleProvider to convert
Returns
- IWaveProvider
A 16 bit IWaveProvider