36. Zvuk v šestnástich bitoch: DSOUND
Na čo to je
Výška tónu v príkaze SOUND je číslo 0 až 255. To je málo: vysoké tóny sú od seba ďaleko a ladia falošne, hlboké sa nedajú zahrať vôbec. Atari vie dva hlasy spojiť do jedného s výškou 0 až 65535 – jemnejšou 256-krát. Turbo-BASIC XL má na to DSOUND (double sound).
Ako sa to píše
DSOUND hlas,výška,skreslenie,hlasitosť
DSOUND| Hodnota | Rozsah | Význam |
|---|---|---|
hlas | 0 alebo 1 | hlas 0 je spojenie obyčajných hlasov 0 a 1, hlas 1 spojenie hlasov 2 a 3 |
výška | 0–65535 | menšie číslo je vyšší tón |
skreslenie | párne 0–14 | 10 je čistý tón, ako pri SOUND |
hlasitosť | 0–15 |
DSOUND bez čísel vypne všetko. Aj SOUND bez čísel vypne všetky štyri hlasy naraz.
Z dvoch dvojíc sú len dva spojené hlasy, takže naraz zahráš najviac dva jemne ladené tóny namiesto štyroch hrubých.
Čísla výšky nie sú tie isté ako pri SOUND. Približne platí: výška pre DSOUND je 28-násobok výšky pre SOUND s tým istým tónom. Stredné C (SOUND 121) je asi 3413.
Celý program
Súbor examples/dsound.tbas zahrá plynule stúpajúci tón – sirénu, akú SOUND plynulo nespraví:
10 REM DSOUND: two voices joined into one finer one
20 FOR P=2000 TO 500 STEP -20
30 DSOUND 0,P,10,8
40 PAUSE 1
50 NEXT P
60 DSOUND
70 SOUNDPreklad a spustenie
Basic26 dsound.tbas --runZvuk počuť len v emulátore alebo na Atari. Program navyše čaká cez PAUSE, takže do simulátora nepatrí.
Čo uvidíš
Nič – budeš počuť tón, ktorý asi sekundu a pol plynule stúpa.
Ako to funguje
- Riadok 20: výška ide od 2000 po 500 po dvadsiatich – 76 krokov. S obyčajným
SOUNDby ten istý rozsah mal len asi päťdesiat stupňov a bolo by počuť „schody“. - Riadok 40:
PAUSE 1počká jednu päťdesiatinu sekundy (kapitola 33). - Riadky 60 a 70: vypnutie. Po
DSOUNDostane Atari prepnuté do režimu spojených hlasov;SOUNDbez čísel ho vráti do obyčajného.
Kedy DSOUND a kedy SOUND
- Melódia, ktorá má ladiť (najmä vo vyšších polohách) alebo basová linka:
DSOUND. - Efekty, šumy, akordy zo štyroch hlasov:
SOUND. - Miešať sa dajú:
DSOUND 0,…zaberie hlasy 0 a 1, hlasy 2 a 3 ostanú preSOUND 2,…aSOUND 3,….
Časté chyby
| Čo sa stalo | Čo sa stane |
|---|---|
výška z tabuľky pre SOUND | tón je skoro o päť oktáv vyššie – nepríjemné pískanie |
SOUND 0,… počas DSOUND 0,… | bijú sa o ten istý hlas |
| chýba čakanie v slučke | tón prebehne príliš rýchlo |
po DSOUND hrá SOUND falošne | vypni najprv všetko príkazom SOUND bez čísel |
| hlas 2 alebo 3 | spojené hlasy sú len dva: 0 a 1 |
Vyskúšaj si
- Sprav sirénu, ktorá stúpa a klesá päťkrát za sebou.
- Zahraj stupnicu: výšky 3413, 3040, 2708, 2555, 2276, 2027, 1805, 1703, každú na štvrť sekundy.
- Zahraj dva spojené hlasy naraz (
DSOUND 0,…aDSOUND 1,…) s výškami 3413 a 2276.
Zhrnutie
DSOUND hlas,výška,skreslenie,hlasitosťhrá tón s výškou 0 až 65535.- Hlasy sú len dva (0 a 1), každý zaberie dva obyčajné.
DSOUNDajSOUNDbez čísel všetko vypnú.
Späť: 35. Kruhy a výplne · Ďalej: 37. Disketa