NAudio Asio Aufnahme und Wiedergabe

Ich versuche, meinen eigenen VST-Host zu schreiben, und dafür muss ich Audio von einem Asio-Treiber aufnehmen und abspielen (in meinem Fall für ein Audio-Interface). Deshalb versuche ich, AsioOut von NAudio zu verwenden.

Zu Testzwecken versuche ich gerade, die Eingabe aufzunehmen, zu kopieren und auf der Ausgabe abzuspielen.

Mein Code sieht so aus:

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;
}

Auf diese Weise kann ich keine Ausgabe hören. Ich habe es auch so versucht:

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;
}

Auf diese Weise kann ich den Ton in der Lautstärke meines Eingangs hören, aber er ist sehr verzerrt.

Was mache ich hier falsch?

PS: Ich weißwie man aufnimmt und wiedergibt .... existiert, aber ich konnte keine vollständige Antwort von diesem Thread bekommen, nur die Idee, es mit Marshall.Copy zu versuchen ....

Antworten auf die Frage(1)

Ihre Antwort auf die Frage