Но не могу запустить его. Выходной сигнал искажен.
Тот же метод преобразования отлично работает с 32-битным форматом для naudio и WASAPI.
Пример преобразования:
Код: Выделить всё
var newAmp = (int)Math.Round(amp * (Math.Pow(2, 32) / 2));
var buffer = BitConverter.GetBytes(newAmp);
Код: Выделить всё
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;
Но при очень низких уровнях выходного сигнала и высоком коэффициенте усиления я получаю артефакты, и это причина 32-битной версии.
NAudio v1.7.3.0 / Windows 7 / .Net 4.0
В чем моя ошибка?>
Подробнее здесь: https://stackoverflow.com/questions/392 ... o-and-asio