Нужно смикшировать два wav файла в один в .net core. Для этого я использую OpenTK обертку OpenAl для C#.
1) Загружаю wav как в этом
примере
2) Создаю два массива byte[]:
var sound_data1 = LoadWave(path1, FileMode.Open), out channels, out bits_per_sample, out sample_rate);
var sound_data2 = LoadWave(path2, FileMode.Open), out channels, out bits_per_sample, out sample_rate);
3) Записываю усредненную сумму байтов в массив result_sound_data:
for (int i = 0; i < sound_data1; i++)
{
result_sound_data[i] = (byte)((sound_data1[i] + sound_data2[i]) / 2);
}
4) Затем проигрываю result_sound_data
AL.BufferData(buffer, GetSoundFormat(channels, bits_per_sample), result_sound_data, result_sound_data.Length, sample_rate);
AL.Source(source, ALSourcei.Buffer, buffer);
AL.SourcePlay(source);
На выходе получается "шипящий" "поломанный" сигнал. Как правильно мержить два wav файла?