Vissza a főoldalra    Vissza az Zenei elektronika főoldalra

Vissza a HF generátor hangkártyából oldalra   Hangmintakészítő algoritmus >>

 


A *.wav hangfájlformátum


 

      A *.wav hangfájlformátum egy szabványos Microsoft Windows formátum, amelyet digitális hangminták tárolására hoztak létre. A wav fájlok a RIFF multimédia-formátum egyik alformátuma.
      A RIFF formátumú fájlok felépítését mutatja a következő táblázat.

Mezőazonosító Hossz Leírás
RIFF azonosító 4 bájt "RIFF" szöveg ASCII kóddal
Adatmező hossza 4 bájt a következő adatmező hossza [bájt]
Adatmező ... adatmező a tárolt adatokkal

      A wav fájlrész a fent bemutatott RIFF fájl adatmezőjében van elhelyezve.
      A wav fájlrész felépítését mutatja a következő táblázat.

Mezőazonosító Hossz Leírás
WAVE azonosító 4 bájt "WAVE" szöveg ASCII kóddal
Formátum 20 bájt a *.wav adatformátum paramétereinek megadása
Adatmező ... adatmező a tárolt adatokkal

      A wav fájlrész hangmintáinak formátumát leíró rész a későbbiekben részletes bemutatásra kerül.
      A wav fájlrész adatmezőjének felépítését mutatja a következő táblázat.

Mezőazonosító Hossz Leírás
data azonosító 4 bájt "data" szöveg ASCII kóddal
Adatmező hossza 4 bájt a következő adatmező hossza [bájt]
Adatmező ... adatmező a tárolt adatokkal

      A tényleges *.wav formátumú fájl a fenti három táblázat egymásbaágyazásával jön létre.
      A következő táblázat a *.wav fájl teljes felépítését mutatja a gyakorlatban közvetlenül felhasználható formában.

Cím Mezőazonosító Hossz Leírás
00 - 03. RIFF azonosító 4 bájt "RIFF" szöveg ASCII kóddal (52h, 49h, 46h, 46h)
04 - 07. Adatmező hossza 4 bájt a következő fájlrész hossza [bájt]
08 - 11. WAVE azonosító 4 bájt "WAVE" szöveg ASCII kóddal (57h, 41h, 56h, 45h)
12 - 15. fmt azonosító 4 bájt "fmt_" szöveg ASCII kóddal (66h, 6Dh, 74h, 20h)
16 - 19. Leírómező hossza 4 bájt a következő leírómező hossza: 16 bájt (00h, 00h, 00h, 10h)
20 - 21. Hullámtárolási mód 2 bájt a hullámtárolási mód kódja: tömörítés nélküli egyszerű hangminta (00h, 01h)
22 - 23. Csatornák száma 2 bájt a hangcsatornák száma: sztereó hang (00h, 02h)
24 - 27. Mintavételi frekvencia 4 bájt a mintavételi frekvencia: 44100 Hz (00h, 00h, ACh, 44h)
28 - 31. Átviteli sebesség 4 bájt az átviteli sebesség: 176400 bájt/s (00h, 02h, B1h, 10h)
32 - 33. Blokkméret 2 bájt az egyszerre kikerülő adatblokk mérete: 4 bájt (00h, 04h)
34 - 35. Adathossz 2 bájt egyetlen hangminta hossza: 16 bit (00h, 10h)
36 - 39. data azonosító 4 bájt "data" szöveg ASCII kóddal (64h, 61h, 74h, 61h)
40 - 43. Adatmező hossza 4 bájt a következő fájlrész hossza [bájt]
44 ... Adatmező ... a hangminta

      A 16 bites hangminták a következő sorrend szerint kell, hogy elhelyezkedjenek: bal csatorna első minta, jobb csatorna első minta, bal csatorna második minta, jobb csatorna második minta...
      A 16 bites hangminta értéke kettes komplemens módban tárolva a -32768..+32767 intervallumban lehet, tehát a 0 érték 0V feszültségnek felel meg.

      A következő táblázatok egy 40 másodperces, 1kHz-es, sztereó, azonos fázisú, 16 bites hangmintafájlra mutatnak példát 44100 Hz-es mintavételi frekvenciával. Az elsőben a fájl konkrét adatbájtjai szerepelnek, mellette a másikban pedig a jelentésük van feltüntetve. (A több bájtos adatokat az IBM PC kompatibilis számítógépek "little endian" adatsorrendben tárolják, vagyis a legkisebb helyiértékűt először, majd a sorban következőket.)

52h49h46h46h
AChAAh6Bh00h
57h41h56h45h
66h6Dh74h20h
10h00h00h00h
01h00h02h00h
44hACh00h00h
10hB1h02h00h
04h00h10h00h
64h61h74h61h
88hAAh6Bh00h
00h00h00h00h
2Dh12h2Dh12h
FBh23hFBh23h
0Fh35h0Fh35h
0Fh45h0Fh45h
A9h53hA9h53h
............
RIFF
hossz: 6BAAACh bájt
WAVE
fmt 
hossz: 10h bájt
mód: 1hcsat.: 2h
frekvencia: AC44h
sebesség: 2B110h
4h bájt10h bit
data
hossz: 6BAA88h bájt
bal: 0jobb: 0
bal: 4653jobb: 4653
bal: 9211jobb: 9211
bal: 13583jobb: 13583
bal: 17679jobb: 17679
bal: 21417jobb: 21417
............

      A fenti táblázatokból is látható, hogy a hangmintafájlt célszerű 4 bájtos szavanként kezelni, amint az a következő oldalakon látható is.

 

  Tudomány és Technika (test@t-es-t.hu)


 

Vissza a HF generátor hangkártyából oldalra   Hangmintakészítő algoritmus >>

Vissza a főoldalra    Vissza az Zenei elektronika főoldalra