Я пытаюсь воспроизвести 32-разрядный байт-массив через naudio и ASIO. Но я не могу заставить его работать. Выходной сигнал искажен. Тот же метод преобразования отлично работает с 32 бит для naudio и WASAPI.Воспроизведение 32-битного звука с помощью NAudio и ASIO
Пример преобразования:
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();
с:
private AsioOut asio_outin = null;
С 16 бит и тот же метод я получить чистый Сигнал. Но для очень низких уровней выхода и высокого коэффициента усиления я получаю артефакты, и это причина для 32-битного.
NAudio v1.7.3.0/Windows 7/.Net 4,0
Что такое моя неудача?