home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / BOMBA / BOMBA2.MSA / BOMBA2_DOCUMENT_STESOUND.2 < prev    next >
Text File  |  1992-06-28  |  6KB  |  196 lines

  1. #$6
  2.                  Hello!
  3. #$1
  4.      Hát nézzük (vagy inkább halljuk) a
  5. nagy STE-nek a hangját! Az STE szemben
  6. az ST-vel a hangadásban jobb "dolgokra" 
  7. is képes. Igy az STE képes két hangcsa-
  8. tornán 8 bites felbontással az erôsítôre
  9. sample-ket egymás után, megszakításban a 
  10. DMA segítségével "kisöpörni"!
  11.      A 8 bites felbontás azt jelenti, 
  12. hogy egy tetszôleges hangjelnek az amp-
  13. litudóját maximálisan 256 fokozatra le-
  14. het osztani, és ezzel képezi majd a ki-
  15. adandó hangot. Minden byte az ô 8 bitjé-
  16. vel egy úgynevezett sample-t képez, te-
  17. hát egy értéket, amit egy bizonyos idô-
  18. ben a hangkimenetre lesz küldve. Ez a 8 
  19. bit nagyságú érték elôjelesen értendô.
  20. (A sample-k a hang mintái.)
  21.  
  22. Tehát:
  23.      $80 = -128 = Max. negatív amplitudó
  24.      $00 =    0 = Minimális amplitudó
  25.      $7F = +127 = Max. pozitív amplitudó
  26.  
  27.      A lejátszás úgy történik, hogy ezek
  28. a sample-k egy D/A-átalakítón (Digital/
  29. Analog) keresztül egy megfelelô feszült-
  30. ségértéket indukálnak a kimeneten.Tehát
  31. a megfelelô elôkészítés után (szûrés)
  32. egy jel áll a kimeneten rendelkezésünk-
  33. re.
  34.      A mérések kiadják, hogy a teljes 8
  35. bitet nem lehet kihasználni. Bár a tel-
  36. jes feszültségingadozást -5V...+5V (mun-
  37. kafeszültsége a D/A -átalakítónak) le-
  38. hetne 256 fokozatban ábrázolni (minden
  39. fok így egy feszültségemelés kb. 39 mV).
  40. A beépített D/A-átalakítónak mégis van
  41. egy kis problémája a 80 abszolút érték
  42. fölötti sample-knek a feszültségre való
  43. átalakításánál. Tehát ha el akarjuk ke-
  44. rülni a hang esetleges torzulását, ak-
  45. kor a sample értékeknek +80 és -80 kö-
  46. zött kell mozogniuk.
  47.      Ha sok ilyen sample-t egymás után
  48. gyorsan "lejátszunk", egy hangot fognak
  49. elôállítani. A kiadása egy 8 bites ér-
  50. tékként tárolt sample-nek a D/A- átala-
  51. kítón keresztül négy különbözô sebes-
  52. ségben történhet. Tehát az STE-ben a kö-
  53. vetkezô samplefrekvenciák állnak rendel-
  54. kezésünkre:
  55.      6.258 kHz            12.517 kHz 
  56.     25.033 kHz            50.066 kHz
  57.  
  58.      A legalacsonyabb samplefrekvenciá-
  59. val 6258 sample lesz másodpercenként le-
  60. játszva, ami azt jelenti (mivel 1 sample 
  61. = 1 byte-tal), hogy egy másodpercnyi di-
  62. gitalizált hanghoz 6.258 Kbyte memória
  63. szükséges. Egy hangnak a minôsége erôsen
  64. múlik a sample-frekvencián. A hangoknál
  65. fôszabály az, hogy a samplefrekvencia
  66. legalább dupla olyan nagy legyen, mint
  67. amilyen a legmagasabb elôforduló frek-
  68. vencia a hangban. Az ember kb. 20 Hz-tôl
  69. 20 kHz-ig hallja a hangokat. Ezért ah-
  70. hoz, hogy egy hangot a lehetô legjobb
  71. minôségben visszaadjunk, a sample-frek-
  72. venciának nagyobbnak kell lenni legalább
  73. 40 kHz-nél. A profi digitális hangfel-
  74. dolgozó berendezések ezért kb. 44 kHz-es
  75. sample-frekvenciával dolgoznak (az STE
  76. ezt is meghaladja!), ahol minden sample
  77. 16 biten van tárolva a jel így max.65536
  78. fokra osztható! (Az STE sajnos ezt meg
  79. sem közelíti.)
  80.  
  81.      Az STE-nél ahhoz, hogy egy sample-
  82. láncot a D/A-átalakítóhoz juttassunk,
  83. nem kell byte-ot byte után a CPU-n meg-
  84. futtatni, és ezzel a CPU idejét leter-
  85. helni. Az STE a lejátszáshoz a sample-k-
  86. bôl egy egész blockot használ (amit
  87. frame-ként is jelölnek) és persze a DMA-
  88. technikát. Az STE-nél minden horizontá-
  89. lis képernyô-megszakításnál (HBlank-In-
  90. terrupt) egy szó (W,tehát két sample)
  91. lesz kiadva a D/A-átalakítónak, keresz-
  92. tül az STE-Shifter processzorba belein-
  93. tegrált Sound-DMA-Modul-on.
  94.  
  95.      Ez két módban tud dolgozni:
  96.  
  97. Stereo-mód: a tárolóból a Sound-DMA-Mo-
  98.             dulba érkezett szó (2 byte)
  99.             két részre tagolódik, így a
  100.             magas-byte sample-ként a bal
  101.             hangcsatornába, az alacsony-
  102.             byte pedig a jobb hangcsa-
  103.             tornába lesz lejátszva.
  104.  
  105. Mono-mód:   egy szó két sample-t tartal-
  106.             maz, amelyek egymás után
  107.             lesznek lejátszva mindkét
  108.             D/A-átalakítón (jobb/bal)
  109.             egyidejûleg (elôször a magas
  110.             byte aztán az alacsony).
  111.  
  112.      Egy frame-nek (egy csoportja a
  113. sample-knak) a lejátszásához, a Sound-
  114. DMA-Modulnak tudnia kell, hogy hol kez-
  115. dôdik ez a frame (Kezdôcím) és hogy hol
  116. van vége (Végcím). Továbbá azt is be
  117. kell állítani, hogy milyen sebességgel
  118. legyenek a sample-k lejátszva, és hogy
  119. folyamatosan vagy sem, ugyanis a S-D-M-
  120. nak megadható az is, hogy egy frame-et
  121. játsszon egyfolytában, ismételjen.
  122.      A következôkben egy táblázat lesz
  123. látható ahol a "*"-gal jelölt értékek
  124. azok az értékek, amelyek alapállapotban
  125. is beállítva vannak, a többi nulla érté-
  126. ket felvéve nem jelöl semmit sem.
  127.  
  128.    Olvasható/írható
  129.  
  130. Cím        R/W  Bitek
  131.  
  132. $FF 8900   R/W  ---- ---- ---- --RE
  133.      (Sound-DMA-Control-Reg.)
  134. sndmactl
  135.      RE = 00        *DMA-Sound ki
  136.           01         DMA-Sound be
  137.           11         DMA-Sound be,
  138.                      Frame ism.
  139.  
  140. $FF 8902   R/W  ---- ---- 00HH HHHH
  141.      (Frame-Start-Cím)
  142. sndbashi
  143.      (Magas-Byte)
  144. $FF 8904   R/W  ---- ---- MMMM MMMM
  145.      (Frame-Start-Cím)
  146. sndbasmi
  147.      (Középsô-Byte)
  148. $FF 8906   R/W  ---- ---- LLLL LLLL
  149.      (Frame-Start-Cím)
  150. sndbaslo
  151.      (Alsó-Byte)
  152. $FF 8908   R    ---- ---- 00HH HHHH
  153.      (Frame-Cím-Számláló)
  154. sndadrhi
  155.      (Magas-Byte)
  156. $FF 890A   R    ---- ---- MMMM MMMM
  157.      (Frame-Cím-Számláló)
  158. sndadrmi
  159.      (Középsô-Byte)
  160. $FF 890C   R    ---- ---- LLLL LLLL
  161.      (Frame-Cím-Számláló)
  162. sndadrlo
  163.      (Alsó-Byte)
  164. $FF 890E   R/W  ---- ---- 00HH HHHH
  165.      (Frame-END-Cím)
  166. sndendhi
  167.      (Magas-Byte)
  168. $FF 8910   R/W  ---- ---- MMMM MMMM
  169.      (Frame-END-Cím)
  170. sndendmi
  171.      (Középsô-Byte)
  172. $FF 8912   R/W  ---- ---- MMMM MMMM
  173.      (Frame-END-Cím)
  174. sndendlo
  175.      (Alsó-Byte)
  176. $FF 8920   R/W  ---- ---- M000 00RR
  177.      (Sound-Mode-Control)
  178. sndmode
  179.       M =  0      * sztereó mód
  180.            1        monó mód
  181.      RR = 00      * 6258 Hz Samplefrek.
  182.           01       12517 Hz Samplefrek.
  183.           10       25033 Hz Samplefrek.
  184.           11       50066 Hz Samplefrek.
  185.  
  186. Folytatás a kovetkezô számban ahol egy
  187. hang kiadását elvégzô assembler-rutinnal
  188. lesz ismerkedés. Ehhez, hogy úgy mond-
  189. jam, alapfokú assembler-ismeret szüksé-
  190. geltetik.
  191.  
  192.                          anªº   
  193.   
  194.    
  195.                
  196.