Воспроизведение 32-битного звука с помощью NAudio и ASIO.C#

Место общения программистов C#
Anonymous
Воспроизведение 32-битного звука с помощью NAudio и ASIO.

Сообщение Anonymous »

Я пытаюсь воспроизвести 32-битный массив байтов через naudio и ASIO.
Но не могу запустить его. Выходной сигнал искажен.
Тот же метод преобразования отлично работает с 32-битным форматом для naudio и WASAPI.

Пример преобразования:

Код: Выделить всё

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

В чем моя ошибка?>

Подробнее здесь: https://stackoverflow.com/questions/392 ... o-and-asio

Вернуться в «C#»