Проблема в том, что ваши входные буферы представляют собой 16-битные целые числа, которые находятся в диапазоне {-32767.0 .. 32767.0}.Вам нужно делить / умножать это значение, а не 128, что было бы для 7 бит.
Кроме того, когда вы вычитаете / прибавляете 1.0f к преобразованному значению, вы делаете это в неправильном порядкеи вызовет отсечение.Преобразование должно быть:
buffer[i] = ((float)destBuffer[i]) / 32767.0f;
И
destBuffer[i] = Convert.ToByte(buffer[i] * 32768.0f);