Zwykły wav to znaczy zwykły wav czyli brak kompresji format PCM 2 kanały 16 bitów na próbkę 44100 próbek na sekundę czyli zwykły wav :). na pewno nic nie spaprałem z konwersją. Bez tej pętli po konwersji działa ok poza tym przeliczałem sobie kalkulatorem nawet ale ok niech będzie:
Konwersja do intów;
przesuniecie_w_dol = (int)(Math.Pow(2, wielkosc_probki*8)/2);
MemoryStream S = new MemoryStream(dane);
//
byte[] buffer = new byte[4];
for (int i = 0; i < dlugosc; i++)
{
S.Read(buffer, 0, wielkosc_probki);
this.dane[i] = BitConverter.ToInt32(buffer, 0) -przesuniecie_w_dol;
}
Dekonwersja:
for (int i = 0; i < dane.Length; i++)
{
buffer = BitConverter.GetBytes(dane[i]+przesuniecie_w_dol);
S.Write(buffer, 0, wielkosc_probki);
}
return S.ToArray();
wielkosc_probki jest sczytana bezpośrednio z pliku wav i w tym przypadku wynosi 16 bitów. Ale zależy mi na uniwersalności rozwiązania dla innych wielkości z tad int.