naudio 및 ASIO를 통해 32 비트 바이트 배열을 재생하려고합니다. 그러나 나는 그것을 실행할 수 없습니다. 출력 신호가 왜곡됩니다. 동일한 변환 방법이 naudio 및 WASAPI의 경우 32 비트로 잘 작동합니다.NAudio 및 ASIO로 32 비트 오디오 재생
샘플 변환 :
var newAmp = (int)Math.Round(amp * (Math.Pow(2, 32)/2));
var buffer = BitConverter.GetBytes(newAmp);
naudio 및 ASIO 통한 재생 및 기록 :
var waveToneClass = new WaveTone(48000, 32, playBuffer, true, 1);
var stream = new BlockAlignReductionStream(waveToneClass);
asio_outin = new AsioOut(nameOfDriver);
asio_outin.ChannelOffset = 0;
asio_outin.InputChannelOffset = 0;
asio_outin.InitRecordAndPlayback(stream, 1, 48000);
asio_outin.AudioAvailable += ASIO_dataAvailable;
asio_outin.Play();
와 16 비트와 같은 방법으로
private AsioOut asio_outin = null;
내가 깨끗한를 얻을 수 신호. 그러나 매우 낮은 출력 레벨과 높은 이득에 대해서는 인공물이 생겨 32 비트의 원인이되었습니다.
NAudio v1.7.3.0/윈도우 7/닷넷 4.0
내 실패는 무엇입니까?