  Ŀ
  Ŀ
   PS 20  Mart'95                                                        
                  Yuvarlak Ke  Ses Dosya Formatlar (VOCWAVRAW)      
                                                                          
  ٳ
   Alex G. Pamir 
  




> Herkese merhaba...

  Bu ay gerekten ses dosyas format incelemeye balayacaz. En popler
  formatlardan n inceleyeceiz. Bunlar; Sound Blaster'n standart
  dosyalar olan Creative Voice File(.VOC) dosyalar, Windows standart dijital
  ses dosyalar olan Wave dosyalar .WAV'lar ve aslnda pek zel olmayan,
  hatta hi bir zellii olmadndan kendisine ham (raw) denilen dosyalar.

  Birka ay srecek incelememizin ikinci blmne balyoruz.



  Geen ay da bahsettiimiz gibi bu dosyalarn iindeki bilgiler 8 veya 16-bit
  olarak ses kartlar vastasyla gerek dnyadan alnp disketlerimize
  giriyorlard. Fakat herhangi bir ses dosyasnn oluturulduktan sonra
  iindeki bilgilerin ilenebilmesi iin, yani daha sonra ayn bilgisayarda
  veya baka bilgisayarlarda alnabilmesi iin sadece alnan saf bilgiler
  yeterli olmaz.

  Gereken dier bilgilerden en nemli olan rnekleme frekansdr (sampling
  frequency). rnekleme frekansn bilmeden bilgisayar dosyay almaya
  alrsa ses yanl tonda kar. Bu ve dier baz nemli bilgilerin ham ses
  bilgilerine eklenmesi ile ses dosyas formatlar ortaya kar.


  Ham Ses Dosyalar
  
  Hibir bilgiye sahip olmayan dosyalara "ham ses dosyas" denir. Bu dosyalar
  herhangi bir soyada sahip olabilirler, bu yzden onlar tehi etmek
  gerekten zordur. Bu yzden bir dosyann ham ses dosyas olup olmadn
  tehi etmenin en kolay yolu bir ses dosyas alc program vastasyla
  dosyay alp kan sesin bireye benzeyip benzemediine bakmaktr. kinci
  bir yolu ise sonra gsterceim.

  VOC Ses Dosyalar
  
  kinci formatmz Sound Blaster'lerin yapmcs olan Creative Labs'in kendi
  kartlar ile verdii rnek programlarn kulland format olan ve kartlarn
  poplerlik kazanmasyla doru orantl olarak poplerlik kazanan VOC
  format. imdi bu format yakndan tanyalm:

  Bir VOC dosyas iki blmden oluur;

   Balk Blm: Dosyann bir VOC dosyas olduunu bu blmdeki verilerden
    anlarz ve asl ses verilerinin olduu blmdr.

    Balk Blm'nn ilk 19 bayt "identification string" ad verilen ve
    dosyann bir VOC dosyas olduunu belirten "Creative Voice File" yazsyla
    doludur. Yaznn sonunda ise dosyann iindeki dier verilerin bir 'type'
    komutu sonrasnda bilgisayardan garip grntler ve sesler karmasna
    engel olmak iin bir EOF(End Of File) bayt' ($1A) bulunur.

    20 ve 21 baytlarda ise orijinal ses verilerinin dosyadaki balang adresi
    bulunur. Bu say sayesinde VOC format deiiklie urasa ve baln
    uzunluu deise bile yine de dosyann ilenmesi salanr. Bu say Intel
    bayt sralamas ile yazldndan, saynn hesaplanmas srasnda nce son
    bayt (21) sonra ilk bayt (20) ele alnr.

    22-23'nc bayt'lar da yne ayn sralama usul ile dosya formatnn
    versiyon numarasn gsterir. 24-25'inci bayt'lar ise 22-23'nc
    baytlardaki versiyon numarasnn tersinin (complement, yani bitlerinin
    terslenmi hali, bitwise NOT) heksadesimal $1234 ile toplanm halidir.
    Yani bir dosyann banda "Creative ..." yazyorsa ve 22-23.nc baytlar
    ile 24-25.inci baytlar arasnda byle bir iliki varsa, bunun bir VOC
    dosyas olduundan emin olabilirsiniz.

   Ses Veri Blm: Asl ses verilerinin olduu blmde 7 eit veri blou
    bulunur. Her veri blounun kendine gre bir format bulunur. imdi size
    her bloun formatn teker teker anlatsam m acaba? Anlatmazsam, bilginiz
    yarm kalacak, anlatrsam da WAV formatn bu ay anlatacak takatm
    kalmayacak.

    Neyse, sizin geni affnza snarak WAV dosylarn gelecek aya braktm
    ve blok formatlarn anlatmaya karar verdim. Bu arada yaznn banda sz
    verdiim baka eyleri de unutmu olabilirim, kusuruma bakmayn. Gelecek
    aya hatrlar, yazarm. Onu bunu brakalm ve konuyu fazla soutmadan ve
    sulandrmadan blok formatlarna geelim:

    Blok formatlarnn biri hari hepsinde bulunan ortak bir veri, blok
    uzunluunun bulunduu  baytlk blmdr. Bloklarn genel format da
    zaten 1 baytlk blok tipi, 3 baytlk blok uzunluu ve sonra gelen dier
    parametreler eklindedir. Blok uzunluu u formlle hesaplanr:

                 Byte1+Byte2*256+Byte3*65536

    Blok tiplerini teker teker anlatrken vereceim blok tipi numaras da
    bloun ilk baytn tekil eder. Blok uzunluu 3 baytn takip eden dier
    baytlar da blok tipine gre deiir.

   Blok Tipi 0: Biti Blou
    inde 0 olan tek bir bayttan oluur. VOC dosyasnn bittiini gsterir.

   Blok Tipi 1: Yeni Ses Blou
    inde ses datas olan ilk bloktur. Parametre bytelar (1 bayt tip, 3 bayt
    uzunluktan sonra) 1 bayt rnekleme frekans, 1 bayt sktrma tipi ve n
    bayt ses verisinden oluur.
    rnekleme frekans sadece tek bayt olduundan asl frekansn bulunmas u
    formlle olur:

          Asl frekans = 1000000 / (bloktaki frekans bayt - 256)
                                 ^Kalansz ve kesirsiz blme

    Sktrma tipi ise 0 sktrlmam, 1- 1:2 orannda sktrlm,
    2- 1:3 orannda sktrlm, 3- 1:4 orannda sktrlm olarak
    tezahr eder. Bu bayttan sonra da zaten orijinal ses verisi gelir.

   Blok Tipi 2: Sonraki Ses Blou
    Hafza yetmeme sorunu yznden birka paraya ayrlm seslerin sonraki
    paralarnn olduu blok. Parametresi sadece yeni veriler. Dier bilgileri
    bir nceki yeni ses blounda bulunur.

   Blok Tipi 3: Sessizlik Blou
    Bu blok VOC dosyas iinde verilen uzunluk kadar 0'la dolu bir veri
    parasn simle eder. Yani dosyann iindeki sessizlik bulunan blmleri
    ksaltmak iin kullanlr. Parametreleri 2 bayt uzunluk, 1 bayt
    rnekleme frekans (yukardaki gibi) ndan oluur.

   Blok Tipi 4: arteleme Blou
    VOC alan programlarn ses ile dier ilemleri senkronize edebilmesi iin
    alan programn bu bloa rastladnda 2 baytlk iaret parametresini
    hafzadaki belirli bir blgeye kopyalamasn salayan bloktur.
    Parametresini nceki kelimenin iinde belirttim zaten.

   Blok Tipi 5: Mesaj Blou
    VOC dosyasnn iine ASCII yaz koymaya yarayan bloktur. Parametresi sonu
    0 bayt ile biten (ASCIIZ) bir yazdr.

   Blok Tipi 6: Tekrar Blou
    Kendisinden sonra gelecek ses bloklarnn ka defa tekrar edilerek
    alnacan gteren bloktur. Parametresi 2 baytlk tekrar saysdr.
    nemli nokta, tekrar edilecek bloklarn hangileri olduunun sonraki blok
    tipi olan Tekrar Biti Blou yardmyla tesbit edilecek olmas ve asl
    tekrarn, tekrar saysndan bir eksik olduudur (nk n defa tekrar + 1
    defa normal al).

   Blok Tipi 7: Tekrar Biti Blou
    Bu blok yardmyla tekrar edilecek bloklarn sonu belirtilir. Parametresi
    olmamasna ramen, ii, 0 ile dolu blok uzunluu blm bulunur.




> Bylece ksaca bloklar tanm olduk ve VOC formatn rendik. Dier
  formatmz gelecek aya kald. Bu ayki rnek programmz ise, herhangi bir
  dosyay ses dosyas eklinde grafikle gstermeye yarayan bir program.

  Gelecek aya kadar salam kaln, sakn benim gibi Grip olmayn.
  hh hh h...


  

      NOT: Formatlar ve dier ses olaylar hakknda daha geni
           bilgiler edinmek isteyenler ve tabii ngilizce bilenler
           Abacus yaynlarndan Axel Stolz'un "The SOUND BLASTER Book"undan
           yararlanabilirler.

  
 