NAudio Asio Grabación y reproducción

Estoy tratando de escribir mi propio host VST y para eso necesito grabar y reproducir audio desde un controlador Asio (en mi caso para una interfaz de audio). Es por eso que estoy tratando de usar AsioOut de NAudio.

Para fines de prueba, actualmente solo estoy tratando de grabar la entrada, copiarla y reproducirla en la salida.

Mi código se ve así:

var asioout = new AsioOut();
BufferedWaveProvider wavprov = new BufferedWaveProvider(new WaveFormat(44100, 2));
asioout.AudioAvailable += new EventHandler<AsioAudioAvailableEventArgs>(asio_DataAvailable);
asioout.InitRecordAndPlayback(wavprov, 2, 25);
asioout.Play();

...

void asio_DataAvailable(object sender, AsioAudioAvailableEventArgs e)
{
    Array.Copy(e.InputBuffers, e.OutputBuffers, e.InputBuffers.Length);
    e.WrittenToOutputBuffers = true;
}

De esta manera no puedo escuchar ninguna salida. También lo intenté de esta manera:

void asio_DataAvailable(object sender, AsioAudioAvailableEventArgs e)
{
    byte[] buf = new byte[e.SamplesPerBuffer];
    for (int i = 0; i < e.InputBuffers.Length; i++)
    {
        //Marshal.Copy(e.InputBuffers[i], e.OutputBuffers, 0, e.InputBuffers.Length);
        //also tried to upper one but this way i also couldn't hear anything
        Marshal.Copy(e.InputBuffers[i], buf, 0, e.SamplesPerBuffer);
        Marshal.Copy(buf, 0, e.OutputBuffers[i], e.SamplesPerBuffer);
    }
    e.WrittenToOutputBuffers = true;
}

De esta manera puedo escuchar el sonido en el volumen de mi entrada, pero está muy distorsionado.

¿Qué estoy haciendo mal aquí?

PD: lo secómo grabar y reproducir ... existe pero realmente no pude obtener una respuesta completa de este hilo, solo la idea de probarlo con Marshall. Copie ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta