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 >
Wrap
Text File
|
1992-06-28
|
6KB
|
196 lines
#$6
Hello!
#$1
Hát nézzük (vagy inkább halljuk) a
nagy STE-nek a hangját! Az STE szemben
az ST-vel a hangadásban jobb "dolgokra"
is képes. Igy az STE képes két hangcsa-
tornán 8 bites felbontással az erôsítôre
sample-ket egymás után, megszakításban a
DMA segítségével "kisöpörni"!
A 8 bites felbontás azt jelenti,
hogy egy tetszôleges hangjelnek az amp-
litudóját maximálisan 256 fokozatra le-
het osztani, és ezzel képezi majd a ki-
adandó hangot. Minden byte az ô 8 bitjé-
vel egy úgynevezett sample-t képez, te-
hát egy értéket, amit egy bizonyos idô-
ben a hangkimenetre lesz küldve. Ez a 8
bit nagyságú érték elôjelesen értendô.
(A sample-k a hang mintái.)
Tehát:
$80 = -128 = Max. negatív amplitudó
$00 = 0 = Minimális amplitudó
$7F = +127 = Max. pozitív amplitudó
A lejátszás úgy történik, hogy ezek
a sample-k egy D/A-átalakítón (Digital/
Analog) keresztül egy megfelelô feszült-
ségértéket indukálnak a kimeneten.Tehát
a megfelelô elôkészítés után (szûrés)
egy jel áll a kimeneten rendelkezésünk-
re.
A mérések kiadják, hogy a teljes 8
bitet nem lehet kihasználni. Bár a tel-
jes feszültségingadozást -5V...+5V (mun-
kafeszültsége a D/A -átalakítónak) le-
hetne 256 fokozatban ábrázolni (minden
fok így egy feszültségemelés kb. 39 mV).
A beépített D/A-átalakítónak mégis van
egy kis problémája a 80 abszolút érték
fölötti sample-knek a feszültségre való
átalakításánál. Tehát ha el akarjuk ke-
rülni a hang esetleges torzulását, ak-
kor a sample értékeknek +80 és -80 kö-
zött kell mozogniuk.
Ha sok ilyen sample-t egymás után
gyorsan "lejátszunk", egy hangot fognak
elôállítani. A kiadása egy 8 bites ér-
tékként tárolt sample-nek a D/A- átala-
kítón keresztül négy különbözô sebes-
ségben történhet. Tehát az STE-ben a kö-
vetkezô samplefrekvenciák állnak rendel-
kezésünkre:
6.258 kHz 12.517 kHz
25.033 kHz 50.066 kHz
A legalacsonyabb samplefrekvenciá-
val 6258 sample lesz másodpercenként le-
játszva, ami azt jelenti (mivel 1 sample
= 1 byte-tal), hogy egy másodpercnyi di-
gitalizált hanghoz 6.258 Kbyte memória
szükséges. Egy hangnak a minôsége erôsen
múlik a sample-frekvencián. A hangoknál
fôszabály az, hogy a samplefrekvencia
legalább dupla olyan nagy legyen, mint
amilyen a legmagasabb elôforduló frek-
vencia a hangban. Az ember kb. 20 Hz-tôl
20 kHz-ig hallja a hangokat. Ezért ah-
hoz, hogy egy hangot a lehetô legjobb
minôségben visszaadjunk, a sample-frek-
venciának nagyobbnak kell lenni legalább
40 kHz-nél. A profi digitális hangfel-
dolgozó berendezések ezért kb. 44 kHz-es
sample-frekvenciával dolgoznak (az STE
ezt is meghaladja!), ahol minden sample
16 biten van tárolva a jel így max.65536
fokra osztható! (Az STE sajnos ezt meg
sem közelíti.)
Az STE-nél ahhoz, hogy egy sample-
láncot a D/A-átalakítóhoz juttassunk,
nem kell byte-ot byte után a CPU-n meg-
futtatni, és ezzel a CPU idejét leter-
helni. Az STE a lejátszáshoz a sample-k-
bôl egy egész blockot használ (amit
frame-ként is jelölnek) és persze a DMA-
technikát. Az STE-nél minden horizontá-
lis képernyô-megszakításnál (HBlank-In-
terrupt) egy szó (W,tehát két sample)
lesz kiadva a D/A-átalakítónak, keresz-
tül az STE-Shifter processzorba belein-
tegrált Sound-DMA-Modul-on.
Ez két módban tud dolgozni:
Stereo-mód: a tárolóból a Sound-DMA-Mo-
dulba érkezett szó (2 byte)
két részre tagolódik, így a
magas-byte sample-ként a bal
hangcsatornába, az alacsony-
byte pedig a jobb hangcsa-
tornába lesz lejátszva.
Mono-mód: egy szó két sample-t tartal-
maz, amelyek egymás után
lesznek lejátszva mindkét
D/A-átalakítón (jobb/bal)
egyidejûleg (elôször a magas
byte aztán az alacsony).
Egy frame-nek (egy csoportja a
sample-knak) a lejátszásához, a Sound-
DMA-Modulnak tudnia kell, hogy hol kez-
dôdik ez a frame (Kezdôcím) és hogy hol
van vége (Végcím). Továbbá azt is be
kell állítani, hogy milyen sebességgel
legyenek a sample-k lejátszva, és hogy
folyamatosan vagy sem, ugyanis a S-D-M-
nak megadható az is, hogy egy frame-et
játsszon egyfolytában, ismételjen.
A következôkben egy táblázat lesz
látható ahol a "*"-gal jelölt értékek
azok az értékek, amelyek alapállapotban
is beállítva vannak, a többi nulla érté-
ket felvéve nem jelöl semmit sem.
Olvasható/írható
Cím R/W Bitek
$FF 8900 R/W ---- ---- ---- --RE
(Sound-DMA-Control-Reg.)
sndmactl
RE = 00 *DMA-Sound ki
01 DMA-Sound be
11 DMA-Sound be,
Frame ism.
$FF 8902 R/W ---- ---- 00HH HHHH
(Frame-Start-Cím)
sndbashi
(Magas-Byte)
$FF 8904 R/W ---- ---- MMMM MMMM
(Frame-Start-Cím)
sndbasmi
(Középsô-Byte)
$FF 8906 R/W ---- ---- LLLL LLLL
(Frame-Start-Cím)
sndbaslo
(Alsó-Byte)
$FF 8908 R ---- ---- 00HH HHHH
(Frame-Cím-Számláló)
sndadrhi
(Magas-Byte)
$FF 890A R ---- ---- MMMM MMMM
(Frame-Cím-Számláló)
sndadrmi
(Középsô-Byte)
$FF 890C R ---- ---- LLLL LLLL
(Frame-Cím-Számláló)
sndadrlo
(Alsó-Byte)
$FF 890E R/W ---- ---- 00HH HHHH
(Frame-END-Cím)
sndendhi
(Magas-Byte)
$FF 8910 R/W ---- ---- MMMM MMMM
(Frame-END-Cím)
sndendmi
(Középsô-Byte)
$FF 8912 R/W ---- ---- MMMM MMMM
(Frame-END-Cím)
sndendlo
(Alsó-Byte)
$FF 8920 R/W ---- ---- M000 00RR
(Sound-Mode-Control)
sndmode
M = 0 * sztereó mód
1 monó mód
RR = 00 * 6258 Hz Samplefrek.
01 12517 Hz Samplefrek.
10 25033 Hz Samplefrek.
11 50066 Hz Samplefrek.
Folytatás a kovetkezô számban ahol egy
hang kiadását elvégzô assembler-rutinnal
lesz ismerkedés. Ehhez, hogy úgy mond-
jam, alapfokú assembler-ismeret szüksé-
geltetik.
anªº