Search code examples
naudio

NAudio WaveIn.DataAvailable Event: Separating Channels


Assume a Stereo WaveIn whose samples are being intercepted through the WaveIn.DataAvailable (ByVal sender As Object, ByVal e As WaveInEventArgs) event. How could the samples of a specific channel (i.e. Right/Left) be extracted from e.Buffer?


Solution

  • Samples are stored interleaved. So if you are recording 16 bit samples, the first two bytes are a left channel sample, the second two bytes are a right channel sample, then another left sample, and so on.