private void processFrame() { var count = device.Buffers.First(d => d != null).Length; if (device.Buffers.Any(d => d != null && d.Length != count)) { throw new NotSupportedException("Processing buffers of varying lengths is not currently supported"); } interleaveChannelsToByteArray(count); OutputBuffer.AddSamples(rawBuffer, 0, rawBuffer.Length); for (int i = 0; i < device.Buffers.Length; i++) { device.Buffers[i] = null; } }