

C# File.ReadAllBytes("sound.wav")
Ahoj.
Mam nějaký zvukový soubor typu wav a načetl jsem z něj data do pole pomocí read all text. Pole je datového typu byte. Velikost pole = velikosti souboru wav v bajtech. V poli tečka mam veškerý informace o wav souborů a taky samotný zvuk v báječný. Pole obsahuje například název souboru (v bajtech) nebo samotné vzorky tohoto zvuku. Wav soubor má 16 bitový zvuk což znamena ze je možnost na vzorek uložit az dva na ses načtou možností vzorků. Já potřebují nějak vytáhnout hodnotu vzorků číslo jedna ze zvuku a potřebují to vidět jako 16 bitové d číslo. No jo ale pole je přeci bajtove takže tam se asi 16 bitové číslo nevejde. Wav má na to styl ze rozdělit 16 bitové číslo do dvou bajtovych čísel. Moje otázka tedy zni jaky způsobem ty čísla rozděluje neboli převod 16 bitového čísla na dvě bajtove...
Tady mas celkem nazorny popis, jak ta data jsou ve wav souboru ulozena:
https://ccrma.stanford.edu/courses/422/projects/Wa veFormat/
To už jsem četl ale tam není odpověď na moji otázku
Sorry za ty chyby:...
Tečka = teďka
báječný = bajtech
ses načtou = šesnáctou
vzorka = bajt1 + (word)bajt2 * 256;
vzorka musi byt typu signed short inac to nebude spravne fungovat (kvoli tomu ze zaporne cislo ma najvyssi bit nastaveny). Ak chces pouzivat iny typ musis bajt2 pretypovavat na ten iny typ (musi byt signed).
Díky díky díky díky moc
)))))))
A kedze C# je pre lamy tak na vsetko maju funkciu
http://msdn.microsoft.com/en-us/library/system.bit converter.aspx
ToInt16
:DD
Tak převod z 16bit do 8bit bych měl...
byte[] data = BitConverter.GetBytes(vzorka);
data[0] //toto je bajt1
data[1] //toto bajt2
8bit na 16bit...
short vzorek = BitConverter.ToInt16(data, 0);
ONO TO FUNGUJE!!!